diff --git a/mv-openapi.yaml b/mv-openapi.yaml index 197a81b..203cd40 100644 --- a/mv-openapi.yaml +++ b/mv-openapi.yaml @@ -269,84 +269,113 @@ components: type: object properties: id: - type: string + type: integer + description: A unique identifier + example: 4 readOnly: true grade: - type: string + type: integer + description: >- + The grade item, according to the grades array defined when creating + the poll. + example: 2 candidate: type: object properties: id: - type: string + type: integer + description: A unique identifier. readOnly: true + example: 4 name: type: string description: Unique but short name of the candidate. + example: A new school judgments: type: array + description: The judgments received by this candidate. items: $ref: '#/components/schemas/judgment' - description: The judgments received by this candidate. grade: type: object properties: id: - type: string + type: integer + description: A unique identifier + example: 0 readOnly: true name: type: string description: 'Unique but short name of the grade, like "Excellent" or "To reject".' + example: Excellent judge: type: object properties: id: type: string + description: A unique identifier + example: JtRm05yjMAuFCI2uwnFp readOnly: true has-voted: - type: string + type: boolean + description: 'True if the judge already voted on the poll, False otherwise' + example: true poll-id: type: string + description: The identifier of the poll that the judge participates on. + example: 1jDe1e5eF_IkaYPuoIYX mail: type: object description: >- - Send a mail at the creation of the judge. The mail is not kept in - memory. + The mail that will eventually created at the creation of the judge + (not kept in memory). + example: john-doe@example.com poll: type: object properties: id: type: string + description: A unique identifier + example: 1jDe1e5eF_IkaYPuoIYX readOnly: true title: type: string - description: 'As , I find these candidates:' + example: What project should our neighbourhood invest in for the next year? + description: The title of the poll candidates: type: array + description: The candidates being judged in a poll. minItems: 2 maxItems: 20 items: $ref: '#/components/schemas/candidate' - description: The candidates being judged in a poll. grades: type: array + description: The grades on which one judges a candidate. + minItems: 2 + maxItems: 10 items: $ref: '#/components/schemas/grade' - description: The grades on which one judges a candidate. judges: type: array + description: The judges that are allowed to participate to the election. 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? + description: 'True if anyone can participate to this poll, False otherwise.' + example: false error: type: object properties: code: type: string + description: The HTTP code of the response + example: 404 message: type: string + description: The response details + example: The specified judge was not found required: - code - message @@ -357,6 +386,18 @@ components: $ref: '#/components/schemas/poll' ranking: type: array + description: >- + An array representing grades level for each candidate, according to + the grades list, following the order of the candidates array defined + when the related poll has been created. + example: + - 0 + - 6 + - 3 + - 2 + - 2 + minItems: 2 + maxItems: 20 items: type: integer format: int16 diff --git a/openapi/components/schemas/result.yaml b/openapi/components/schemas/result.yaml index ad73e95..469e7b8 100644 --- a/openapi/components/schemas/result.yaml +++ b/openapi/components/schemas/result.yaml @@ -1,15 +1,13 @@ type: object properties: poll: - type: object - description: The poll belonging to this result. $ref: ./poll.yaml ranking: type: array description: An array representing grades level for each candidate, according to the grades list, following the order of the candidates array defined when the related poll has been created. - examples: [0, 6, 3, 2, 2] + example: [0, 6, 3, 2, 2] minItems: 2 maxItems: 20 items: