5.4 KiB
Pairgoth API specification
General remarks
The API expects an Accept
header of application/json
, with no encoding or an UTF-8
encoding. Exceptions are some export operations which can have different MIME types to specify the expected format.
GET requests return either an array or an object, as specified below.
POST, PUT and DELETE requests return either the 200 HTTP code with { "success": true }
(with an optional "id"
field for some POST requests), or and invalid HTTP code and (for some errors) the body { "success": false, "error": <error message> }
.
Synopsis
- /api/tour GET POST Tournaments handling
- /api/tour/#tid GET PUT DELETE Tournaments handling
- /api/tour/#tid/part GET POST Registration handling
- /api/tour/#tid/part/#pid GET PUT DELETE Registration handling
- /api/tour/#tid/team GET POST Team handling
- /api/tour/#tid/team/#tid GET PUT DELETE Team handling
- /api/tour/#tid/pair/#rn GET POST PUT DELETE Pairing
- /api/tour/#tid/res/#rn GET PUT DELETE Results
- /api/tour/#tid/standings GET Standings
- /api/tour/#tid/stand/#rn GET Standings
Tournament handling
-
GET /api/tour
Get a list of known tournaments idsoutput json map (id towards shortName) of known tournaments (subject to change)
-
GET /api/tour/#tid
Get the details of tournament #tidoutput json object for tournament #tid
-
POST /api/tour
Create a new tournamentinput json object for new tournament (see
Tournament.fromJson
in the sources)output
{ "success": true, "id": #tid }
-
PUT /api/tour/#tid
Modify a tournamentinput json object for updated tournament (only id and updated fields required)
output
{ "success": true }
Players handling
-
GET /api/tour/#tid/part
Get a list of registered playersoutput json array of known players
-
GET /api/tour/#tid/part/#pid
Get regitration details for player #pidoutput json object for player #pid
-
POST /api/tour/#tid/part
Register a new playerinput
{ "name":"..." , "firstname":"..." , "rating":<rating> , "rank":<rank> , "country":"XX" [ , "club":"Xxxx" ] [ , "final":true/false ] [ , "mmsCorrection":0 ] }
output
{ "success": true, "id": #pid }
-
PUT /api/tour/#tid/part/#pid
Modify a player registrationinput json object for updated registration (only id and updated fields required)
output
{ "success": true }
-
DELETE /api/tour/#tid/part/#pid
Delete a player registrationinput
{ "id": #pid }
output
{ "success": true }
Teams handling
-
GET /api/tour/#tid/team
Get a list of registered teamsoutput json array of known teams
-
GET /api/tour/#tid/team/#tid
Get regitration details for team #tidoutput json object for team #tid
-
POST /api/tour/#tid/team
Register a new teaminput json object for new team
output
{ "success": true, "id": #tid }
-
PUT /api/tour/#tid/team/#tid
Modify a team registrationinput json object for updated registration (only id and updated fields required)
output
{ "success": true }
-
DELETE /api/tour/#tid/team/#tid
Delete a team registrationinput
{ "id": #tid }
output
{ "success": true }
Pairing
-
GET /api/tour/#tid/pair/#rn
Get pairable players for round #rnoutput
{ "games": [ games... ], "pairables:" [ #pid, ... of players not skipping and not playing the round ], "unpairables": [ #pid, ... of players skipping the round ] }
-
POST /api/tour/#tip/pair/#n
Generate pairing for round #n and given players (or string "all") ; error if already generated for provided playersinput
[ "all" ]
or[ #pid, ... ]
output
[ { "id": #gid, "t": table, "w": #wpid, "b": #bpid, "h": handicap }, ... ]
-
PUT /api/tour/#tip/pair/#n
Manual pairing (with optional handicap)input
{ "id": #gid, "w": #wpid, "b": #bpid, "h": <handicap> }
output
{ "success": true }
-
DELETE /api/tour/#tip/pair/#n
Delete pairing for round #n and given players (or string "all") ; games with results entered are skippedinput
[ "all" ]
or[ #gid, ... ]
output
{ "success": true }
Results
-
GET /api/tour/#tip/res/#rn
Get results for round #rnoutput
[ { "id": #gid, "res": <result> } ]
withres
being one of:"w"
,"b"
,"="
(jigo),"x"
(cancelled),"?"
(unknown),"#"
(both win), or"0"
(both loose). -
PUT /api/tour/#tip/res/#rn
Save a result (or put it back to unknown)input
{ "id": #gid, "res": <result> }
withres
being one of:"w"
,"b"
,"="
(jigo),"x"
(cancelled)output
{ "success": true }
-
DELETE /api/tour/#tip/res/#rn
Clear all results (put back all results to unknown)input none
output
{ "success": true }
Standings
-
GET /api/tour/#tid/stand/#rn
Get standings after round #rn (or initial standings for round '0')output
[ { "id": #pid, "place": place, "<crit>": double }, ... ]
where<crit>
is the name of a criterium, among "score", "nbw", "mms", "sosm", "sososm", ...
Authentication
-
GET /api/token
Get the token of the currently logged user, or give an error. -
POST /api/token
Create an access token. Expects an authentication json object. -
DELETE /api/token
Delete the token of the currently logged user.