Store consent information based on a template, and update consent status for user.

This API does not use caller authentication. The handle query parameter has the authentication information embedded in it.

The following URL is used by consent templates as form action URL. The handle uniquely identifies the subject, and the template used to generate the consent form.

POST /v1/processForm?handle=handle&ok=ok_uri&err=err_uri
Content-Type: application/json | application/x-www-form-urlencoded

If the ok=ok_uri query parameter is given, upon successful submission an HTTP redirect response will be sent. If the err=err_uri query parameter is given, errors during submission will be redirected to this URI. If the error URI is not given, errors will be redirected to the ok_uri, with an additional query parameter err=msg containing the error message.

The expected request body is as follows:

Content-Type: application/json

{
  "data": {
    Data fields to be stored with consent records
  },
  "subject": {
    Data fields to be stored with data subject
  },  
  "granules": {
    "granule1": {
      "value": true,
      "choices": {
      // Any additional fields used in the granule
      }
    },
    // Additional granules
  }
}

If the request body is URL-encoded, and is a list of key-value pairs where each key is the field name addressing a field in the above JSON document:

data.field1=value1&granules.name.value=true&granules.choices.expiration=2016-01-02T15:04:05Z07:00