PATCH/projects/api/v3/skills/{id}/people/{userId}.json
Rate a person for a skill.
Sets the level a single person holds for a single skill.
It is an upsert: when the person does not hold the skill yet they are assigned to it at that level, because the skills matrix opens the same level menu on an unassigned cell and picking a level there has to assign and rate in one gesture.
The level is an ordinal from 1 to 4. An explicit null leaves the skill assigned but unrated, which is a legitimate permanent state. An absent level is rejected: there would be nothing to do.
Path Params
- Name
userId- Type
- integer
- required
- Description
- Name
id- Type
- integer
- required
- Description
Body Params
LevelRequest is the body of the endpoint that rates a single (skill, person) edge. It carries nothing but the level, since both the skill and the person are named by the path.
- Name
level- Type
- integer
- Description
- Level is the ordinal rating to store. An explicit null clears it, leaving the skill assigned but unrated; an absent level is rejected by Validate because there would be nothing for the endpoint to do.
Responses
- Code
- 200
- Type
- object
- Schema
- Description
- 200 OK
AffectedResponse reports only which assignments a write touched. It is the answer of a write that changes one edge of an existing skill and therefore has no new skill state to report - the caller already knows the skill and the person, both of which it named in the path.
- Code
- 400
- Type
- object
- Schema
- Description
- 400 Bad Request
ErrorResponse defines how []Error should be marshaled to JSON.
- Code
- 403
- Type
- object
- Schema
- Description
- 403 Forbidden
ErrorResponse defines how []Error should be marshaled to JSON.
- Code
- 404
- Type
- object
- Schema
- Description
- 404 Not Found
ErrorResponse defines how []Error should be marshaled to JSON.
- Code
- 422
- Type
- object
- Schema
- Description
- 422 Unprocessable Entity
ErrorResponse defines how []Error should be marshaled to JSON.
200 OK
AffectedResponse
{
"affected": {
"addedIds": [
0
],
"affectedIds": [
0
],
"removedIds": [
0
],
"unchangedIds": [
0
],
"updatedIds": [
0
]
}
}