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