POPs endpoint
Pop object
| Name | Type | Description |
|---|---|---|
| id | integer |
The pop id |
| name | string |
The name of a pop |
| created_at | datetime |
Timestamp of creation date |
| updated_at | datetime |
Timestamp of update date |
| user_id | integer |
The user_id of the user object it is connected to |
Validations
| Field | Value |
|---|---|
| name | Must be present |
| name | Has a minimum of 3 characters and a maximum of 1000 |
Endpoints
| URL | Description |
|---|---|
| GET /api/v1/pops | Show all pops |
| POST /api/v1/pops | Create a new pop |
| PATCH /api/v1/pops/:id | Update a pop |
| DELETE /api/v1/pops/:id | Delete a pop |
GET /api/v1/pops
Het pop endpoint geeft je een object met daarin een pop attribute. Dit ziet er als volgt uit:
[
{
"pops": [
{
"id": 100,
"name": "Delfina Padberg",
"created_at": "2016-01-04T12:28:48.411+01:00",
"updated_at": "2016-01-04T12:28:48.411+01:00",
"user_id": 28
},
{
"id": 99,
"name": "Kasandra Ledner",
"created_at": "2016-01-04T12:28:48.408+01:00",
"updated_at": "2016-01-04T12:28:48.408+01:00",
"user_id": 28
},
{
"id": 98,
"name": "Woodrow Collins",
"created_at": "2016-01-04T12:28:47.993+01:00",
"updated_at": "2016-01-04T12:28:47.993+01:00",
"user_id": 28
},
]
Status: HTTP/1.1 200 OK
POST /api/v1/pops
Bij een POST naar /api/v1/**pops** wordt er een nieuwe 'pop' aangemaakt. Hierbij moet een naam-veld meegestuurd worden. De naam moet voldoen aan minimaal 3 en maximaal 250 characters. Elk nieuw object krijgt een idmee, een user_id mee en een tijd wanneer hij is aangemaakt en geüpdatet is.
Example request
POST http://localhost:3000/api/v1/pops
name: Leerjaar 1, semester 2
| Field | Value |
|---|---|
| name | Leerjaar 1, semester 2 |
Example response:
Status: HTTP/1.1 200 OK
[
{
"pop": {
"id": 102,
"name": "Leerjaar 1, semester 2",
"created_at": "2016-01-06T10:40:13.633+01:00",
"updated_at": "2016-01-06T10:40:13.633+01:00",
"user_id": 28
}
}
]
Errors:
Als name minder dan 3 characters heeft, krijg je de volgende informatie terug:
{
"name": [
"is too short (minimum is 3 characters)"
]
}
Te veel characters heeft geeft hij dit terug:
{
"description": [
"is too long (maximum is 250 characters)"
]
}
Wanneer je naar data probeert te kijken dat niet van jou is:
{
"error": "unauthorized"
}
Wanneer er geen name meegestuurd word:
Status: HTTP/1.1 422 Unprocessable Entity
{
"name": [
"can't be blank",
"is too short (minimum is 3 characters)"
]
}
PATCH /api/v1/pops/:id
Bij een PATCH naar api/v1/:learning_goals/:id word er gekeken naar een bestaand learning goal op basis van het gegeven learning_goal_id. Daarnaast pakt hij op basis van die learning goal het activity. Hiervoor geldt ook dat er een description-veld mee geven moet worden. Deze description moet weer voldoen aan de hierboven beschrijven eisen.
Example request
POST http://localhost:3000/api/v1/learning_goals/:learning_goals_id/activity/:id
name: Leerjaar 2, semester 4
| Field | Value |
|---|---|
| name | Leerjaar 2, semester 4 |
Example response:
Status: HTTP/1.1 202 Accepted
{
"pop": {
"id": 106,
"name": "Leerjaar 2, semester 4",
"created_at": "2016-01-06T11:06:54.003+01:00",
"updated_at": "2016-01-06T11:07:08.229+01:00",
"user_id": 28
}
}
Errors:
Als name minder dan 3 characters heeft, krijg je de volgende informatie terug:
{
"description": [
"is too short (minimum is 3 characters)"
]
}
Te veel characters heeft geeft hij dit terug:
{
"description": [
"is too long (maximum is 250 characters)"
]
}
DELETE /api/v1/pops/:id
Wanneer er een DELETE bij api/v1/pops/:id wordt uitgevoerd, wordt er een bestaand pop verwijdert. Hier voor wordt er gekeken naar het id van een pop wat verwijdert wordt. Na het verwijderen krijg je verder geen content terug.
Status: HTTP/1.1 204 No Content