Add some TODO and add 500 error responses in openapi.yml. Also write the endpoint for election results
This commit is contained in:
@ -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)
|
||||
|
@ -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:
|
||||
|
Reference in New Issue
Block a user