All custom endpoints made for the Page / Play integration are served under api/sp/...
Schedules
GET api/sp/schedules
Returns all schedules that have at least one team or at least one game based off an office, season and category (optional).
For an office which have a game office type (League
, Tournament
, or Cup
), only schedules that are directly under the office are queried. For all other types of office, it returns all schedules that have teams under the office and the effective offices (excluding office members).
Accepts
officeId (required)
seasonId (required)
categoryId (optional)
Returns
Schedules
Categories
GET api/sp/categories
Returns all categories that contain schedules with at least one team or at least one game based off an office and season.
For an office which have a game office type (League
, Tournament
, or Cup
), only schedules that are directly under the office are queried. For all other types of office, it returns all schedules that have teams under the office and the effective offices (excluding office members).
Accepts
officeId (required)
seasonId (required)
Returns
Categories, includes Class and Division
Seasons
GET api/sp/seasons
Returns all seasons that Play currently supports. Additional information such as the SID id (externalId
), display name (name
), first / last game date (firstGameDate
/ lastGameDate
), and if its the current season (isCurrent
). The categoryId filter is used to narrow down the first and last game date.
For an office which have a game office type (League
, Tournament
, or Cup
), only games that are directly under the office are queried. For all other types of office, it returns all games that have teams under the office and the effective offices (excluding office members).
Accepts
officeId (required)
categoryId (optional)
Returns
Seasons
[ { "seasonId": "2024-25", "name": "2024-25", "externalId": "daa35de9-a983-11ee-bfcd-02d1437f326a", "firstGameDate": "2024-04-13", "lastGameDate": "2024-09-28", "isCurrent": true }, { "seasonId": "2023-24", "name": "2023-24", "externalId": "56a3ed23-96b0-11ed-aabf-026841454e5e", "firstGameDate": "2023-05-03", "lastGameDate": "2024-04-24", "isCurrent": false }, { "seasonId": "2022-23", "name": "2022-23", "externalId": null, "firstGameDate": null, "lastGameDate": null, "isCurrent": false }, { "seasonId": "2021-22", "name": "2021-22", "externalId": null, "firstGameDate": null, "lastGameDate": null, "isCurrent": false }, { "seasonId": "2020-21", "name": "2020-21", "externalId": null, "firstGameDate": null, "lastGameDate": null, "isCurrent": false }, { "seasonId": "2019-20", "name": "2019-20", "externalId": null, "firstGameDate": null, "lastGameDate": null, "isCurrent": false }, { "seasonId": "2018-19", "name": "2018-19", "externalId": null, "firstGameDate": null, "lastGameDate": null, "isCurrent": false } ]
All Activities (Work in progress)
GET api/sp/allactivites
Goal is for Spordle Page to be able to display a calendar with all the events that are happening within an office.
Games: For offices of type League
, Tournament
, Cup
it will grab all games directly in the office. For all other type of offices (Non-game offices) it will find all the teams that are within the office and the games associated to those teams. Ex. in an Association, games from a team that is in the association that played in a random tournament will show up.
Practices: All practices within the office (effectiveOffices, no includeMembers).
A practice record has an array of teams as opposed to 2 teams and can have no teams. (teamIds: []
)
This is how they are displayed in Play currently:
All types of events can have one of the following status: Active
Cancelled
, Conflict
, Postponed
, Rescheduled
, Rink Changed
Accepts
officeId (required)
startDate (required)
endDate (required)
type (optional) default: Game / Practice
effective (optional) default true
Response
games: [{ "number": "M18-517", "date": "2022-11-11", "startTime": "2022-11-11T21:30:00.000Z", "endTime": "2022-11-11T23:00:00.000Z", "timezone": "America/Vancouver", "division": "U18", "gender": "Integrated", "categoryId": "37cd78a9-662e-4dac-be18-8ec715692c53", "seasonId": "2023-24", "arenaId": 128, "scheduleId": 4801, "groupId": null, "crossGroupId": null, "crossScheduleId": null, "officeId": 661, "homeTeamId": 17426, "awayTeamId": 20414, "homeTeam": {...}, "awayTeam": {...}, "status": "Active", "comments": null, "isApproved": true, "isCertified": false, "id": 128984, "category": "C" }...], practices: [{ "id": "7f69e234-a131-4f0a-a9da-24bc14d5d3cc", "name": "Practice - OTTAWA MYERS AUTOMOTIVE U14 AAA", "teamIds": [], "teams": [...] "arenaId": 9209, "comments": null, "date": "2024-02-21", "startTime": "2024-02-21T14:00:00.000Z", "endTime": "2024-02-21T15:30:00.000Z", "officeId": 4695, "seasonId": "2024-25", "status": "Active", "timezone": "America/Toronto" }...]