|
|
@ -58,10 +58,10 @@ paths: |
|
|
|
$ref: '#/components/links/ResultsByPollId' |
|
|
|
'400': |
|
|
|
description: Bad Request. Expect at least 2 candidates and a title. |
|
|
|
'/polls/{pollId}': |
|
|
|
'/polls/{poll-id}': |
|
|
|
parameters: |
|
|
|
- in: path |
|
|
|
name: pollId |
|
|
|
name: poll-id |
|
|
|
required: true |
|
|
|
schema: |
|
|
|
type: integer |
|
|
@ -105,12 +105,52 @@ paths: |
|
|
|
'404': |
|
|
|
$ref: '#/components/responses/PollNotFound' |
|
|
|
security: |
|
|
|
- {} |
|
|
|
- pollAuth: [] |
|
|
|
'/judgments/{pollId}': |
|
|
|
'/polls/{poll-id}/judges': |
|
|
|
parameters: |
|
|
|
- in: path |
|
|
|
name: pollId |
|
|
|
name: poll-id |
|
|
|
required: true |
|
|
|
schema: |
|
|
|
type: string |
|
|
|
post: |
|
|
|
description: Add a judge to a poll |
|
|
|
requestBody: |
|
|
|
content: |
|
|
|
application/json: |
|
|
|
schema: |
|
|
|
$ref: '#/components/schemas/Judge' |
|
|
|
responses: |
|
|
|
'200': |
|
|
|
description: Invitation was sent |
|
|
|
content: |
|
|
|
text/plain: |
|
|
|
schema: |
|
|
|
type: string |
|
|
|
'404': |
|
|
|
$ref: '#/components/responses/PollNotFound' |
|
|
|
'/polls/{poll-id}/results': |
|
|
|
parameters: |
|
|
|
- in: path |
|
|
|
name: poll-id |
|
|
|
required: true |
|
|
|
schema: |
|
|
|
type: string |
|
|
|
get: |
|
|
|
description: Get results of a poll |
|
|
|
responses: |
|
|
|
'200': |
|
|
|
description: OK |
|
|
|
content: |
|
|
|
text/plain: |
|
|
|
schema: |
|
|
|
$ref: '#/components/schemas/Result' |
|
|
|
'404': |
|
|
|
$ref: '#/components/responses/PollNotFound' |
|
|
|
'/polls/{poll-id}/judgments': |
|
|
|
parameters: |
|
|
|
- in: path |
|
|
|
name: poll-id |
|
|
|
required: true |
|
|
|
schema: |
|
|
|
type: string |
|
|
@ -141,10 +181,10 @@ paths: |
|
|
|
$ref: '#/components/links/GetJudgmentByJudgmentId' |
|
|
|
DelJudgmentByJudgmentId: |
|
|
|
$ref: '#/components/links/DelJudgmentByJudgmentId' |
|
|
|
'/judgments/{judgmentId}': |
|
|
|
'/judgments/{judgment-id}': |
|
|
|
parameters: |
|
|
|
- in: path |
|
|
|
name: judgmentId |
|
|
|
name: judgment-id |
|
|
|
required: true |
|
|
|
schema: |
|
|
|
type: string |
|
|
@ -163,51 +203,39 @@ paths: |
|
|
|
'200': |
|
|
|
description: OK |
|
|
|
'404': |
|
|
|
description: Judgment not found |
|
|
|
$ref: '#/components/responses/JudgmentNotFound' |
|
|
|
security: |
|
|
|
- {} |
|
|
|
- judgeAuth: [] |
|
|
|
'/invites/{pollId}': |
|
|
|
'/judges/{judge-id}/': |
|
|
|
parameters: |
|
|
|
- in: path |
|
|
|
name: pollId |
|
|
|
required: true |
|
|
|
schema: |
|
|
|
type: string |
|
|
|
post: |
|
|
|
description: Invite a judge to a poll |
|
|
|
requestBody: |
|
|
|
content: |
|
|
|
application/json: |
|
|
|
schema: |
|
|
|
$ref: '#/components/schemas/Invite' |
|
|
|
- in: path |
|
|
|
name: judge-id |
|
|
|
required: true |
|
|
|
schema: |
|
|
|
type: string |
|
|
|
get: |
|
|
|
summary: Get a judge from a poll |
|
|
|
responses: |
|
|
|
'200': |
|
|
|
description: Invitation was sent |
|
|
|
description: OK |
|
|
|
content: |
|
|
|
text/plain: |
|
|
|
application/json: |
|
|
|
schema: |
|
|
|
type: string |
|
|
|
$ref: '#/components/schemas/Judge' |
|
|
|
'404': |
|
|
|
$ref: '#/components/responses/PollNotFound' |
|
|
|
'/results/{pollId}': |
|
|
|
parameters: |
|
|
|
- in: path |
|
|
|
name: pollId |
|
|
|
required: true |
|
|
|
schema: |
|
|
|
type: string |
|
|
|
get: |
|
|
|
description: Get results of a poll |
|
|
|
$ref: '#/components/responses/JudgeNotFound' |
|
|
|
security: |
|
|
|
- {} |
|
|
|
- pollAuth: [] |
|
|
|
delete: |
|
|
|
summary: Delete a judge from a poll |
|
|
|
responses: |
|
|
|
'200': |
|
|
|
description: OK |
|
|
|
content: |
|
|
|
text/plain: |
|
|
|
schema: |
|
|
|
$ref: '#/components/schemas/Result' |
|
|
|
'404': |
|
|
|
$ref: '#/components/responses/PollNotFound' |
|
|
|
$ref: '#/components/responses/JudgeNotFound' |
|
|
|
security: |
|
|
|
- pollAuth: [] |
|
|
|
components: |
|
|
|
responses: |
|
|
|
PollNotFound: |
|
|
@ -216,6 +244,18 @@ components: |
|
|
|
application/json: |
|
|
|
schema: |
|
|
|
$ref: '#/components/schemas/Error' |
|
|
|
JudgeNotFound: |
|
|
|
description: The specified judge was not found |
|
|
|
content: |
|
|
|
application/json: |
|
|
|
schema: |
|
|
|
$ref: '#/components/schemas/Error' |
|
|
|
JudgmentNotFound: |
|
|
|
description: The specified judgment was not found |
|
|
|
content: |
|
|
|
application/json: |
|
|
|
schema: |
|
|
|
$ref: '#/components/schemas/Error' |
|
|
|
Unauthorized: |
|
|
|
description: Unauthorized |
|
|
|
content: |
|
|
@ -232,6 +272,19 @@ components: |
|
|
|
name: |
|
|
|
type: string |
|
|
|
description: Unique but short name of the grade, like "Excellent" or "To reject". |
|
|
|
Judge: |
|
|
|
type: object |
|
|
|
properties: |
|
|
|
id: |
|
|
|
type: string |
|
|
|
readOnly: true |
|
|
|
has_voted: |
|
|
|
type: string |
|
|
|
poll_id: |
|
|
|
type: string |
|
|
|
mail: |
|
|
|
type: object |
|
|
|
description: Send a mail at the creation of the judge. The mail is not kept in memory. |
|
|
|
Judgment: |
|
|
|
type: object |
|
|
|
properties: |
|
|
@ -275,13 +328,14 @@ components: |
|
|
|
items: |
|
|
|
$ref: '#/components/schemas/Grade' |
|
|
|
description: The grades on which one judges a candidate. |
|
|
|
Invite: |
|
|
|
type: object |
|
|
|
properties: |
|
|
|
type: |
|
|
|
type: string |
|
|
|
payload: |
|
|
|
type: string |
|
|
|
judges: |
|
|
|
type: array |
|
|
|
items: |
|
|
|
$ref: '#/components/schemas/Judge' |
|
|
|
description: The judges that are allowed to participate to the election. |
|
|
|
restrict_judges: |
|
|
|
type: boolean |
|
|
|
description: Can anyone create a judge? |
|
|
|
Result: |
|
|
|
type: object |
|
|
|
properties: |
|
|
@ -314,50 +368,50 @@ components: |
|
|
|
scheme: bearer |
|
|
|
links: |
|
|
|
ResultsByPollId: |
|
|
|
operationRef: '#/paths/~1results/~1{pollId}/get' |
|
|
|
operationRef: '#/paths/~1polls/~1{poll-id}/results/get' |
|
|
|
parameters: |
|
|
|
pollId: '$response.body#/id' |
|
|
|
description: > |
|
|
|
The `id` value returned in the response can be used as the `pollId` parameter in GET /results/{resultId}. |
|
|
|
The `id` value returned in the response can be used as the `poll-id` parameter in GET /results/{result-id}. |
|
|
|
GetPollByPollId: |
|
|
|
operationRef: '#/paths/~1polls/~1{pollId}/get' |
|
|
|
operationRef: '#/paths/~1polls/~1{poll-id}/get' |
|
|
|
parameters: |
|
|
|
pollId: '$response.body#/id' |
|
|
|
description: > |
|
|
|
The `id` value returned in the response can be used as the `pollId` parameter in GET /polls/{pollId}. |
|
|
|
The `id` value returned in the response can be used as the `poll-id` parameter in GET /polls/{poll-id}. |
|
|
|
SetPollByPollId: |
|
|
|
operationRef: '#/paths/~1polls/~1{pollId}/patch' |
|
|
|
operationRef: '#/paths/~1polls/~1{poll-id}/patch' |
|
|
|
parameters: |
|
|
|
pollId: '$response.body#/id' |
|
|
|
description: > |
|
|
|
The `id` value returned in the response can be used as the `pollId` parameter in PATCH /polls/{pollId}. |
|
|
|
The `id` value returned in the response can be used as the `poll-id` parameter in PATCH /polls/{poll-id}. |
|
|
|
DelPollByPollId: |
|
|
|
operationRef: '#/paths/~1polls/~1{pollId}/delete' |
|
|
|
operationRef: '#/paths/~1polls/~1{poll-id}/delete' |
|
|
|
parameters: |
|
|
|
pollId: '$response.body#/id' |
|
|
|
description: > |
|
|
|
The `id` value returned in the response can be used as the `pollId` parameter in DELETE /polls/{pollId}. |
|
|
|
The `id` value returned in the response can be used as the `poll-id` parameter in DELETE /polls/{poll-id}. |
|
|
|
GetJudgmentByJudgmentId: |
|
|
|
operationRef: '#/paths/~1judgments/~1{judgmentId}/get' |
|
|
|
operationRef: '#/paths/~1judgments/~1{judgment-id}/get' |
|
|
|
parameters: |
|
|
|
judgmentId: '$response.body#/id' |
|
|
|
description: > |
|
|
|
The `id` value returned in the response can be used as the `judgmentId` parameter in GET /judgments/{judgmentId}. |
|
|
|
The `id` value returned in the response can be used as the `judgment-id` parameter in GET /judgments/{judgment-id}. |
|
|
|
DelJudgmentByJudgmentId: |
|
|
|
operationRef: '#/paths/~1judgments/~1{judgmentId}/delete' |
|
|
|
operationRef: '#/paths/~1judgments/~1{judgment-id}/delete' |
|
|
|
parameters: |
|
|
|
judgmentId: '$response.body#/id' |
|
|
|
description: > |
|
|
|
The `id` value returned in the response can be used as the `judgmentId` parameter in DELETE /judgments/{judgmentId}. |
|
|
|
The `id` value returned in the response can be used as the `judgment-id` parameter in DELETE /judgments/{judgment-id}. |
|
|
|
JudgeByPollId: |
|
|
|
operationRef: '#/paths/~1judgments/~1{pollId}/post' |
|
|
|
operationRef: '#/paths/~1judges/~1{poll-id}/post' |
|
|
|
parameters: |
|
|
|
userId: '$response.body#/id' |
|
|
|
description: > |
|
|
|
The `id` value returned in the response can be used as the `pollId` parameter in GET /judgments/{pollId}. |
|
|
|
The `id` value returned in the response can be used as the `poll-id` parameter in GET /judgments/{poll-id}. |
|
|
|
InviteByPollId: |
|
|
|
operationRef: '#/paths/~1invites/~1{pollId}/post' |
|
|
|
operationRef: '#/paths/~1polls/~1{poll-id}/judges/post' |
|
|
|
parameters: |
|
|
|
userId: '$response.body#/id' |
|
|
|
description: > |
|
|
|
The `id` value returned in the response can be used as the `pollId` parameter in GET /invites/{pollId}. |
|
|
|
The `id` value returned in the response can be used as the `poll-id` parameter in GET /invites/{poll-id}. |