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 id
mee, 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