POST child body fat - ocariot/api-gateway GitHub Wiki

Description

Register a new body fat measurement and associate it to a Child.

Permissions:

  • Application users can register a Body Fat for any Child as long as it exists.

  • A Child can register a Body Fat just for herself.

  • An Educator can register a Body Fat for any Child who exists and belongs to one of their groups.

  • A Family user can register a Body Fat for any Child who exists and is associated with it.

Scope

measurements:create

URL

POST https://localhost/v1/children/{child_id}/bodyfats

Parameters

child_id: string (A 24-byte hex ID)

Request body

{
  "timestamp": "2019-06-20T14:40:00Z",
  "value": 20.7
}

Curl example

curl -X POST "https://localhost/v1/children/5a62be07d6f33400146c9b61/bodyfats" -H "accept: application/json" -H "Authorization: Bearer YOUR_ACCESS_TOKEN" -H "Content-Type: application/json" -d "{"timestamp":"2019-06-20T14:40:00Z","value":20.2}"

Response body

  • 201 Body Fat measurement saved sucessfully.

    {
      "id": "5db71469fce8d130bf48a9db",
      "timestamp": "2019-06-20T14:40:00.000Z",
      "value": 20.7,
      "unit": "%",
      "child_id": "5a62be07d6f33400146c9b61"
    }     
    
  • 207 Successful request, however, can have several status codes for the case of a list of submitted body fat records.

    {
      "success": [
        {
          "code": 201,
          "item": {
            "id": "5db71469fce8d130bf48a9db",
            "timestamp": "2019-06-20T14:40:00.000Z",
            "value": 20.7,
            "unit": "%",
            "child_id": "5a62be07d6f33400146c9b61"
          }
        }
      ],
      "error": [
        {
          "code": 409,
          "message": "Body Fat is already registered...",
          "item": {
            "timestamp": "2019-06-21T14:40:00.000Z",
            "value": 19.1,
            "unit": "%",
            "child_id": "5a76cf29e7b22311257d8c72"
          }
        }
      ]
    }
    
  • 400 Validation errors

  • 401 Unauthorized Error

  • 403 Permission Error

  • 409 Conflict Error

  • 429 Too Many Requests Error

  • 500 Internal Server Error