Skip to content
Snippets Groups Projects
Verified Commit e271282a authored by Jakob Moser's avatar Jakob Moser
Browse files

Start specifying API

parent 10459a65
No related branches found
No related tags found
No related merge requests found
---
openapi: 3.0.2
info:
title: Amelie API
version: 0.0.0
description: API endpoints related to participating in votings of the BuFaTa Sprachwissenschaft via e-mail.
license:
name: CC0 1.0 Universal
url: https://creativecommons.org/publicdomain/zero/1.0/
paths:
/voting-sessions:
post:
summary: Start a voting session
operationId: startVotingSession
responses:
"201":
description: A voting session has been started. You will receive instructions on how to authenticate it.
"400":
description: The request to start a voting session was invalid and has been discarded.
requestBody:
required: true
content:
application/json:
schema:
$ref: "#/components/schemas/VotingSession"
example:
votingUuid: ace5430c-8251-4524-bacb-ae3b2445d70d
email: fs-coli@cl.uni-heidelberg.example
/votings/{uuid}:
get:
summary: Get a voting
operationId: getVoting
responses:
"200":
content:
application/json:
schema:
$ref: "#/components/schemas/Voting"
description: Successful response, returns a `Voting` instance.
"404":
description: There is no `Voting` instance with this uuid.
parameters:
- $ref: "#/components/parameters/uuid"
/votings/{uuid}/ballots:
post:
summary: Cast a ballot
operationId: castBallot
responses:
"201":
description: The ballot has been accepted and your vote has been finally counted.
"400":
description: The ballot was invalid and has not been accepted.
parameters:
- $ref: "#/components/parameters/uuid"
components:
schemas:
VotingSession:
title: VotingSession
description: A session in which exactly one voter can cast exactly one ballot in exactly one vote.
required:
- uuid
- votingUuid
- email
type: object
properties:
uuid:
type: string
format: uuid
readOnly: true
votingUuid:
type: string
format: uuid
email:
type: string
format: email
example:
uuid: 1f1a8e45-86eb-4ca0-8e2a-b5cc8c274f06
votingUuid: ace5430c-8251-4524-bacb-ae3b2445d70d
email: fs-coli@cl.uni-heidelberg.example
VotingItem:
title: VotingItem
description: “Abstimmungsgegenstand”. One single thing a vote (yes, no, abstention) can be cast on.
required:
- uuid
- title
type: object
properties:
uuid:
type: string
format: uuid
title:
type: string
example:
uuid: be393e04-8052-45db-a133-d4a8353eb7cb
title: Entsendung von Lara-Mi Holner in den Akkreditierungspool
Voting:
title: Voting
description: A collection of voting items, identified by a uuid.
required:
- uuid
- date
- items
type: object
properties:
uuid:
type: string
format: uuid
date:
type: string
format: date
items:
type: array
items:
$ref: "#/components/schemas/VotingItem"
example:
uuid: ace5430c-8251-4524-bacb-ae3b2445d70d
date: 2024-09-30
items:
- uuid: be393e04-8052-45db-a133-d4a8353eb7cb
title: Entsendung von Lara-Mi Holner in den Akkreditierungspool
- uuid: 72706d2a-8964-4ed4-a313-84f5d0d32b06
title: Entsendung von Sven Åberg in den Akkreditierungspool
Voter:
title: Voter
description: An entity entitled to vote in a voting. Has an e-mail address, belongs to a Fachschaft and a university, also has a human contact name specified.
required:
- university
- fachschaft
- human
- email
type: object
properties:
university:
type: string
fachschaft:
type: string
human:
type: string
email:
type: string
format: email
example:
university: Universität Heidelberg
fachschaft: Computerlinguistik
human: Robby McRobotface
email: fs-coli@cl.uni-heidelberg.example
Ballot:
title: Ballot
description: Cast by a Fachschaft for a specific voting, assigns each voting item a vote (yes, no, abstention).
required:
- uuid
- votingUuid
- voter
- votes
- encryptConfirmationMail
type: object
properties:
uuid:
type: string
format: uuid
votingUuid:
type: string
format: uuid
voter:
$ref: "#/components/schemas/Voter"
votes:
type: object
additionalProperties:
type: boolean
nullable: true
encryptConfirmationMail:
type: boolean
example:
uuid: f57d4127-9986-4af6-bfdf-d2c3407359ad
votingUuid: ace5430c-8251-4524-bacb-ae3b2445d70d
voter:
university: Universität Heidelberg
fachschaft: Computerlinguistik
human: Robby McRobotface
email: fs-coli@cl.uni-heidelberg.example
encryptConfirmationMail: true
votes:
be393e04-8052-45db-a133-d4a8353eb7cb: true
72706d2a-8964-4ed4-a313-84f5d0d32b06: null
parameters:
uuid:
name: uuid
schema:
type: string
format: uuid
required: true
in: path
description: The unique identifier for the object in question.
examples:
an_example_voting:
value: ace5430c-8251-4524-bacb-ae3b2445d70d
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment