Cards

Petabencana report cards for disaster events. Note: authentication is required to make updates to cards.

Request Format

Note on card_data

Card data requires the object report_type to exist. Where disaster_type is set to 'flood' then the object flood_depth should also exist adjacent to report_type. Where the disaster_type is 'prep' then report_type should be one of the types as specified in server config.js.

For example a card with flood data including flood_depth:

  "disaster_type": "flood",
  "card_data":{
    "report_type": "flood",
    "flood_depth": 50
  }

Or, a card with pre-flood data report regarding a drain.

  "disaster_type": "prep",
  "card_data":{
    "report_type":"drain"
  }

GET /cards/:cardId

Retrieve details of a card:

Here is a simple call to GET a card:

curl -X GET -H "X-Api-Key: API_KEY_GOES_HERE" "https://data.petabencana.id/cards/abcdefg"

The card was found:

{
  "statusCode": 200,
  "result": {
    "pkey": "2",
    "card_id": "abcdefg",
    "username": "user",
    "network": "test",
    "language": "en",
    "received": true,
    "report_id": "1"
  }
}

The card does not exist:

{
  "statusCode": 404,
  "found": false,
  "result": null
}

PUT /cards/:cardId

Update a card with details a disaster event report:

Here is a simple call to PUT a card:

curl -X PUT -H "X-Api-Key: API_KEY_GOES_HERE" -d '{
    "text": "test card",
    "disaster_type": "flood"
    "card_data":
      {
        "report_type": "flood",
        "flood_depth": 101
      },
    "created_at":"2016-12-09T11:32:52.011Z",
    "location": {
        "lat": -6.149531,
        "lng": 106.869342
    }
}' "https://data.petabencana.id/cards/abcdefg"

Card was successfully created:

{
  "statusCode": 200,
  "cardId": "abcdefg",
  "created": true
}

The card does not exist:

{
  "statusCode": 404,
  "cardId": "abcdefg",
  "message": "No card exists with id 'abcdefg'"
}

The report already exists for the card:

{
  "statusCode": 409,
  "cardId": "abcdefg",
  "message": "Report already received for card 'abcdefg'"
}

GET /cards/:cardId/images

GET a signed S3 URL to upload a card report, this must be done after the card report has been created and only one image can exist for a given card.

NOTE: After an image is submitted a server-side process shrinks the image to a standard size and there may be a small time lag of a few seconds before the image goes "live".

Here is a simple call to GET a new signed S3 URL for image upload:

curl -X GET \
  https://api-server-dev.riskmap.in/cards/HJID8CWN-/images

Signed S3 URL successfully generated:

{"signedRequest":"https://riskmap-image-uploads.s3.ap-south-1.amazonaws.com/originals/BJbTHR-Vb.jpg?X-Amz-Algorithm=AWS4-HMAC-SHA256&X-Amz-Credential=AKIAJFMR3NR7BXZ5X7DA%2F20170629%2Fap-south-1%2Fs3%2Faws4_request&X-Amz-Date=20170629T012002Z&X-Amz-Expires=900&X-Amz-Signature=ad10a53555205fa18ecfa07da52eb0349ed1c8bda66fe2de0fa9c445c61b7c62&X-Amz-SignedHeaders=host","url":"https://s3.ap-south-1.amazonaws.com/riskmap-image-uploads/originals/BJbTHR-Vb.jpg"}

Last updated