import qs from 'querystringify' import {Base, NevoboResponse, Pagination} from "../base"; import {Wedstrijd} from "./types"; export class Wedstrijden extends Base { /** * Get all Wedstrijden for a Poule. * This will only return the first 1000 in a Poule, should be fine. * @param poule */ getWedstrijdenForPoule(poule: string): Promise> { if (poule === "") { return this.getArgumentErrorPromise("Poule cannot be empty.") } const pagination = {page: 1, limit: 1000}; const endpoint = `competitie/wedstrijden/` + qs.stringify({ ...pagination, poule: poule }, '?'); return this.request(endpoint, true); } /** * Get all Wedstrijden for a Vereniging. * This will only return the first 1000 in a Poule. Use pagination if needed * If vereniging is not valid, this request returns the first page of getAllWedstrijden() * @param vereniging * @param pagination optional, use if you need more than one page. */ getWedstrijdenForVereniging(vereniging: string, pagination = { page: 1, limit: 1000 }): Promise> { const endpoint = `competitie/wedstrijden/` + qs.stringify({ ...pagination, vereniging: vereniging }, '?'); return this.request(endpoint, true); } /** * Get all Wedstrijden, programma and resultaat * Wedstrijden requires pagination, the limit per page is 1000 * @param pagination */ getAllWedstrijden(pagination: Pagination): Promise> { const endpoint = `competitie/wedstrijden/` + qs.stringify(pagination, '?'); return this.request(endpoint, true); } getAllWedstrijdProgramma(pagination: Pagination): Promise> { const endpoint = `competitie/wedstrijden/programma` + qs.stringify(pagination, '?'); return this.request(endpoint, true); } getAllWedstrijdResultaat(pagination: Pagination): Promise> { const endpoint = `competitie/wedstrijden/resultaat` + qs.stringify(pagination, '?'); return this.request(endpoint, true); } /** * @param vereniging if vereniging is invalid returns the first page of getAllWedstrijdProgramma() */ getWedstrijdProgrammaForVereniging(vereniging: string): Promise> { if (vereniging === "") { return this.getArgumentErrorPromise("Vereniging cannot be empty.") } const endpoint = `competitie/wedstrijden/programma` + qs.stringify({ page: 1, limit: 1000, vereniging: vereniging }, '?'); return this.request(endpoint, true); } /** * @param vereniging if vereniging is invalid returns the first page of getAllWedstrijdResultaat() */ getWedstrijdResultaatForVereniging(vereniging: string): Promise> { if (vereniging === "") { return this.getArgumentErrorPromise("Vereniging cannot be empty.") } const endpoint = `competitie/wedstrijden/resultaat` + qs.stringify({ page: 1, limit: 1000, vereniging: vereniging }, '?'); return this.request(endpoint, true); } }