Create an API controller & associated endpoint that lets all authorized users and clients (end users) request a screening result for a list of players.
Allow filtering based on a number of criteria (everything under "Planned" and "Suggestions" in #209)
Acceptance Criteria
[x] Create a new API controller, ScreeningController that accepts requests from users and clients.
[x] Create a new endpoint within this controller, /screeningPOST that accepts the following query parameters:
ruleset: integer required, filters the results by ruleset
minRating: integer?
maxRating: integer?
allowProvisional: boolean? Default false, specifies whether to allow provisional players to pass screening.
tournamentsPlayed: integer?
matchesPlayed: integer?
timeSinceLastMatch: TimeSpan? or, alternatively hasNotPlayedSince: DateTime? (there may be a better name for this)
Some things may be added here as we discover them, but this should be fine for now.
[x] Create ScreeningService data access layer for the filter function.
[x] Data access layer is easily extensible for the above filter, meaning the filter should be able to change without breaking much.
[x] API returns a properly filtered list of players based on these filters.
[ ] Each filter is unit tested & mocked correctly.
Screening API
Related discussion: #209
Objectives
Acceptance Criteria
ScreeningController
that accepts requests from users and clients./screening
POST
that accepts the following query parameters:ruleset
:integer
required, filters the results by rulesetminRating
:integer?
maxRating
:integer?
allowProvisional
:boolean?
Default false, specifies whether to allow provisional players to pass screening.tournamentsPlayed
:integer?
matchesPlayed
:integer?
timeSinceLastMatch
:TimeSpan?
or, alternativelyhasNotPlayedSince
:DateTime?
(there may be a better name for this)ScreeningService
data access layer for the filter function.