-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathchemistry.software-biljart-api-1.0.0-resolved.yaml
290 lines (290 loc) · 7.51 KB
/
chemistry.software-biljart-api-1.0.0-resolved.yaml
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
---
openapi: 3.0.0
info:
title: Biljart API
description: API for the Libre Billiards competition at De Club met Stootkracht
contact:
email: [email protected]
license:
name: Apache 2.0
url: http://www.apache.org/licenses/LICENSE-2.0.html
version: 1.0.0
servers:
- url: https://virtserver.swaggerhub.com/chemistry.software/biljart-api/1.0.0
description: SwaggerHub API Auto Mocking
tags:
- name: admins
description: Secured Admin-only calls
- name: players
description: Operations available to regular players
paths:
/clubs:
get:
tags:
- players
summary: Get all clubs
responses:
"200":
description: A list of clubs
content:
application/json:
schema:
type: array
items:
$ref: '#/components/schemas/Club'
post:
tags:
- admins
summary: Create a new club
requestBody:
content:
application/json:
schema:
$ref: '#/components/schemas/Club'
required: true
responses:
"200":
description: Successfully created
content:
application/json:
schema:
$ref: '#/components/schemas/Club'
/clubs/{club_id}:
get:
tags:
- players
summary: Get a specific club by ID
parameters:
- name: club_id
in: path
description: ID of the club to retrieve
required: true
style: simple
explode: false
schema:
type: string
responses:
"200":
description: A club object
content:
application/json:
schema:
$ref: '#/components/schemas/Club'
"404":
description: Club not found
/clubs/{club_id}/members:
get:
tags:
- players
summary: Get all members of a club
parameters:
- name: club_id
in: path
description: ID of the club to retrieve members from
required: true
style: simple
explode: false
schema:
type: string
responses:
"200":
description: A list of club members
content:
application/json:
schema:
type: array
items:
$ref: '#/components/schemas/Player'
"404":
description: Club not found
/clubs/{club_id}/competitions:
get:
tags:
- players
summary: Get all competitions of a club
parameters:
- name: club_id
in: path
description: ID of the club to retrieve competitions from
required: true
style: simple
explode: false
schema:
type: string
responses:
"200":
description: A list of competitions
content:
application/json:
schema:
type: array
items:
$ref: '#/components/schemas/Competition'
"404":
description: Club not found
/clubs/{club_id}/competitions/{competition_id}/games:
get:
tags:
- players
summary: Get all games of a competition
parameters:
- name: club_id
in: path
description: ID of the club
required: true
style: simple
explode: false
schema:
type: string
- name: competition_id
in: path
description: ID of the competition
required: true
style: simple
explode: false
schema:
type: string
responses:
"200":
description: A list of games
content:
application/json:
schema:
type: array
items:
$ref: '#/components/schemas/Game'
"404":
description: Club or competition not found
/games/{game_id}:
get:
tags:
- players
summary: Get a specific game by ID
parameters:
- name: game_id
in: path
description: ID of the game to retrieve
required: true
style: simple
explode: false
schema:
type: string
responses:
"200":
description: A game object
content:
application/json:
schema:
$ref: '#/components/schemas/Game'
"404":
description: Game not found
components:
schemas:
Club:
type: object
properties:
id:
type: string
description: The unique identifier for the club
name:
type: string
description: The name of the club
members:
type: array
items:
$ref: '#/components/schemas/Player'
competitions:
type: array
items:
$ref: '#/components/schemas/Competition'
ongoing:
type: boolean
description: Indicates if the club is currently active
start_date:
type: string
description: The start date of the club's activity
format: date
end_date:
type: string
description: The end date of the club's activity
format: date
Player:
type: object
properties:
id:
type: string
description: The unique identifier for the player
name:
type: string
description: The name of the player
moyenne:
type: number
description: The player's moyenne (average points per turn)
competitions:
type: array
items:
$ref: '#/components/schemas/Competition'
Competition:
type: object
properties:
id:
type: string
description: The unique identifier for the competition
name:
type: string
description: The name of the competition
club_id:
type: string
description: The ID of the club hosting the competition
start_date:
type: string
description: The start date of the competition
format: date
end_date:
type: string
description: The end date of the competition
format: date
games:
type: array
items:
$ref: '#/components/schemas/Game'
Game:
type: object
properties:
id:
type: string
description: The unique identifier for the game
competition_id:
type: string
description: The ID of the competition the game belongs to
player1_id:
type: string
description: The ID of the first player
player2_id:
type: string
description: The ID of the second player
date_played:
type: string
description: The date and time when the game was played
format: date-time
ongoing:
type: boolean
description: Indicates if the game is currently ongoing
outcome:
type: string
description: The outcome of the game
enum:
- win
- lose
- draw
- maximum_turns
- ongoing
points_player1:
type: integer
description: Points scored by player 1 in the game
points_player2:
type: integer
description: Points scored by player 2 in the game
turns:
type: integer
description: The amount of turns taken