Add some TODO and add 500 error responses in openapi.yml. Also write the endpoint for election results

This commit is contained in:
2025-01-11 17:57:15 +01:00
parent 5927e9c855
commit 86d7d0e881
2 changed files with 49 additions and 2 deletions

View File

@ -133,10 +133,10 @@ func (app *application) createVotes(w http.ResponseWriter, r *http.Request) {
return
}
election, err := app.elections.GetById(request.ElectionId)
election, err := app.elections.GetById(request.ElectionId) // get from path instead of from the JSON
if err != nil {
if errors.Is(err, sql.ErrNoRows) {
app.unprocessableEntityErrorSingle(w, fmt.Errorf("election with id %v doesn't exist", request.ElectionId))
app.unprocessableEntityErrorSingle(w, fmt.Errorf("election with id %v doesn't exist", request.ElectionId)) // TODO: return 404
return
}
app.serverError(w, r, err)

View File

@ -51,6 +51,44 @@ paths:
application/json:
schema:
$ref: "#/components/schemas/ErrorResponse"
500:
description: Server error
content:
application/json:
schema:
$ref: "#/components/schemas/ErrorResponse"
/election/{id}/results:
get:
tags:
- election
summary: Get the results of an election
parameters:
- name: id
in: path
required: true
description: The ID of the election
schema:
type: integer
responses:
200:
description: Election results returned
content:
application/json:
schema:
$ref: "#/components/schemas/ElectionResultsResponse"
404:
description: Election doesn't exist
content:
application/json:
schema:
$ref: "#/components/schemas/ErrorResponse"
500:
description: Server error
content:
application/json:
schema:
$ref: "#/components/schemas/ErrorResponse"
/votes:
post:
@ -72,6 +110,12 @@ paths:
application/json:
schema:
$ref: "#/components/schemas/ErrorResponse"
500:
description: Server error
content:
application/json:
schema:
$ref: "#/components/schemas/ErrorResponse"
components:
schemas:
@ -243,6 +287,9 @@ components:
tokens:
type: integer
ElectionResultsResponse:
type: object
ErrorResponse:
type: object
required: