---
# System prepended metadata

title: Untitled

---

## API response structure proposal

Currently, the goal organization endpoint only provides goals in a single array. The FE does the data transformation to separate goals based on `start_date` and `target_date`. 


### Proposal

The backend api for organization should provide a new structure that transforms the data and separate them accordingly. The structure will have two keys: 

 - The goals for the selected cycle: this will contain all the goals that fall into the selected cycle, even if it's shorter than the selected cycle (`goal_start_date ≥ cycle_start && goal_target_date ≤ cycle_end`)
 - Long term goals: Contains the rest of the goals that is beyond the current cycle


### Request Params
Example API URL
`GET /v1/goals/overview?for=organization&cycleId=1`

**URL Params**

`for=organization` - the type of overview response
`cycleId=1` - Id of the selected cycle. 

#### Alternative API URL (see 'Potential issues' further down)
`GET /v1/goals/overview/organization?cycleId=1`


### Proposal

```
{
  "cycleGoals": [
     ...goals
  ],
  "longTermGoals": [
     ...goals
  ]
}
```




### Potential issues 


`/v1/goals/overview?for=organization` endpoint is being used in 

- app/containers/GoalPage/sagas.js
- app/containers/GoalsOverviewPage/sagas.js

Maybe just create a new endpoint (`/v1/goals/overview?for=organization`) here? Then mark as deprecated and refactor other instances later.
```
{

confidenceLevel: 6,
draft: false,
id: 18,
keyResults: (3) [{…}, {…}, {…}],
kind: "team",
lastStatusUpdateAt: "2020-09-25T12:48:07Z",
owner: {
    avatarUrlLarge: "http://localhost:3000/system/users-avatars-19-large.jpg", 
    avatarUrlMedium: "http://localhost:3000/system/users-avatars-19-medium.jpg", 
    coach: false, 
    deactivated: false, 
    deleted: false,
    …
},
permissions: {
    changeOwner: true, 
    destroy: true, 
    manage: true, 
    showProgress: true, 
    updateProgress: true,
    …
},
progress: 0.35,
progressCalculation: "key_results",
role: "stakeholder",
secret: true
startDate: "2020-07-01",
targetDate: "2020-09-30",
team: {
        id: 2, 
        name: "Portfolio", 
        archived: false
    }
title: "Users and brands alike love the way how we present portfolios as a lifestyle"
}
```