# Read an assignment

Returns one user's assignment to a training module: the status they are at,
how many steps they have finished, their score, and when the completion
expires.
nice carries the readable form of the same record - the module's name, the
status as a label, and steps_percentage and score_percentage worked out
against the module's totals. steps_percentage is the more useful progress
figure, since steps_completed on its own means nothing without the module's
step count.
The assignment must belong to the module in the URL; a mismatched pair
returns a 404.

Endpoint: GET /api/v2/training/{training_id}/user/{id}
Version: 2.0.0
Security: default

## Path parameters:

  - `training_id` (integer, required)
    The ID of the training module.

  - `id` (integer, required)
    The ID of the assignment.

## Header parameters:

  - `Rosterfy-Platform` (string)

## Response 200 fields (application/json):

  - `object` (object)

  - `object.id` (integer)

  - `object.training_id` (integer)

  - `object.user_id` (integer)

  - `object.steps_completed` (integer)

  - `object.status` (string)

  - `object.score` (integer)

  - `object.expires_at` (string | null)

  - `object.meta` (string | null)

  - `object.external_id` (string | null)

  - `object.deleted_at` (string | null)

  - `object.created_at` (string)

  - `object.updated_at` (string)

  - `nice` (object)

  - `nice.rrn` (string)

  - `nice.training_name` (string)

  - `nice.training_service` (string)

  - `nice.training_meta` (object)

  - `nice.training_meta.middleware` (string)

  - `nice.has_history` (boolean)

  - `nice.training_success_message` (string)

  - `nice.is_expired` (boolean)

  - `nice.status` (string)

  - `nice.binary_status` (boolean)

  - `nice.finished_status` (boolean)

  - `nice.score_percentage` (integer)

  - `nice.steps_percentage` (number)

  - `relations` (object)

  - `permissions` (object)

  - `permissions.read` (boolean)

  - `permissions.update` (boolean)

  - `permissions.delete` (boolean)

