diff --git a/dist/core/ApiRequestOptions.d.ts b/dist/core/ApiRequestOptions.d.ts index 982050d..6e1fcb7 100644 --- a/dist/core/ApiRequestOptions.d.ts +++ b/dist/core/ApiRequestOptions.d.ts @@ -1,4 +1,4 @@ -export declare type ApiRequestOptions = { +export type ApiRequestOptions = { readonly method: 'GET' | 'PUT' | 'POST' | 'DELETE' | 'OPTIONS' | 'HEAD' | 'PATCH'; readonly path: string; readonly cookies?: Record; diff --git a/dist/core/ApiResult.d.ts b/dist/core/ApiResult.d.ts index e9ed2c2..5717fec 100644 --- a/dist/core/ApiResult.d.ts +++ b/dist/core/ApiResult.d.ts @@ -1,4 +1,4 @@ -export declare type ApiResult = { +export type ApiResult = { readonly url: string; readonly ok: boolean; readonly status: number; diff --git a/dist/core/OpenAPI.d.ts b/dist/core/OpenAPI.d.ts index e1df9ae..b2c9438 100644 --- a/dist/core/OpenAPI.d.ts +++ b/dist/core/OpenAPI.d.ts @@ -1,6 +1,6 @@ -declare type Resolver = () => Promise; -declare type Headers = Record; -declare type Config = { +type Resolver = () => Promise; +type Headers = Record; +type Config = { BASE: string; VERSION: string; WITH_CREDENTIALS: boolean; diff --git a/dist/core/OpenAPI.js b/dist/core/OpenAPI.js index ec51227..d776645 100644 --- a/dist/core/OpenAPI.js +++ b/dist/core/OpenAPI.js @@ -3,7 +3,7 @@ Object.defineProperty(exports, "__esModule", { value: true }); exports.OpenAPI = void 0; exports.OpenAPI = { BASE: '', - VERSION: '0.11.1', + VERSION: '0.12.0', WITH_CREDENTIALS: false, TOKEN: undefined, USERNAME: undefined, diff --git a/dist/core/request.d.ts b/dist/core/request.d.ts index 10c785c..425f4ca 100644 --- a/dist/core/request.d.ts +++ b/dist/core/request.d.ts @@ -3,7 +3,7 @@ import type { ApiResult } from './ApiResult'; /** * Request using fetch client * @param options The request options from the the service - * @returns ApiResult + * @result ApiResult * @throws ApiError */ export declare function request(options: ApiRequestOptions): Promise; diff --git a/dist/core/request.js b/dist/core/request.js index 7ac80d5..27342f5 100644 --- a/dist/core/request.js +++ b/dist/core/request.js @@ -111,9 +111,6 @@ async function sendRequest(options, url) { headers: await getHeaders(options), body: getRequestBody(options), }; - if (OpenAPI_1.OpenAPI.WITH_CREDENTIALS) { - request.credentials = 'include'; - } return await fetch(url, request); } function getResponseHeader(response, responseHeader) { @@ -165,7 +162,7 @@ function catchErrors(options, result) { /** * Request using fetch client * @param options The request options from the the service - * @returns ApiResult + * @result ApiResult * @throws ApiError */ async function request(options) { diff --git a/dist/models/Address.d.ts b/dist/models/Address.d.ts index 27603fe..9229fef 100644 --- a/dist/models/Address.d.ts +++ b/dist/models/Address.d.ts @@ -1,4 +1,4 @@ -export declare type Address = { +export type Address = { address1: string; address2: string; postalcode: string; diff --git a/dist/models/AddressCityEmptyError.d.ts b/dist/models/AddressCityEmptyError.d.ts index 1ca9505..9d06058 100644 --- a/dist/models/AddressCityEmptyError.d.ts +++ b/dist/models/AddressCityEmptyError.d.ts @@ -1,4 +1,4 @@ -export declare type AddressCityEmptyError = { +export type AddressCityEmptyError = { name: string; message: string; }; diff --git a/dist/models/AddressCountryEmptyError.d.ts b/dist/models/AddressCountryEmptyError.d.ts index 5f92e21..54e30ee 100644 --- a/dist/models/AddressCountryEmptyError.d.ts +++ b/dist/models/AddressCountryEmptyError.d.ts @@ -1,4 +1,4 @@ -export declare type AddressCountryEmptyError = { +export type AddressCountryEmptyError = { name: string; message: string; }; diff --git a/dist/models/AddressFirstLineEmptyError.d.ts b/dist/models/AddressFirstLineEmptyError.d.ts index 80d3b9d..b575d30 100644 --- a/dist/models/AddressFirstLineEmptyError.d.ts +++ b/dist/models/AddressFirstLineEmptyError.d.ts @@ -1,4 +1,4 @@ -export declare type AddressFirstLineEmptyError = { +export type AddressFirstLineEmptyError = { name: string; message: string; }; diff --git a/dist/models/AddressPostalCodeEmptyError.d.ts b/dist/models/AddressPostalCodeEmptyError.d.ts index 1cb15f3..55cd1f4 100644 --- a/dist/models/AddressPostalCodeEmptyError.d.ts +++ b/dist/models/AddressPostalCodeEmptyError.d.ts @@ -1,4 +1,4 @@ -export declare type AddressPostalCodeEmptyError = { +export type AddressPostalCodeEmptyError = { name: string; message: string; }; diff --git a/dist/models/AddressPostalCodeInvalidError.d.ts b/dist/models/AddressPostalCodeInvalidError.d.ts index b5f7daa..59d7fa6 100644 --- a/dist/models/AddressPostalCodeInvalidError.d.ts +++ b/dist/models/AddressPostalCodeInvalidError.d.ts @@ -1,4 +1,4 @@ -export declare type AddressPostalCodeInvalidError = { +export type AddressPostalCodeInvalidError = { name: string; message: string; }; diff --git a/dist/models/CreateAuth.d.ts b/dist/models/CreateAuth.d.ts index be72ec6..4f8e17a 100644 --- a/dist/models/CreateAuth.d.ts +++ b/dist/models/CreateAuth.d.ts @@ -1,4 +1,4 @@ -export declare type CreateAuth = { +export type CreateAuth = { username?: string; email?: string; password: string; diff --git a/dist/models/CreateDistanceDonation.d.ts b/dist/models/CreateDistanceDonation.d.ts index 5a04cdb..608f867 100644 --- a/dist/models/CreateDistanceDonation.d.ts +++ b/dist/models/CreateDistanceDonation.d.ts @@ -1,4 +1,4 @@ -export declare type CreateDistanceDonation = { +export type CreateDistanceDonation = { runner: number; amountPerDistance: number; donor: number; diff --git a/dist/models/CreateDonation.d.ts b/dist/models/CreateDonation.d.ts index 49f1171..1a2bda4 100644 --- a/dist/models/CreateDonation.d.ts +++ b/dist/models/CreateDonation.d.ts @@ -1,4 +1,4 @@ -export declare type CreateDonation = { +export type CreateDonation = { donor: number; paidAmount?: number; }; diff --git a/dist/models/CreateDonor.d.ts b/dist/models/CreateDonor.d.ts index 36c229e..7a6ad13 100644 --- a/dist/models/CreateDonor.d.ts +++ b/dist/models/CreateDonor.d.ts @@ -1,4 +1,4 @@ -export declare type CreateDonor = { +export type CreateDonor = { receiptNeeded?: boolean; firstname: string; middlename?: string; diff --git a/dist/models/CreateFixedDonation.d.ts b/dist/models/CreateFixedDonation.d.ts index 33fd4a8..80fe9fe 100644 --- a/dist/models/CreateFixedDonation.d.ts +++ b/dist/models/CreateFixedDonation.d.ts @@ -1,4 +1,4 @@ -export declare type CreateFixedDonation = { +export type CreateFixedDonation = { amount: number; donor: number; paidAmount?: number; diff --git a/dist/models/CreateGroupContact.d.ts b/dist/models/CreateGroupContact.d.ts index 3b4e086..4323f94 100644 --- a/dist/models/CreateGroupContact.d.ts +++ b/dist/models/CreateGroupContact.d.ts @@ -1,4 +1,4 @@ -export declare type CreateGroupContact = { +export type CreateGroupContact = { firstname: string; middlename?: string; lastname: string; diff --git a/dist/models/CreateParticipant.d.ts b/dist/models/CreateParticipant.d.ts index a774f41..df7facf 100644 --- a/dist/models/CreateParticipant.d.ts +++ b/dist/models/CreateParticipant.d.ts @@ -1,4 +1,4 @@ -export declare type CreateParticipant = { +export type CreateParticipant = { firstname: string; middlename?: string; lastname: string; diff --git a/dist/models/CreatePermission.d.ts b/dist/models/CreatePermission.d.ts index ba24cbe..ca013cf 100644 --- a/dist/models/CreatePermission.d.ts +++ b/dist/models/CreatePermission.d.ts @@ -1,4 +1,4 @@ -export declare type CreatePermission = { +export type CreatePermission = { principal: number; target: CreatePermission.target; action: CreatePermission.action; diff --git a/dist/models/CreateResetToken.d.ts b/dist/models/CreateResetToken.d.ts index d42f15d..ce596b5 100644 --- a/dist/models/CreateResetToken.d.ts +++ b/dist/models/CreateResetToken.d.ts @@ -1,3 +1,3 @@ -export declare type CreateResetToken = { +export type CreateResetToken = { email: string; }; diff --git a/dist/models/CreateRunner.d.ts b/dist/models/CreateRunner.d.ts index 243b300..8202b10 100644 --- a/dist/models/CreateRunner.d.ts +++ b/dist/models/CreateRunner.d.ts @@ -1,4 +1,4 @@ -export declare type CreateRunner = { +export type CreateRunner = { group: number; firstname: string; middlename?: string; diff --git a/dist/models/CreateRunnerCard.d.ts b/dist/models/CreateRunnerCard.d.ts index 0ad32c8..b2b397e 100644 --- a/dist/models/CreateRunnerCard.d.ts +++ b/dist/models/CreateRunnerCard.d.ts @@ -1,4 +1,4 @@ -export declare type CreateRunnerCard = { +export type CreateRunnerCard = { runner?: number; enabled: boolean; }; diff --git a/dist/models/CreateRunnerGroup.d.ts b/dist/models/CreateRunnerGroup.d.ts index 1eb3d0f..5bc6594 100644 --- a/dist/models/CreateRunnerGroup.d.ts +++ b/dist/models/CreateRunnerGroup.d.ts @@ -1,4 +1,4 @@ -export declare type CreateRunnerGroup = { +export type CreateRunnerGroup = { name: string; contact?: number; }; diff --git a/dist/models/CreateRunnerOrganization.d.ts b/dist/models/CreateRunnerOrganization.d.ts index 90e3712..c31cd8e 100644 --- a/dist/models/CreateRunnerOrganization.d.ts +++ b/dist/models/CreateRunnerOrganization.d.ts @@ -1,4 +1,4 @@ -export declare type CreateRunnerOrganization = { +export type CreateRunnerOrganization = { address?: any; registrationEnabled?: boolean; name: string; diff --git a/dist/models/CreateRunnerTeam.d.ts b/dist/models/CreateRunnerTeam.d.ts index afe890c..fa9d106 100644 --- a/dist/models/CreateRunnerTeam.d.ts +++ b/dist/models/CreateRunnerTeam.d.ts @@ -1,4 +1,4 @@ -export declare type CreateRunnerTeam = { +export type CreateRunnerTeam = { parentGroup: number; name: string; contact?: number; diff --git a/dist/models/CreateScan.d.ts b/dist/models/CreateScan.d.ts index daca06c..ae1b71a 100644 --- a/dist/models/CreateScan.d.ts +++ b/dist/models/CreateScan.d.ts @@ -1,4 +1,4 @@ -export declare type CreateScan = { +export type CreateScan = { runner: number; valid?: boolean; distance: number; diff --git a/dist/models/CreateScanStation.d.ts b/dist/models/CreateScanStation.d.ts index f185f10..1e03a40 100644 --- a/dist/models/CreateScanStation.d.ts +++ b/dist/models/CreateScanStation.d.ts @@ -1,4 +1,4 @@ -export declare type CreateScanStation = { +export type CreateScanStation = { description?: string; track: number; enabled?: boolean; diff --git a/dist/models/CreateSelfServiceCitizenRunner.d.ts b/dist/models/CreateSelfServiceCitizenRunner.d.ts index 94056ed..a39ff42 100644 --- a/dist/models/CreateSelfServiceCitizenRunner.d.ts +++ b/dist/models/CreateSelfServiceCitizenRunner.d.ts @@ -1,4 +1,4 @@ -export declare type CreateSelfServiceCitizenRunner = { +export type CreateSelfServiceCitizenRunner = { email?: string; firstname: string; middlename?: string; diff --git a/dist/models/CreateSelfServiceRunner.d.ts b/dist/models/CreateSelfServiceRunner.d.ts index 8f6e8c1..0b1cf93 100644 --- a/dist/models/CreateSelfServiceRunner.d.ts +++ b/dist/models/CreateSelfServiceRunner.d.ts @@ -1,4 +1,4 @@ -export declare type CreateSelfServiceRunner = { +export type CreateSelfServiceRunner = { team?: number; firstname: string; middlename?: string; diff --git a/dist/models/CreateStatsClient.d.ts b/dist/models/CreateStatsClient.d.ts index 06f223c..44f6248 100644 --- a/dist/models/CreateStatsClient.d.ts +++ b/dist/models/CreateStatsClient.d.ts @@ -1,3 +1,3 @@ -export declare type CreateStatsClient = { +export type CreateStatsClient = { description?: string; }; diff --git a/dist/models/CreateTrack.d.ts b/dist/models/CreateTrack.d.ts index 4384779..b2acba5 100644 --- a/dist/models/CreateTrack.d.ts +++ b/dist/models/CreateTrack.d.ts @@ -1,4 +1,4 @@ -export declare type CreateTrack = { +export type CreateTrack = { name: string; distance: number; minimumLapTime?: number; diff --git a/dist/models/CreateTrackScan.d.ts b/dist/models/CreateTrackScan.d.ts index b15c766..db1f679 100644 --- a/dist/models/CreateTrackScan.d.ts +++ b/dist/models/CreateTrackScan.d.ts @@ -1,4 +1,4 @@ -export declare type CreateTrackScan = { +export type CreateTrackScan = { card: number; station?: number; }; diff --git a/dist/models/CreateUser.d.ts b/dist/models/CreateUser.d.ts index a9068aa..f8198f2 100644 --- a/dist/models/CreateUser.d.ts +++ b/dist/models/CreateUser.d.ts @@ -1,4 +1,4 @@ -export declare type CreateUser = { +export type CreateUser = { firstname: string; middlename?: string; lastname: string; diff --git a/dist/models/CreateUserGroup.d.ts b/dist/models/CreateUserGroup.d.ts index 9e9788a..041af32 100644 --- a/dist/models/CreateUserGroup.d.ts +++ b/dist/models/CreateUserGroup.d.ts @@ -1,4 +1,4 @@ -export declare type CreateUserGroup = { +export type CreateUserGroup = { name: string; description?: string; }; diff --git a/dist/models/DistanceDonation.d.ts b/dist/models/DistanceDonation.d.ts index 6e582a4..e4ab41b 100644 --- a/dist/models/DistanceDonation.d.ts +++ b/dist/models/DistanceDonation.d.ts @@ -1,4 +1,4 @@ -export declare type DistanceDonation = { +export type DistanceDonation = { runner: string; amountPerDistance: number; id: number; diff --git a/dist/models/Donation.d.ts b/dist/models/Donation.d.ts index f8a9426..1aaf0c2 100644 --- a/dist/models/Donation.d.ts +++ b/dist/models/Donation.d.ts @@ -1,4 +1,4 @@ -export declare type Donation = { +export type Donation = { id: number; donor: string; paidAmount: number; diff --git a/dist/models/DonationIdsNotMatchingError.d.ts b/dist/models/DonationIdsNotMatchingError.d.ts index 30fa1d9..7314873 100644 --- a/dist/models/DonationIdsNotMatchingError.d.ts +++ b/dist/models/DonationIdsNotMatchingError.d.ts @@ -1,4 +1,4 @@ -export declare type DonationIdsNotMatchingError = { +export type DonationIdsNotMatchingError = { name: string; message: string; }; diff --git a/dist/models/DonationNotFoundError.d.ts b/dist/models/DonationNotFoundError.d.ts index ec0e20d..b179f74 100644 --- a/dist/models/DonationNotFoundError.d.ts +++ b/dist/models/DonationNotFoundError.d.ts @@ -1,4 +1,4 @@ -export declare type DonationNotFoundError = { +export type DonationNotFoundError = { name: string; message: string; }; diff --git a/dist/models/Donor.d.ts b/dist/models/Donor.d.ts index 5f399fa..1218c36 100644 --- a/dist/models/Donor.d.ts +++ b/dist/models/Donor.d.ts @@ -1,4 +1,4 @@ -export declare type Donor = { +export type Donor = { receiptNeeded: boolean; donationAmount: number; paidDonationAmount: number; diff --git a/dist/models/DonorHasDonationsError.d.ts b/dist/models/DonorHasDonationsError.d.ts index 5c2aa1d..8679ee2 100644 --- a/dist/models/DonorHasDonationsError.d.ts +++ b/dist/models/DonorHasDonationsError.d.ts @@ -1,4 +1,4 @@ -export declare type DonorHasDonationsError = { +export type DonorHasDonationsError = { name: string; message: string; }; diff --git a/dist/models/DonorIdsNotMatchingError.d.ts b/dist/models/DonorIdsNotMatchingError.d.ts index 5eaea43..e7b1a28 100644 --- a/dist/models/DonorIdsNotMatchingError.d.ts +++ b/dist/models/DonorIdsNotMatchingError.d.ts @@ -1,4 +1,4 @@ -export declare type DonorIdsNotMatchingError = { +export type DonorIdsNotMatchingError = { name: string; message: string; }; diff --git a/dist/models/DonorNotFoundError.d.ts b/dist/models/DonorNotFoundError.d.ts index 34ca85b..5b3873f 100644 --- a/dist/models/DonorNotFoundError.d.ts +++ b/dist/models/DonorNotFoundError.d.ts @@ -1,4 +1,4 @@ -export declare type DonorNotFoundError = { +export type DonorNotFoundError = { name: string; message: string; }; diff --git a/dist/models/DonorReceiptAddressNeededError.d.ts b/dist/models/DonorReceiptAddressNeededError.d.ts index bcd6e3e..1cc2205 100644 --- a/dist/models/DonorReceiptAddressNeededError.d.ts +++ b/dist/models/DonorReceiptAddressNeededError.d.ts @@ -1,4 +1,4 @@ -export declare type DonorReceiptAddressNeededError = { +export type DonorReceiptAddressNeededError = { name: string; message: string; }; diff --git a/dist/models/FixedDonation.d.ts b/dist/models/FixedDonation.d.ts index 72c351b..c391962 100644 --- a/dist/models/FixedDonation.d.ts +++ b/dist/models/FixedDonation.d.ts @@ -1,4 +1,4 @@ -export declare type FixedDonation = { +export type FixedDonation = { _amount: number; amount: number; id: number; diff --git a/dist/models/GroupContact.d.ts b/dist/models/GroupContact.d.ts index 4cd2bfc..7c39592 100644 --- a/dist/models/GroupContact.d.ts +++ b/dist/models/GroupContact.d.ts @@ -1,4 +1,4 @@ -export declare type GroupContact = { +export type GroupContact = { id: number; firstname: string; middlename?: string; diff --git a/dist/models/GroupContactIdsNotMatchingError.d.ts b/dist/models/GroupContactIdsNotMatchingError.d.ts index 83b171e..ff5640b 100644 --- a/dist/models/GroupContactIdsNotMatchingError.d.ts +++ b/dist/models/GroupContactIdsNotMatchingError.d.ts @@ -1,4 +1,4 @@ -export declare type GroupContactIdsNotMatchingError = { +export type GroupContactIdsNotMatchingError = { name: string; message: string; }; diff --git a/dist/models/GroupContactNotFoundError.d.ts b/dist/models/GroupContactNotFoundError.d.ts index 5eb718c..47623a8 100644 --- a/dist/models/GroupContactNotFoundError.d.ts +++ b/dist/models/GroupContactNotFoundError.d.ts @@ -1,4 +1,4 @@ -export declare type GroupContactNotFoundError = { +export type GroupContactNotFoundError = { name: string; message: string; }; diff --git a/dist/models/GroupNameNeededError.d.ts b/dist/models/GroupNameNeededError.d.ts index 6e6954c..0eb2d24 100644 --- a/dist/models/GroupNameNeededError.d.ts +++ b/dist/models/GroupNameNeededError.d.ts @@ -1,4 +1,4 @@ -export declare type GroupNameNeededError = { +export type GroupNameNeededError = { name: string; message: string; }; diff --git a/dist/models/HandleLogout.d.ts b/dist/models/HandleLogout.d.ts index e9cf7c8..6e58ccb 100644 --- a/dist/models/HandleLogout.d.ts +++ b/dist/models/HandleLogout.d.ts @@ -1,3 +1,3 @@ -export declare type HandleLogout = { +export type HandleLogout = { token?: string; }; diff --git a/dist/models/IllegalJWTError.d.ts b/dist/models/IllegalJWTError.d.ts index b2724ae..73a5c17 100644 --- a/dist/models/IllegalJWTError.d.ts +++ b/dist/models/IllegalJWTError.d.ts @@ -1,4 +1,4 @@ -export declare type IllegalJWTError = { +export type IllegalJWTError = { name: string; message: string; }; diff --git a/dist/models/ImportRunner.d.ts b/dist/models/ImportRunner.d.ts index 8bd356b..359fee4 100644 --- a/dist/models/ImportRunner.d.ts +++ b/dist/models/ImportRunner.d.ts @@ -1,4 +1,4 @@ -export declare type ImportRunner = { +export type ImportRunner = { firstname: string; middlename?: string; lastname: string; diff --git a/dist/models/InvalidCredentialsError.d.ts b/dist/models/InvalidCredentialsError.d.ts index c543825..3ba90f3 100644 --- a/dist/models/InvalidCredentialsError.d.ts +++ b/dist/models/InvalidCredentialsError.d.ts @@ -1,4 +1,4 @@ -export declare type InvalidCredentialsError = { +export type InvalidCredentialsError = { name: string; message: string; }; diff --git a/dist/models/JwtNotProvidedError.d.ts b/dist/models/JwtNotProvidedError.d.ts index 8f145f6..3d80e36 100644 --- a/dist/models/JwtNotProvidedError.d.ts +++ b/dist/models/JwtNotProvidedError.d.ts @@ -1,4 +1,4 @@ -export declare type JwtNotProvidedError = { +export type JwtNotProvidedError = { name: string; message: string; }; diff --git a/dist/models/JwtUser.d.ts b/dist/models/JwtUser.d.ts index cf3405b..34eabb3 100644 --- a/dist/models/JwtUser.d.ts +++ b/dist/models/JwtUser.d.ts @@ -1,4 +1,4 @@ -export declare type JwtUser = { +export type JwtUser = { id: number; uuid: string; email?: string; diff --git a/dist/models/Logout.d.ts b/dist/models/Logout.d.ts index ea7adfa..c20ed66 100644 --- a/dist/models/Logout.d.ts +++ b/dist/models/Logout.d.ts @@ -1,3 +1,3 @@ -export declare type Logout = { +export type Logout = { timestamp: string; }; diff --git a/dist/models/MailSendingError.d.ts b/dist/models/MailSendingError.d.ts index d53a8df..e1824d4 100644 --- a/dist/models/MailSendingError.d.ts +++ b/dist/models/MailSendingError.d.ts @@ -1,4 +1,4 @@ -export declare type MailSendingError = { +export type MailSendingError = { name: string; message: string; }; diff --git a/dist/models/NoPermissionError.d.ts b/dist/models/NoPermissionError.d.ts index f271a5d..4885f0b 100644 --- a/dist/models/NoPermissionError.d.ts +++ b/dist/models/NoPermissionError.d.ts @@ -1,4 +1,4 @@ -export declare type NoPermissionError = { +export type NoPermissionError = { name: string; message: string; }; diff --git a/dist/models/Participant.d.ts b/dist/models/Participant.d.ts index 1beca73..4d266a5 100644 --- a/dist/models/Participant.d.ts +++ b/dist/models/Participant.d.ts @@ -1,4 +1,4 @@ -export declare type Participant = { +export type Participant = { id: number; firstname: string; middlename?: string; diff --git a/dist/models/PasswordMustContainLowercaseLetterError.d.ts b/dist/models/PasswordMustContainLowercaseLetterError.d.ts index d691aaa..37051a8 100644 --- a/dist/models/PasswordMustContainLowercaseLetterError.d.ts +++ b/dist/models/PasswordMustContainLowercaseLetterError.d.ts @@ -1,4 +1,4 @@ -export declare type PasswordMustContainLowercaseLetterError = { +export type PasswordMustContainLowercaseLetterError = { name: string; message: string; }; diff --git a/dist/models/PasswordMustContainNumberError.d.ts b/dist/models/PasswordMustContainNumberError.d.ts index 2a145fe..cc5a60b 100644 --- a/dist/models/PasswordMustContainNumberError.d.ts +++ b/dist/models/PasswordMustContainNumberError.d.ts @@ -1,4 +1,4 @@ -export declare type PasswordMustContainNumberError = { +export type PasswordMustContainNumberError = { name: string; message: string; }; diff --git a/dist/models/PasswordMustContainUppercaseLetterError.d.ts b/dist/models/PasswordMustContainUppercaseLetterError.d.ts index a98bc54..2899e42 100644 --- a/dist/models/PasswordMustContainUppercaseLetterError.d.ts +++ b/dist/models/PasswordMustContainUppercaseLetterError.d.ts @@ -1,4 +1,4 @@ -export declare type PasswordMustContainUppercaseLetterError = { +export type PasswordMustContainUppercaseLetterError = { name: string; message: string; }; diff --git a/dist/models/PasswordNeededError.d.ts b/dist/models/PasswordNeededError.d.ts index 122a59d..cef0e95 100644 --- a/dist/models/PasswordNeededError.d.ts +++ b/dist/models/PasswordNeededError.d.ts @@ -1,4 +1,4 @@ -export declare type PasswordNeededError = { +export type PasswordNeededError = { name: string; message: string; }; diff --git a/dist/models/PasswordTooShortError.d.ts b/dist/models/PasswordTooShortError.d.ts index 12cc40e..c2ea90d 100644 --- a/dist/models/PasswordTooShortError.d.ts +++ b/dist/models/PasswordTooShortError.d.ts @@ -1,4 +1,4 @@ -export declare type PasswordTooShortError = { +export type PasswordTooShortError = { name: string; message: string; }; diff --git a/dist/models/Permission.d.ts b/dist/models/Permission.d.ts index 039297a..5ad4ddb 100644 --- a/dist/models/Permission.d.ts +++ b/dist/models/Permission.d.ts @@ -1,4 +1,4 @@ -export declare type Permission = { +export type Permission = { id: number; target: Permission.target; action: Permission.action; diff --git a/dist/models/PermissionIdsNotMatchingError.d.ts b/dist/models/PermissionIdsNotMatchingError.d.ts index 8f35772..0cbf6e9 100644 --- a/dist/models/PermissionIdsNotMatchingError.d.ts +++ b/dist/models/PermissionIdsNotMatchingError.d.ts @@ -1,4 +1,4 @@ -export declare type PermissionIdsNotMatchingError = { +export type PermissionIdsNotMatchingError = { name: string; message: string; }; diff --git a/dist/models/PermissionNeedsPrincipalError.d.ts b/dist/models/PermissionNeedsPrincipalError.d.ts index d5faa38..1c0e0e2 100644 --- a/dist/models/PermissionNeedsPrincipalError.d.ts +++ b/dist/models/PermissionNeedsPrincipalError.d.ts @@ -1,4 +1,4 @@ -export declare type PermissionNeedsPrincipalError = { +export type PermissionNeedsPrincipalError = { name: string; message: string; }; diff --git a/dist/models/PermissionNotFoundError.d.ts b/dist/models/PermissionNotFoundError.d.ts index 43509a0..04e8977 100644 --- a/dist/models/PermissionNotFoundError.d.ts +++ b/dist/models/PermissionNotFoundError.d.ts @@ -1,4 +1,4 @@ -export declare type PermissionNotFoundError = { +export type PermissionNotFoundError = { name: string; message: string; }; diff --git a/dist/models/Principal.d.ts b/dist/models/Principal.d.ts index 400a954..48946d1 100644 --- a/dist/models/Principal.d.ts +++ b/dist/models/Principal.d.ts @@ -1,3 +1,3 @@ -export declare type Principal = { +export type Principal = { id: number; }; diff --git a/dist/models/PrincipalNotFoundError.d.ts b/dist/models/PrincipalNotFoundError.d.ts index 7879adb..310e13c 100644 --- a/dist/models/PrincipalNotFoundError.d.ts +++ b/dist/models/PrincipalNotFoundError.d.ts @@ -1,4 +1,4 @@ -export declare type PrincipalNotFoundError = { +export type PrincipalNotFoundError = { name: string; message: string; }; diff --git a/dist/models/PrincipalWrongTypeError.d.ts b/dist/models/PrincipalWrongTypeError.d.ts index 72f0e6c..d7a9b78 100644 --- a/dist/models/PrincipalWrongTypeError.d.ts +++ b/dist/models/PrincipalWrongTypeError.d.ts @@ -1,4 +1,4 @@ -export declare type PrincipalWrongTypeError = { +export type PrincipalWrongTypeError = { name: string; message: string; }; diff --git a/dist/models/RefreshAuth.d.ts b/dist/models/RefreshAuth.d.ts index a53922a..2b9cf8f 100644 --- a/dist/models/RefreshAuth.d.ts +++ b/dist/models/RefreshAuth.d.ts @@ -1,3 +1,3 @@ -export declare type RefreshAuth = { +export type RefreshAuth = { token?: string; }; diff --git a/dist/models/RefreshTokenCountInvalidError.d.ts b/dist/models/RefreshTokenCountInvalidError.d.ts index bb15adf..a2b37b1 100644 --- a/dist/models/RefreshTokenCountInvalidError.d.ts +++ b/dist/models/RefreshTokenCountInvalidError.d.ts @@ -1,4 +1,4 @@ -export declare type RefreshTokenCountInvalidError = { +export type RefreshTokenCountInvalidError = { name: string; message: string; }; diff --git a/dist/models/ResetAlreadyRequestedError.d.ts b/dist/models/ResetAlreadyRequestedError.d.ts index 1487dc9..de92438 100644 --- a/dist/models/ResetAlreadyRequestedError.d.ts +++ b/dist/models/ResetAlreadyRequestedError.d.ts @@ -1,4 +1,4 @@ -export declare type ResetAlreadyRequestedError = { +export type ResetAlreadyRequestedError = { name: string; message: string; }; diff --git a/dist/models/ResetPassword.d.ts b/dist/models/ResetPassword.d.ts index 759fc99..be4b9c0 100644 --- a/dist/models/ResetPassword.d.ts +++ b/dist/models/ResetPassword.d.ts @@ -1,4 +1,4 @@ -export declare type ResetPassword = { +export type ResetPassword = { resetToken?: string; password: string; }; diff --git a/dist/models/ResponseAuth.d.ts b/dist/models/ResponseAuth.d.ts index cff1da0..c3764a7 100644 --- a/dist/models/ResponseAuth.d.ts +++ b/dist/models/ResponseAuth.d.ts @@ -1,4 +1,4 @@ -export declare type ResponseAuth = { +export type ResponseAuth = { access_token: string; refresh_token: string; access_token_expires_at: number; diff --git a/dist/models/ResponseDistanceDonation.d.ts b/dist/models/ResponseDistanceDonation.d.ts index 57de8d4..09374ec 100644 --- a/dist/models/ResponseDistanceDonation.d.ts +++ b/dist/models/ResponseDistanceDonation.d.ts @@ -1,4 +1,4 @@ -export declare type ResponseDistanceDonation = { +export type ResponseDistanceDonation = { runner: any; amountPerDistance: number; id: number; diff --git a/dist/models/ResponseDonation.d.ts b/dist/models/ResponseDonation.d.ts index ad544df..46efa3a 100644 --- a/dist/models/ResponseDonation.d.ts +++ b/dist/models/ResponseDonation.d.ts @@ -1,4 +1,4 @@ -export declare type ResponseDonation = { +export type ResponseDonation = { id: number; donor: string; amount: number; diff --git a/dist/models/ResponseDonor.d.ts b/dist/models/ResponseDonor.d.ts index b26f21c..7e43fbb 100644 --- a/dist/models/ResponseDonor.d.ts +++ b/dist/models/ResponseDonor.d.ts @@ -1,4 +1,4 @@ -export declare type ResponseDonor = { +export type ResponseDonor = { receiptNeeded: boolean; donationAmount: number; paidDonationAmount: number; diff --git a/dist/models/ResponseEmpty.d.ts b/dist/models/ResponseEmpty.d.ts index e80f56c..43fa4be 100644 --- a/dist/models/ResponseEmpty.d.ts +++ b/dist/models/ResponseEmpty.d.ts @@ -1,3 +1,3 @@ -export declare type ResponseEmpty = { +export type ResponseEmpty = { response: string; }; diff --git a/dist/models/ResponseGroupContact.d.ts b/dist/models/ResponseGroupContact.d.ts index d3ddaf6..e14fc50 100644 --- a/dist/models/ResponseGroupContact.d.ts +++ b/dist/models/ResponseGroupContact.d.ts @@ -1,4 +1,4 @@ -export declare type ResponseGroupContact = { +export type ResponseGroupContact = { id: number; firstname: string; middlename: string; diff --git a/dist/models/ResponseParticipant.d.ts b/dist/models/ResponseParticipant.d.ts index 33208b6..88af700 100644 --- a/dist/models/ResponseParticipant.d.ts +++ b/dist/models/ResponseParticipant.d.ts @@ -1,4 +1,4 @@ -export declare type ResponseParticipant = { +export type ResponseParticipant = { id: number; firstname: string; middlename: string; diff --git a/dist/models/ResponsePermission.d.ts b/dist/models/ResponsePermission.d.ts index e09dac7..92ee23f 100644 --- a/dist/models/ResponsePermission.d.ts +++ b/dist/models/ResponsePermission.d.ts @@ -1,4 +1,4 @@ -export declare type ResponsePermission = { +export type ResponsePermission = { id: number; principal: any; target: ResponsePermission.target; diff --git a/dist/models/ResponsePrincipal.d.ts b/dist/models/ResponsePrincipal.d.ts index 1d8f4f1..cf2368e 100644 --- a/dist/models/ResponsePrincipal.d.ts +++ b/dist/models/ResponsePrincipal.d.ts @@ -1,3 +1,3 @@ -export declare type ResponsePrincipal = { +export type ResponsePrincipal = { id: number; }; diff --git a/dist/models/ResponseRunner.d.ts b/dist/models/ResponseRunner.d.ts index 380d751..2f904d9 100644 --- a/dist/models/ResponseRunner.d.ts +++ b/dist/models/ResponseRunner.d.ts @@ -1,4 +1,4 @@ -export declare type ResponseRunner = { +export type ResponseRunner = { distance: number; group: any; id: number; diff --git a/dist/models/ResponseRunnerCard.d.ts b/dist/models/ResponseRunnerCard.d.ts index c53f208..7676363 100644 --- a/dist/models/ResponseRunnerCard.d.ts +++ b/dist/models/ResponseRunnerCard.d.ts @@ -1,4 +1,4 @@ -export declare type ResponseRunnerCard = { +export type ResponseRunnerCard = { id: number; runner: any; code: string; diff --git a/dist/models/ResponseRunnerGroup.d.ts b/dist/models/ResponseRunnerGroup.d.ts index afd57b2..301fcbe 100644 --- a/dist/models/ResponseRunnerGroup.d.ts +++ b/dist/models/ResponseRunnerGroup.d.ts @@ -1,4 +1,4 @@ -export declare type ResponseRunnerGroup = { +export type ResponseRunnerGroup = { id: number; name: string; contact?: any; diff --git a/dist/models/ResponseRunnerOrganization.d.ts b/dist/models/ResponseRunnerOrganization.d.ts index ed20d48..3062eeb 100644 --- a/dist/models/ResponseRunnerOrganization.d.ts +++ b/dist/models/ResponseRunnerOrganization.d.ts @@ -1,4 +1,4 @@ -export declare type ResponseRunnerOrganization = { +export type ResponseRunnerOrganization = { address?: any; teams: Array; registrationKey?: string; diff --git a/dist/models/ResponseRunnerTeam.d.ts b/dist/models/ResponseRunnerTeam.d.ts index 5c28c6e..e2db0fd 100644 --- a/dist/models/ResponseRunnerTeam.d.ts +++ b/dist/models/ResponseRunnerTeam.d.ts @@ -1,4 +1,4 @@ -export declare type ResponseRunnerTeam = { +export type ResponseRunnerTeam = { parentGroup: any; id: number; name: string; diff --git a/dist/models/ResponseScan.d.ts b/dist/models/ResponseScan.d.ts index 9e3a83a..3851b57 100644 --- a/dist/models/ResponseScan.d.ts +++ b/dist/models/ResponseScan.d.ts @@ -1,4 +1,4 @@ -export declare type ResponseScan = { +export type ResponseScan = { id: number; runner: string; valid: boolean; diff --git a/dist/models/ResponseScanStation.d.ts b/dist/models/ResponseScanStation.d.ts index 79d7231..e529f5c 100644 --- a/dist/models/ResponseScanStation.d.ts +++ b/dist/models/ResponseScanStation.d.ts @@ -1,4 +1,4 @@ -export declare type ResponseScanStation = { +export type ResponseScanStation = { id: number; description?: string; key?: string; diff --git a/dist/models/ResponseSelfServiceDonation.d.ts b/dist/models/ResponseSelfServiceDonation.d.ts index e794c9e..e1b56ea 100644 --- a/dist/models/ResponseSelfServiceDonation.d.ts +++ b/dist/models/ResponseSelfServiceDonation.d.ts @@ -1,4 +1,4 @@ -export declare type ResponseSelfServiceDonation = { +export type ResponseSelfServiceDonation = { donor: string; amount: number; amountPerDistance: number; diff --git a/dist/models/ResponseSelfServiceDonor.d.ts b/dist/models/ResponseSelfServiceDonor.d.ts index 4437161..abf0a9b 100644 --- a/dist/models/ResponseSelfServiceDonor.d.ts +++ b/dist/models/ResponseSelfServiceDonor.d.ts @@ -1,4 +1,4 @@ -export declare type ResponseSelfServiceDonor = { +export type ResponseSelfServiceDonor = { id: number; firstname: string; middlename: string; diff --git a/dist/models/ResponseSelfServiceOrganisation.d.ts b/dist/models/ResponseSelfServiceOrganisation.d.ts index 6ac188c..4e0eacc 100644 --- a/dist/models/ResponseSelfServiceOrganisation.d.ts +++ b/dist/models/ResponseSelfServiceOrganisation.d.ts @@ -1,4 +1,4 @@ -export declare type ResponseSelfServiceOrganisation = { +export type ResponseSelfServiceOrganisation = { name: string; teams: Array; }; diff --git a/dist/models/ResponseSelfServiceRunner.d.ts b/dist/models/ResponseSelfServiceRunner.d.ts index e241d3f..e2d93da 100644 --- a/dist/models/ResponseSelfServiceRunner.d.ts +++ b/dist/models/ResponseSelfServiceRunner.d.ts @@ -1,4 +1,4 @@ -export declare type ResponseSelfServiceRunner = { +export type ResponseSelfServiceRunner = { distance: number; donationAmount: number; group: string; diff --git a/dist/models/ResponseSelfServiceScan.d.ts b/dist/models/ResponseSelfServiceScan.d.ts index 3c645ec..3d32c08 100644 --- a/dist/models/ResponseSelfServiceScan.d.ts +++ b/dist/models/ResponseSelfServiceScan.d.ts @@ -1,4 +1,4 @@ -export declare type ResponseSelfServiceScan = { +export type ResponseSelfServiceScan = { id: number; valid: boolean; distance: number; diff --git a/dist/models/ResponseSelfServiceTeam.d.ts b/dist/models/ResponseSelfServiceTeam.d.ts index 2b69283..5d62460 100644 --- a/dist/models/ResponseSelfServiceTeam.d.ts +++ b/dist/models/ResponseSelfServiceTeam.d.ts @@ -1,4 +1,4 @@ -export declare type ResponseSelfServiceTeam = { +export type ResponseSelfServiceTeam = { name: string; id: number; }; diff --git a/dist/models/ResponseStats.d.ts b/dist/models/ResponseStats.d.ts index e81c7ac..7375b2a 100644 --- a/dist/models/ResponseStats.d.ts +++ b/dist/models/ResponseStats.d.ts @@ -1,4 +1,4 @@ -export declare type ResponseStats = { +export type ResponseStats = { total_runners: number; total_teams: number; total_orgs: number; diff --git a/dist/models/ResponseStatsClient.d.ts b/dist/models/ResponseStatsClient.d.ts index 75b1aff..579ea22 100644 --- a/dist/models/ResponseStatsClient.d.ts +++ b/dist/models/ResponseStatsClient.d.ts @@ -1,4 +1,4 @@ -export declare type ResponseStatsClient = { +export type ResponseStatsClient = { id: number; description?: string; key?: string; diff --git a/dist/models/ResponseStatsOrgnisation.d.ts b/dist/models/ResponseStatsOrgnisation.d.ts index 0e23a8a..cc55c94 100644 --- a/dist/models/ResponseStatsOrgnisation.d.ts +++ b/dist/models/ResponseStatsOrgnisation.d.ts @@ -1,4 +1,4 @@ -export declare type ResponseStatsOrgnisation = { +export type ResponseStatsOrgnisation = { id: number; name: string; distance: number; diff --git a/dist/models/ResponseStatsRunner.d.ts b/dist/models/ResponseStatsRunner.d.ts index fcd1476..6d60f8d 100644 --- a/dist/models/ResponseStatsRunner.d.ts +++ b/dist/models/ResponseStatsRunner.d.ts @@ -1,4 +1,4 @@ -export declare type ResponseStatsRunner = { +export type ResponseStatsRunner = { id: number; firstname: string; middlename: string; diff --git a/dist/models/ResponseStatsTeam.d.ts b/dist/models/ResponseStatsTeam.d.ts index 5e397da..5e86a20 100644 --- a/dist/models/ResponseStatsTeam.d.ts +++ b/dist/models/ResponseStatsTeam.d.ts @@ -1,4 +1,4 @@ -export declare type ResponseStatsTeam = { +export type ResponseStatsTeam = { id: number; name: string; distance: number; diff --git a/dist/models/ResponseTrack.d.ts b/dist/models/ResponseTrack.d.ts index 23abed6..b1977e7 100644 --- a/dist/models/ResponseTrack.d.ts +++ b/dist/models/ResponseTrack.d.ts @@ -1,4 +1,4 @@ -export declare type ResponseTrack = { +export type ResponseTrack = { id: number; name: string; distance: number; diff --git a/dist/models/ResponseTrackScan.d.ts b/dist/models/ResponseTrackScan.d.ts index 7f01c8d..281cfe3 100644 --- a/dist/models/ResponseTrackScan.d.ts +++ b/dist/models/ResponseTrackScan.d.ts @@ -1,4 +1,4 @@ -export declare type ResponseTrackScan = { +export type ResponseTrackScan = { track: string; card: string; station: string; diff --git a/dist/models/ResponseUser.d.ts b/dist/models/ResponseUser.d.ts index b807274..caa1eeb 100644 --- a/dist/models/ResponseUser.d.ts +++ b/dist/models/ResponseUser.d.ts @@ -1,4 +1,4 @@ -export declare type ResponseUser = { +export type ResponseUser = { firstname: string; middlename: string; lastname: string; diff --git a/dist/models/ResponseUserGroup.d.ts b/dist/models/ResponseUserGroup.d.ts index 4abbdc3..b16ecb1 100644 --- a/dist/models/ResponseUserGroup.d.ts +++ b/dist/models/ResponseUserGroup.d.ts @@ -1,4 +1,4 @@ -export declare type ResponseUserGroup = { +export type ResponseUserGroup = { name: string; description?: string; permissions?: Array; diff --git a/dist/models/ResponseUserGroupPermissions.d.ts b/dist/models/ResponseUserGroupPermissions.d.ts index 7990ddb..6bbf364 100644 --- a/dist/models/ResponseUserGroupPermissions.d.ts +++ b/dist/models/ResponseUserGroupPermissions.d.ts @@ -1,4 +1,4 @@ -export declare type ResponseUserGroupPermissions = { +export type ResponseUserGroupPermissions = { directlyGranted?: Array; inherited?: Array; }; diff --git a/dist/models/ResponseUserPermissions.d.ts b/dist/models/ResponseUserPermissions.d.ts index 4a5ba88..ff7af1b 100644 --- a/dist/models/ResponseUserPermissions.d.ts +++ b/dist/models/ResponseUserPermissions.d.ts @@ -1,4 +1,4 @@ -export declare type ResponseUserPermissions = { +export type ResponseUserPermissions = { directlyGranted?: Array; inherited?: Array; }; diff --git a/dist/models/Runner.d.ts b/dist/models/Runner.d.ts index 93d8131..df36862 100644 --- a/dist/models/Runner.d.ts +++ b/dist/models/Runner.d.ts @@ -1,4 +1,4 @@ -export declare type Runner = { +export type Runner = { group: string; resetRequestedTimestamp?: string; distance: number; diff --git a/dist/models/RunnerCard.d.ts b/dist/models/RunnerCard.d.ts index cdc181f..2ceba33 100644 --- a/dist/models/RunnerCard.d.ts +++ b/dist/models/RunnerCard.d.ts @@ -1,4 +1,4 @@ -export declare type RunnerCard = { +export type RunnerCard = { id: number; runner?: any; enabled: boolean; diff --git a/dist/models/RunnerCardHasScansError.d.ts b/dist/models/RunnerCardHasScansError.d.ts index e23b6ec..a5c89b4 100644 --- a/dist/models/RunnerCardHasScansError.d.ts +++ b/dist/models/RunnerCardHasScansError.d.ts @@ -1,4 +1,4 @@ -export declare type RunnerCardHasScansError = { +export type RunnerCardHasScansError = { name: string; message: string; }; diff --git a/dist/models/RunnerCardIdOutOfRangeError.d.ts b/dist/models/RunnerCardIdOutOfRangeError.d.ts index 43fe8ef..574057e 100644 --- a/dist/models/RunnerCardIdOutOfRangeError.d.ts +++ b/dist/models/RunnerCardIdOutOfRangeError.d.ts @@ -1,4 +1,4 @@ -export declare type RunnerCardIdOutOfRangeError = { +export type RunnerCardIdOutOfRangeError = { name: string; message: string; }; diff --git a/dist/models/RunnerCardIdsNotMatchingError.d.ts b/dist/models/RunnerCardIdsNotMatchingError.d.ts index a0eb712..83f9ccc 100644 --- a/dist/models/RunnerCardIdsNotMatchingError.d.ts +++ b/dist/models/RunnerCardIdsNotMatchingError.d.ts @@ -1,4 +1,4 @@ -export declare type RunnerCardIdsNotMatchingError = { +export type RunnerCardIdsNotMatchingError = { name: string; message: string; }; diff --git a/dist/models/RunnerCardNotFoundError.d.ts b/dist/models/RunnerCardNotFoundError.d.ts index eaec094..74e17ed 100644 --- a/dist/models/RunnerCardNotFoundError.d.ts +++ b/dist/models/RunnerCardNotFoundError.d.ts @@ -1,4 +1,4 @@ -export declare type RunnerCardNotFoundError = { +export type RunnerCardNotFoundError = { name: string; message: string; }; diff --git a/dist/models/RunnerEmailNeededError.d.ts b/dist/models/RunnerEmailNeededError.d.ts index 58215e0..a1a77e8 100644 --- a/dist/models/RunnerEmailNeededError.d.ts +++ b/dist/models/RunnerEmailNeededError.d.ts @@ -1,4 +1,4 @@ -export declare type RunnerEmailNeededError = { +export type RunnerEmailNeededError = { name: string; message: string; }; diff --git a/dist/models/RunnerGroup.d.ts b/dist/models/RunnerGroup.d.ts index 68a4740..dd59ff1 100644 --- a/dist/models/RunnerGroup.d.ts +++ b/dist/models/RunnerGroup.d.ts @@ -1,4 +1,4 @@ -export declare type RunnerGroup = { +export type RunnerGroup = { id: number; name: string; contact?: any; diff --git a/dist/models/RunnerGroupNeededError.d.ts b/dist/models/RunnerGroupNeededError.d.ts index 76d28a3..8b78d29 100644 --- a/dist/models/RunnerGroupNeededError.d.ts +++ b/dist/models/RunnerGroupNeededError.d.ts @@ -1,4 +1,4 @@ -export declare type RunnerGroupNeededError = { +export type RunnerGroupNeededError = { name: string; message: string; }; diff --git a/dist/models/RunnerGroupNotFoundError.d.ts b/dist/models/RunnerGroupNotFoundError.d.ts index 58522bf..e045f89 100644 --- a/dist/models/RunnerGroupNotFoundError.d.ts +++ b/dist/models/RunnerGroupNotFoundError.d.ts @@ -1,4 +1,4 @@ -export declare type RunnerGroupNotFoundError = { +export type RunnerGroupNotFoundError = { name: string; message: string; }; diff --git a/dist/models/RunnerHasDistanceDonationsError.d.ts b/dist/models/RunnerHasDistanceDonationsError.d.ts index 1a24364..5ea6c1b 100644 --- a/dist/models/RunnerHasDistanceDonationsError.d.ts +++ b/dist/models/RunnerHasDistanceDonationsError.d.ts @@ -1,4 +1,4 @@ -export declare type RunnerHasDistanceDonationsError = { +export type RunnerHasDistanceDonationsError = { name: string; message: string; }; diff --git a/dist/models/RunnerIdsNotMatchingError.d.ts b/dist/models/RunnerIdsNotMatchingError.d.ts index 406e8ef..8a3dbfa 100644 --- a/dist/models/RunnerIdsNotMatchingError.d.ts +++ b/dist/models/RunnerIdsNotMatchingError.d.ts @@ -1,4 +1,4 @@ -export declare type RunnerIdsNotMatchingError = { +export type RunnerIdsNotMatchingError = { name: string; message: string; }; diff --git a/dist/models/RunnerNotFoundError.d.ts b/dist/models/RunnerNotFoundError.d.ts index 864be4f..7d1ca6b 100644 --- a/dist/models/RunnerNotFoundError.d.ts +++ b/dist/models/RunnerNotFoundError.d.ts @@ -1,4 +1,4 @@ -export declare type RunnerNotFoundError = { +export type RunnerNotFoundError = { name: string; message: string; }; diff --git a/dist/models/RunnerOrganization.d.ts b/dist/models/RunnerOrganization.d.ts index e2ca4e1..ab55b4d 100644 --- a/dist/models/RunnerOrganization.d.ts +++ b/dist/models/RunnerOrganization.d.ts @@ -1,4 +1,4 @@ -export declare type RunnerOrganization = { +export type RunnerOrganization = { address?: any; key?: string; distance: number; diff --git a/dist/models/RunnerOrganizationHasRunnersError.d.ts b/dist/models/RunnerOrganizationHasRunnersError.d.ts index 6fe2c50..0f59ed5 100644 --- a/dist/models/RunnerOrganizationHasRunnersError.d.ts +++ b/dist/models/RunnerOrganizationHasRunnersError.d.ts @@ -1,4 +1,4 @@ -export declare type RunnerOrganizationHasRunnersError = { +export type RunnerOrganizationHasRunnersError = { name: string; message: string; }; diff --git a/dist/models/RunnerOrganizationHasTeamsError.d.ts b/dist/models/RunnerOrganizationHasTeamsError.d.ts index 3f50d44..96a9675 100644 --- a/dist/models/RunnerOrganizationHasTeamsError.d.ts +++ b/dist/models/RunnerOrganizationHasTeamsError.d.ts @@ -1,4 +1,4 @@ -export declare type RunnerOrganizationHasTeamsError = { +export type RunnerOrganizationHasTeamsError = { name: string; message: string; }; diff --git a/dist/models/RunnerOrganizationIdsNotMatchingError.d.ts b/dist/models/RunnerOrganizationIdsNotMatchingError.d.ts index e15b28b..f14e8af 100644 --- a/dist/models/RunnerOrganizationIdsNotMatchingError.d.ts +++ b/dist/models/RunnerOrganizationIdsNotMatchingError.d.ts @@ -1,4 +1,4 @@ -export declare type RunnerOrganizationIdsNotMatchingError = { +export type RunnerOrganizationIdsNotMatchingError = { name: string; message: string; }; diff --git a/dist/models/RunnerOrganizationNotFoundError.d.ts b/dist/models/RunnerOrganizationNotFoundError.d.ts index fdde62a..2ff6fe6 100644 --- a/dist/models/RunnerOrganizationNotFoundError.d.ts +++ b/dist/models/RunnerOrganizationNotFoundError.d.ts @@ -1,4 +1,4 @@ -export declare type RunnerOrganizationNotFoundError = { +export type RunnerOrganizationNotFoundError = { name: string; message: string; }; diff --git a/dist/models/RunnerOrganizationWrongTypeError.d.ts b/dist/models/RunnerOrganizationWrongTypeError.d.ts index d614dff..65bd8e3 100644 --- a/dist/models/RunnerOrganizationWrongTypeError.d.ts +++ b/dist/models/RunnerOrganizationWrongTypeError.d.ts @@ -1,4 +1,4 @@ -export declare type RunnerOrganizationWrongTypeError = { +export type RunnerOrganizationWrongTypeError = { name: string; message: string; }; diff --git a/dist/models/RunnerSelfserviceTimeoutError.d.ts b/dist/models/RunnerSelfserviceTimeoutError.d.ts index e7b1fc2..c6e9906 100644 --- a/dist/models/RunnerSelfserviceTimeoutError.d.ts +++ b/dist/models/RunnerSelfserviceTimeoutError.d.ts @@ -1,4 +1,4 @@ -export declare type RunnerSelfserviceTimeoutError = { +export type RunnerSelfserviceTimeoutError = { name: string; message: string; }; diff --git a/dist/models/RunnerTeam.d.ts b/dist/models/RunnerTeam.d.ts index 59656f8..6a68927 100644 --- a/dist/models/RunnerTeam.d.ts +++ b/dist/models/RunnerTeam.d.ts @@ -1,4 +1,4 @@ -export declare type RunnerTeam = { +export type RunnerTeam = { parentGroup: string; id: number; name: string; diff --git a/dist/models/RunnerTeamHasRunnersError.d.ts b/dist/models/RunnerTeamHasRunnersError.d.ts index d0fd4a8..b68c851 100644 --- a/dist/models/RunnerTeamHasRunnersError.d.ts +++ b/dist/models/RunnerTeamHasRunnersError.d.ts @@ -1,4 +1,4 @@ -export declare type RunnerTeamHasRunnersError = { +export type RunnerTeamHasRunnersError = { name: string; message: string; }; diff --git a/dist/models/RunnerTeamIdsNotMatchingError.d.ts b/dist/models/RunnerTeamIdsNotMatchingError.d.ts index 2c209b9..71c6b66 100644 --- a/dist/models/RunnerTeamIdsNotMatchingError.d.ts +++ b/dist/models/RunnerTeamIdsNotMatchingError.d.ts @@ -1,4 +1,4 @@ -export declare type RunnerTeamIdsNotMatchingError = { +export type RunnerTeamIdsNotMatchingError = { name: string; message: string; }; diff --git a/dist/models/RunnerTeamNeedsParentError.d.ts b/dist/models/RunnerTeamNeedsParentError.d.ts index 4feac81..47698c5 100644 --- a/dist/models/RunnerTeamNeedsParentError.d.ts +++ b/dist/models/RunnerTeamNeedsParentError.d.ts @@ -1,4 +1,4 @@ -export declare type RunnerTeamNeedsParentError = { +export type RunnerTeamNeedsParentError = { name: string; message: string; }; diff --git a/dist/models/RunnerTeamNotFoundError.d.ts b/dist/models/RunnerTeamNotFoundError.d.ts index 4844b93..bc194c0 100644 --- a/dist/models/RunnerTeamNotFoundError.d.ts +++ b/dist/models/RunnerTeamNotFoundError.d.ts @@ -1,4 +1,4 @@ -export declare type RunnerTeamNotFoundError = { +export type RunnerTeamNotFoundError = { name: string; message: string; }; diff --git a/dist/models/Scan.d.ts b/dist/models/Scan.d.ts index 755897f..94a1c26 100644 --- a/dist/models/Scan.d.ts +++ b/dist/models/Scan.d.ts @@ -1,4 +1,4 @@ -export declare type Scan = { +export type Scan = { id: number; runner: string; valid: boolean; diff --git a/dist/models/ScanIdsNotMatchingError.d.ts b/dist/models/ScanIdsNotMatchingError.d.ts index 508566f..9d68e5c 100644 --- a/dist/models/ScanIdsNotMatchingError.d.ts +++ b/dist/models/ScanIdsNotMatchingError.d.ts @@ -1,4 +1,4 @@ -export declare type ScanIdsNotMatchingError = { +export type ScanIdsNotMatchingError = { name: string; message: string; }; diff --git a/dist/models/ScanNotFoundError.d.ts b/dist/models/ScanNotFoundError.d.ts index a8960a0..71e75ec 100644 --- a/dist/models/ScanNotFoundError.d.ts +++ b/dist/models/ScanNotFoundError.d.ts @@ -1,4 +1,4 @@ -export declare type ScanNotFoundError = { +export type ScanNotFoundError = { name: string; message: string; }; diff --git a/dist/models/ScanStation.d.ts b/dist/models/ScanStation.d.ts index 387bd79..a5a9c9c 100644 --- a/dist/models/ScanStation.d.ts +++ b/dist/models/ScanStation.d.ts @@ -1,4 +1,4 @@ -export declare type ScanStation = { +export type ScanStation = { id: number; description?: string; track: string; diff --git a/dist/models/ScanStationHasScansError.d.ts b/dist/models/ScanStationHasScansError.d.ts index df8f646..f0d2671 100644 --- a/dist/models/ScanStationHasScansError.d.ts +++ b/dist/models/ScanStationHasScansError.d.ts @@ -1,4 +1,4 @@ -export declare type ScanStationHasScansError = { +export type ScanStationHasScansError = { name: string; message: string; }; diff --git a/dist/models/ScanStationIdsNotMatchingError.d.ts b/dist/models/ScanStationIdsNotMatchingError.d.ts index 3e584aa..a3b2e1a 100644 --- a/dist/models/ScanStationIdsNotMatchingError.d.ts +++ b/dist/models/ScanStationIdsNotMatchingError.d.ts @@ -1,4 +1,4 @@ -export declare type ScanStationIdsNotMatchingError = { +export type ScanStationIdsNotMatchingError = { name: string; message: string; }; diff --git a/dist/models/ScanStationNotFoundError.d.ts b/dist/models/ScanStationNotFoundError.d.ts index 800e32c..480b09b 100644 --- a/dist/models/ScanStationNotFoundError.d.ts +++ b/dist/models/ScanStationNotFoundError.d.ts @@ -1,4 +1,4 @@ -export declare type ScanStationNotFoundError = { +export type ScanStationNotFoundError = { name: string; message: string; }; diff --git a/dist/models/StatsClient.d.ts b/dist/models/StatsClient.d.ts index 6349ff5..66fb4df 100644 --- a/dist/models/StatsClient.d.ts +++ b/dist/models/StatsClient.d.ts @@ -1,4 +1,4 @@ -export declare type StatsClient = { +export type StatsClient = { id: number; description?: string; prefix: string; diff --git a/dist/models/StatsClientIdsNotMatchingError.d.ts b/dist/models/StatsClientIdsNotMatchingError.d.ts index 81f7417..47d477a 100644 --- a/dist/models/StatsClientIdsNotMatchingError.d.ts +++ b/dist/models/StatsClientIdsNotMatchingError.d.ts @@ -1,4 +1,4 @@ -export declare type StatsClientIdsNotMatchingError = { +export type StatsClientIdsNotMatchingError = { name: string; message: string; }; diff --git a/dist/models/StatsClientNotFoundError.d.ts b/dist/models/StatsClientNotFoundError.d.ts index 38504d8..82c0d05 100644 --- a/dist/models/StatsClientNotFoundError.d.ts +++ b/dist/models/StatsClientNotFoundError.d.ts @@ -1,4 +1,4 @@ -export declare type StatsClientNotFoundError = { +export type StatsClientNotFoundError = { name: string; message: string; }; diff --git a/dist/models/Track.d.ts b/dist/models/Track.d.ts index 6ac61fa..49aefda 100644 --- a/dist/models/Track.d.ts +++ b/dist/models/Track.d.ts @@ -1,4 +1,4 @@ -export declare type Track = { +export type Track = { id: number; name: string; distance: number; diff --git a/dist/models/TrackHasScanStationsError.d.ts b/dist/models/TrackHasScanStationsError.d.ts index 64abe5a..5291e8d 100644 --- a/dist/models/TrackHasScanStationsError.d.ts +++ b/dist/models/TrackHasScanStationsError.d.ts @@ -1,4 +1,4 @@ -export declare type TrackHasScanStationsError = { +export type TrackHasScanStationsError = { name: string; message: string; }; diff --git a/dist/models/TrackIdsNotMatchingError.d.ts b/dist/models/TrackIdsNotMatchingError.d.ts index 6d0a4f5..5b882d7 100644 --- a/dist/models/TrackIdsNotMatchingError.d.ts +++ b/dist/models/TrackIdsNotMatchingError.d.ts @@ -1,4 +1,4 @@ -export declare type TrackIdsNotMatchingError = { +export type TrackIdsNotMatchingError = { name: string; message: string; }; diff --git a/dist/models/TrackLapTimeCantBeNegativeError.d.ts b/dist/models/TrackLapTimeCantBeNegativeError.d.ts index 891bced..9fb130c 100644 --- a/dist/models/TrackLapTimeCantBeNegativeError.d.ts +++ b/dist/models/TrackLapTimeCantBeNegativeError.d.ts @@ -1,4 +1,4 @@ -export declare type TrackLapTimeCantBeNegativeError = { +export type TrackLapTimeCantBeNegativeError = { name: string; message: string; }; diff --git a/dist/models/TrackNotFoundError.d.ts b/dist/models/TrackNotFoundError.d.ts index 2475604..401a770 100644 --- a/dist/models/TrackNotFoundError.d.ts +++ b/dist/models/TrackNotFoundError.d.ts @@ -1,4 +1,4 @@ -export declare type TrackNotFoundError = { +export type TrackNotFoundError = { name: string; message: string; }; diff --git a/dist/models/TrackScan.d.ts b/dist/models/TrackScan.d.ts index 46e3893..602cd13 100644 --- a/dist/models/TrackScan.d.ts +++ b/dist/models/TrackScan.d.ts @@ -1,4 +1,4 @@ -export declare type TrackScan = { +export type TrackScan = { track: string; card: string; station: string; diff --git a/dist/models/UpdateDistanceDonation.d.ts b/dist/models/UpdateDistanceDonation.d.ts index efffcc7..6aa5604 100644 --- a/dist/models/UpdateDistanceDonation.d.ts +++ b/dist/models/UpdateDistanceDonation.d.ts @@ -1,4 +1,4 @@ -export declare type UpdateDistanceDonation = { +export type UpdateDistanceDonation = { runner: number; amountPerDistance: number; id: number; diff --git a/dist/models/UpdateDonation.d.ts b/dist/models/UpdateDonation.d.ts index 930d79f..57eec0b 100644 --- a/dist/models/UpdateDonation.d.ts +++ b/dist/models/UpdateDonation.d.ts @@ -1,4 +1,4 @@ -export declare type UpdateDonation = { +export type UpdateDonation = { id: number; donor: number; paidAmount?: number; diff --git a/dist/models/UpdateDonor.d.ts b/dist/models/UpdateDonor.d.ts index f35954f..ae9a914 100644 --- a/dist/models/UpdateDonor.d.ts +++ b/dist/models/UpdateDonor.d.ts @@ -1,4 +1,4 @@ -export declare type UpdateDonor = { +export type UpdateDonor = { id: number; receiptNeeded?: boolean; firstname: string; diff --git a/dist/models/UpdateFixedDonation.d.ts b/dist/models/UpdateFixedDonation.d.ts index 1615ef0..c281d09 100644 --- a/dist/models/UpdateFixedDonation.d.ts +++ b/dist/models/UpdateFixedDonation.d.ts @@ -1,4 +1,4 @@ -export declare type UpdateFixedDonation = { +export type UpdateFixedDonation = { amount: number; id: number; donor: number; diff --git a/dist/models/UpdateGroupContact.d.ts b/dist/models/UpdateGroupContact.d.ts index bb10980..4a42fd0 100644 --- a/dist/models/UpdateGroupContact.d.ts +++ b/dist/models/UpdateGroupContact.d.ts @@ -1,4 +1,4 @@ -export declare type UpdateGroupContact = { +export type UpdateGroupContact = { id: number; firstname: string; middlename?: string; diff --git a/dist/models/UpdatePermission.d.ts b/dist/models/UpdatePermission.d.ts index ab0b0f7..048ec9c 100644 --- a/dist/models/UpdatePermission.d.ts +++ b/dist/models/UpdatePermission.d.ts @@ -1,4 +1,4 @@ -export declare type UpdatePermission = { +export type UpdatePermission = { id: number; principal: number; target: string; diff --git a/dist/models/UpdateRunner.d.ts b/dist/models/UpdateRunner.d.ts index f76ba46..165abdb 100644 --- a/dist/models/UpdateRunner.d.ts +++ b/dist/models/UpdateRunner.d.ts @@ -1,4 +1,4 @@ -export declare type UpdateRunner = { +export type UpdateRunner = { id: number; group: number; firstname: string; diff --git a/dist/models/UpdateRunnerCard.d.ts b/dist/models/UpdateRunnerCard.d.ts index fc2c917..73831f7 100644 --- a/dist/models/UpdateRunnerCard.d.ts +++ b/dist/models/UpdateRunnerCard.d.ts @@ -1,4 +1,4 @@ -export declare type UpdateRunnerCard = { +export type UpdateRunnerCard = { id: number; runner?: number; enabled: boolean; diff --git a/dist/models/UpdateRunnerOrganization.d.ts b/dist/models/UpdateRunnerOrganization.d.ts index 8f2714f..9a804e3 100644 --- a/dist/models/UpdateRunnerOrganization.d.ts +++ b/dist/models/UpdateRunnerOrganization.d.ts @@ -1,4 +1,4 @@ -export declare type UpdateRunnerOrganization = { +export type UpdateRunnerOrganization = { id: number; address?: any; registrationEnabled?: boolean; diff --git a/dist/models/UpdateRunnerTeam.d.ts b/dist/models/UpdateRunnerTeam.d.ts index 2861703..8359fab 100644 --- a/dist/models/UpdateRunnerTeam.d.ts +++ b/dist/models/UpdateRunnerTeam.d.ts @@ -1,4 +1,4 @@ -export declare type UpdateRunnerTeam = { +export type UpdateRunnerTeam = { id: number; parentGroup: number; name: string; diff --git a/dist/models/UpdateScan.d.ts b/dist/models/UpdateScan.d.ts index 6cda4f5..c490698 100644 --- a/dist/models/UpdateScan.d.ts +++ b/dist/models/UpdateScan.d.ts @@ -1,4 +1,4 @@ -export declare type UpdateScan = { +export type UpdateScan = { id: number; runner: number; valid?: boolean; diff --git a/dist/models/UpdateScanStation.d.ts b/dist/models/UpdateScanStation.d.ts index eea7974..45114c5 100644 --- a/dist/models/UpdateScanStation.d.ts +++ b/dist/models/UpdateScanStation.d.ts @@ -1,4 +1,4 @@ -export declare type UpdateScanStation = { +export type UpdateScanStation = { id: number; description?: string; enabled?: boolean; diff --git a/dist/models/UpdateTrack.d.ts b/dist/models/UpdateTrack.d.ts index f724aea..042fbf6 100644 --- a/dist/models/UpdateTrack.d.ts +++ b/dist/models/UpdateTrack.d.ts @@ -1,4 +1,4 @@ -export declare type UpdateTrack = { +export type UpdateTrack = { id: number; name: string; distance: number; diff --git a/dist/models/UpdateTrackScan.d.ts b/dist/models/UpdateTrackScan.d.ts index ce22edc..eea81bf 100644 --- a/dist/models/UpdateTrackScan.d.ts +++ b/dist/models/UpdateTrackScan.d.ts @@ -1,4 +1,4 @@ -export declare type UpdateTrackScan = { +export type UpdateTrackScan = { id: number; runner: number; valid?: boolean; diff --git a/dist/models/UpdateUser.d.ts b/dist/models/UpdateUser.d.ts index 3a4dee6..8448a69 100644 --- a/dist/models/UpdateUser.d.ts +++ b/dist/models/UpdateUser.d.ts @@ -1,4 +1,4 @@ -export declare type UpdateUser = { +export type UpdateUser = { id: number; firstname: string; middlename?: string; diff --git a/dist/models/UpdateUserGroup.d.ts b/dist/models/UpdateUserGroup.d.ts index ae2179c..0dd41af 100644 --- a/dist/models/UpdateUserGroup.d.ts +++ b/dist/models/UpdateUserGroup.d.ts @@ -1,4 +1,4 @@ -export declare type UpdateUserGroup = { +export type UpdateUserGroup = { id: number; name: string; description?: string; diff --git a/dist/models/User.d.ts b/dist/models/User.d.ts index dbc3f6b..74772f3 100644 --- a/dist/models/User.d.ts +++ b/dist/models/User.d.ts @@ -1,4 +1,4 @@ -export declare type User = { +export type User = { uuid: string; email: string; phone?: string; diff --git a/dist/models/UserAction.d.ts b/dist/models/UserAction.d.ts index 6af2012..0d68cef 100644 --- a/dist/models/UserAction.d.ts +++ b/dist/models/UserAction.d.ts @@ -1,4 +1,4 @@ -export declare type UserAction = { +export type UserAction = { id: number; target: string; action: UserAction.action; diff --git a/dist/models/UserDeletionNotConfirmedError.d.ts b/dist/models/UserDeletionNotConfirmedError.d.ts index d0e8fa5..4de933f 100644 --- a/dist/models/UserDeletionNotConfirmedError.d.ts +++ b/dist/models/UserDeletionNotConfirmedError.d.ts @@ -1,4 +1,4 @@ -export declare type UserDeletionNotConfirmedError = { +export type UserDeletionNotConfirmedError = { name: string; message: string; }; diff --git a/dist/models/UserDisabledError.d.ts b/dist/models/UserDisabledError.d.ts index d3c8467..b0f1c1f 100644 --- a/dist/models/UserDisabledError.d.ts +++ b/dist/models/UserDisabledError.d.ts @@ -1,4 +1,4 @@ -export declare type UserDisabledError = { +export type UserDisabledError = { name: string; message: string; }; diff --git a/dist/models/UserEmailNeededError.d.ts b/dist/models/UserEmailNeededError.d.ts index cc1859f..d035613 100644 --- a/dist/models/UserEmailNeededError.d.ts +++ b/dist/models/UserEmailNeededError.d.ts @@ -1,4 +1,4 @@ -export declare type UserEmailNeededError = { +export type UserEmailNeededError = { name: string; message: string; }; diff --git a/dist/models/UserGroup.d.ts b/dist/models/UserGroup.d.ts index d4a5d60..ae5e5ce 100644 --- a/dist/models/UserGroup.d.ts +++ b/dist/models/UserGroup.d.ts @@ -1,4 +1,4 @@ -export declare type UserGroup = { +export type UserGroup = { name: string; description?: string; id: number; diff --git a/dist/models/UserGroupIdsNotMatchingError.d.ts b/dist/models/UserGroupIdsNotMatchingError.d.ts index 09101d8..5c34a06 100644 --- a/dist/models/UserGroupIdsNotMatchingError.d.ts +++ b/dist/models/UserGroupIdsNotMatchingError.d.ts @@ -1,4 +1,4 @@ -export declare type UserGroupIdsNotMatchingError = { +export type UserGroupIdsNotMatchingError = { name: string; message: string; }; diff --git a/dist/models/UserGroupNotFoundError.d.ts b/dist/models/UserGroupNotFoundError.d.ts index 72ebe69..4a3f814 100644 --- a/dist/models/UserGroupNotFoundError.d.ts +++ b/dist/models/UserGroupNotFoundError.d.ts @@ -1,4 +1,4 @@ -export declare type UserGroupNotFoundError = { +export type UserGroupNotFoundError = { name: string; message: string; }; diff --git a/dist/models/UserIdsNotMatchingError.d.ts b/dist/models/UserIdsNotMatchingError.d.ts index 99b8e68..a5e1a28 100644 --- a/dist/models/UserIdsNotMatchingError.d.ts +++ b/dist/models/UserIdsNotMatchingError.d.ts @@ -1,4 +1,4 @@ -export declare type UserIdsNotMatchingError = { +export type UserIdsNotMatchingError = { name: string; message: string; }; diff --git a/dist/models/UserNonexistantOrRefreshtokenInvalidError.d.ts b/dist/models/UserNonexistantOrRefreshtokenInvalidError.d.ts index 119858a..204309a 100644 --- a/dist/models/UserNonexistantOrRefreshtokenInvalidError.d.ts +++ b/dist/models/UserNonexistantOrRefreshtokenInvalidError.d.ts @@ -1,4 +1,4 @@ -export declare type UserNonexistantOrRefreshtokenInvalidError = { +export type UserNonexistantOrRefreshtokenInvalidError = { name: string; message: string; }; diff --git a/dist/models/UserNotFoundError.d.ts b/dist/models/UserNotFoundError.d.ts index ed418ef..fd86e74 100644 --- a/dist/models/UserNotFoundError.d.ts +++ b/dist/models/UserNotFoundError.d.ts @@ -1,4 +1,4 @@ -export declare type UserNotFoundError = { +export type UserNotFoundError = { name: string; message: string; }; diff --git a/dist/models/UserNotFoundOrRefreshTokenCountInvalidError.d.ts b/dist/models/UserNotFoundOrRefreshTokenCountInvalidError.d.ts index 6afa694..0d551a2 100644 --- a/dist/models/UserNotFoundOrRefreshTokenCountInvalidError.d.ts +++ b/dist/models/UserNotFoundOrRefreshTokenCountInvalidError.d.ts @@ -1,4 +1,4 @@ -export declare type UserNotFoundOrRefreshTokenCountInvalidError = { +export type UserNotFoundOrRefreshTokenCountInvalidError = { name: string; message: string; }; diff --git a/dist/models/UsernameContainsIllegalCharacterError.d.ts b/dist/models/UsernameContainsIllegalCharacterError.d.ts index c707972..f2cfe13 100644 --- a/dist/models/UsernameContainsIllegalCharacterError.d.ts +++ b/dist/models/UsernameContainsIllegalCharacterError.d.ts @@ -1,4 +1,4 @@ -export declare type UsernameContainsIllegalCharacterError = { +export type UsernameContainsIllegalCharacterError = { name: string; message: string; }; diff --git a/dist/models/UsernameOrEmailNeededError.d.ts b/dist/models/UsernameOrEmailNeededError.d.ts index 3cf293f..5f7070c 100644 --- a/dist/models/UsernameOrEmailNeededError.d.ts +++ b/dist/models/UsernameOrEmailNeededError.d.ts @@ -1,4 +1,4 @@ -export declare type UsernameOrEmailNeededError = { +export type UsernameOrEmailNeededError = { name: string; message: string; }; diff --git a/dist/services/AuthService.d.ts b/dist/services/AuthService.d.ts index 6420cd3..a78b085 100644 --- a/dist/services/AuthService.d.ts +++ b/dist/services/AuthService.d.ts @@ -20,25 +20,25 @@ export declare class AuthService { * * access token (use it as a bearer token) * * refresh token (will also be sent as a cookie) * @param requestBody CreateAuth - * @returns any + * @result any * @throws ApiError */ - static authControllerLogin(requestBody?: CreateAuth): Promise<(ResponseAuth | InvalidCredentialsError | UserNotFoundError | UsernameOrEmailNeededError | PasswordNeededError)>; + static authControllerLogin(requestBody?: CreateAuth): Promise<(ResponseAuth | InvalidCredentialsError | UserNotFoundError | UsernameOrEmailNeededError | PasswordNeededError | InvalidCredentialsError)>; /** * Logout * Logout using your refresh token.
This instantly invalidates all your access and refresh tokens. * @param requestBody HandleLogout - * @returns any + * @result any * @throws ApiError */ - static authControllerLogout(requestBody?: HandleLogout): Promise<(Logout | InvalidCredentialsError | UserNotFoundError | UsernameOrEmailNeededError | PasswordNeededError)>; + static authControllerLogout(requestBody?: HandleLogout): Promise<(Logout | InvalidCredentialsError | UserNotFoundError | UsernameOrEmailNeededError | PasswordNeededError | InvalidCredentialsError)>; /** * Refresh * Refresh your access and refresh tokens using a valid refresh token.
You will receive: * * access token (use it as a bearer token) * * refresh token (will also be sent as a cookie) * @param requestBody RefreshAuth - * @returns any + * @result any * @throws ApiError */ static authControllerRefresh(requestBody?: RefreshAuth): Promise<(ResponseAuth | JwtNotProvidedError | IllegalJWTError | UserNotFoundError | RefreshTokenCountInvalidError)>; @@ -47,7 +47,7 @@ export declare class AuthService { * Request a password reset token.
This will provide you with a reset token that you can use by posting to /api/auth/reset/{token}. * @param locale * @param requestBody CreateResetToken - * @returns ResponseEmpty + * @result ResponseEmpty * @throws ApiError */ static authControllerGetResetToken(locale?: string, requestBody?: CreateResetToken): Promise; @@ -56,7 +56,7 @@ export declare class AuthService { * Reset a user's utilising a valid password reset token.
This will set the user's password to the one you provided in the body.
To get a reset token post to /api/auth/reset with your username. * @param token * @param requestBody ResetPassword - * @returns any + * @result any * @throws ApiError */ static authControllerResetPassword(token: string, requestBody?: ResetPassword): Promise<(ResponseAuth | UserNotFoundError | UsernameOrEmailNeededError)>; diff --git a/dist/services/AuthService.js b/dist/services/AuthService.js index c142a18..33981ff 100644 --- a/dist/services/AuthService.js +++ b/dist/services/AuthService.js @@ -9,11 +9,11 @@ class AuthService { * * access token (use it as a bearer token) * * refresh token (will also be sent as a cookie) * @param requestBody CreateAuth - * @returns any + * @result any * @throws ApiError */ static async authControllerLogin(requestBody) { - const result = await request_1.request({ + const result = await (0, request_1.request)({ method: 'POST', path: `/api/auth/login`, body: requestBody, @@ -24,11 +24,11 @@ class AuthService { * Logout * Logout using your refresh token.
This instantly invalidates all your access and refresh tokens. * @param requestBody HandleLogout - * @returns any + * @result any * @throws ApiError */ static async authControllerLogout(requestBody) { - const result = await request_1.request({ + const result = await (0, request_1.request)({ method: 'POST', path: `/api/auth/logout`, body: requestBody, @@ -41,11 +41,11 @@ class AuthService { * * access token (use it as a bearer token) * * refresh token (will also be sent as a cookie) * @param requestBody RefreshAuth - * @returns any + * @result any * @throws ApiError */ static async authControllerRefresh(requestBody) { - const result = await request_1.request({ + const result = await (0, request_1.request)({ method: 'POST', path: `/api/auth/refresh`, body: requestBody, @@ -57,11 +57,11 @@ class AuthService { * Request a password reset token.
This will provide you with a reset token that you can use by posting to /api/auth/reset/{token}. * @param locale * @param requestBody CreateResetToken - * @returns ResponseEmpty + * @result ResponseEmpty * @throws ApiError */ static async authControllerGetResetToken(locale, requestBody) { - const result = await request_1.request({ + const result = await (0, request_1.request)({ method: 'POST', path: `/api/auth/reset`, query: { @@ -76,11 +76,11 @@ class AuthService { * Reset a user's utilising a valid password reset token.
This will set the user's password to the one you provided in the body.
To get a reset token post to /api/auth/reset with your username. * @param token * @param requestBody ResetPassword - * @returns any + * @result any * @throws ApiError */ static async authControllerResetPassword(token, requestBody) { - const result = await request_1.request({ + const result = await (0, request_1.request)({ method: 'POST', path: `/api/auth/reset/${token}`, body: requestBody, diff --git a/dist/services/DonationService.d.ts b/dist/services/DonationService.d.ts index f0a5bab..fc2c5a2 100644 --- a/dist/services/DonationService.d.ts +++ b/dist/services/DonationService.d.ts @@ -9,7 +9,7 @@ export declare class DonationService { /** * Get all * Lists all donations (fixed or distance based) from all donors.
This includes the donations's runner's distance ran(if distance donation). - * @returns any + * @result any * @throws ApiError */ static donationControllerGetAll(): Promise<(Array | Array)>; @@ -17,7 +17,7 @@ export declare class DonationService { * Get one * Lists all information about the donation whose id got provided. This includes the donation's runner's distance ran (if distance donation). * @param id - * @returns any + * @result any * @throws ApiError */ static donationControllerGetOne(id: number): Promise<(ResponseDonation | ResponseDistanceDonation)>; @@ -26,8 +26,8 @@ export declare class DonationService { * Delete the donation whose id you provided.
If no donation with this id exists it will just return 204(no content). * @param id * @param force - * @returns any - * @returns ResponseEmpty + * @result any + * @result ResponseEmpty * @throws ApiError */ static donationControllerRemove(id: number, force?: boolean): Promise<(ResponseDonation | ResponseDistanceDonation) | ResponseEmpty>; @@ -35,7 +35,7 @@ export declare class DonationService { * Post fixed * Create a fixed donation (not distance donation - use /donations/distance instead).
Please rmemember to provide the donation's donors's id and amount. * @param requestBody CreateFixedDonation - * @returns ResponseDonation + * @result ResponseDonation * @throws ApiError */ static donationControllerPostFixed(requestBody?: CreateFixedDonation): Promise; @@ -43,7 +43,7 @@ export declare class DonationService { * Post distance * Create a distance donation (not fixed donation - use /donations/fixed instead).
Please rmemember to provide the donation's donors's and runners ids and amount per distance (kilometer). * @param requestBody CreateDistanceDonation - * @returns ResponseDistanceDonation + * @result ResponseDistanceDonation * @throws ApiError */ static donationControllerPostDistance(requestBody?: CreateDistanceDonation): Promise; @@ -52,7 +52,7 @@ export declare class DonationService { * Update the fixed donation (not distance donation - use /donations/distance instead) whose id you provided.
Please remember that ids can't be changed and amounts must be positive. * @param id * @param requestBody UpdateFixedDonation - * @returns ResponseDonation + * @result ResponseDonation * @throws ApiError */ static donationControllerPutFixed(id: number, requestBody?: UpdateFixedDonation): Promise; @@ -61,7 +61,7 @@ export declare class DonationService { * Update the distance donation (not fixed donation - use /donations/fixed instead) whose id you provided.
Please remember that ids can't be changed and amountPerDistance must be positive. * @param id * @param requestBody UpdateDistanceDonation - * @returns ResponseDonation + * @result ResponseDonation * @throws ApiError */ static donationControllerPutDistance(id: number, requestBody?: UpdateDistanceDonation): Promise; diff --git a/dist/services/DonationService.js b/dist/services/DonationService.js index 6fc8564..f36bde5 100644 --- a/dist/services/DonationService.js +++ b/dist/services/DonationService.js @@ -6,11 +6,11 @@ class DonationService { /** * Get all * Lists all donations (fixed or distance based) from all donors.
This includes the donations's runner's distance ran(if distance donation). - * @returns any + * @result any * @throws ApiError */ static async donationControllerGetAll() { - const result = await request_1.request({ + const result = await (0, request_1.request)({ method: 'GET', path: `/api/donations`, }); @@ -20,11 +20,11 @@ class DonationService { * Get one * Lists all information about the donation whose id got provided. This includes the donation's runner's distance ran (if distance donation). * @param id - * @returns any + * @result any * @throws ApiError */ static async donationControllerGetOne(id) { - const result = await request_1.request({ + const result = await (0, request_1.request)({ method: 'GET', path: `/api/donations/${id}`, }); @@ -35,12 +35,12 @@ class DonationService { * Delete the donation whose id you provided.
If no donation with this id exists it will just return 204(no content). * @param id * @param force - * @returns any - * @returns ResponseEmpty + * @result any + * @result ResponseEmpty * @throws ApiError */ static async donationControllerRemove(id, force) { - const result = await request_1.request({ + const result = await (0, request_1.request)({ method: 'DELETE', path: `/api/donations/${id}`, query: { @@ -53,11 +53,11 @@ class DonationService { * Post fixed * Create a fixed donation (not distance donation - use /donations/distance instead).
Please rmemember to provide the donation's donors's id and amount. * @param requestBody CreateFixedDonation - * @returns ResponseDonation + * @result ResponseDonation * @throws ApiError */ static async donationControllerPostFixed(requestBody) { - const result = await request_1.request({ + const result = await (0, request_1.request)({ method: 'POST', path: `/api/donations/fixed`, body: requestBody, @@ -68,11 +68,11 @@ class DonationService { * Post distance * Create a distance donation (not fixed donation - use /donations/fixed instead).
Please rmemember to provide the donation's donors's and runners ids and amount per distance (kilometer). * @param requestBody CreateDistanceDonation - * @returns ResponseDistanceDonation + * @result ResponseDistanceDonation * @throws ApiError */ static async donationControllerPostDistance(requestBody) { - const result = await request_1.request({ + const result = await (0, request_1.request)({ method: 'POST', path: `/api/donations/distance`, body: requestBody, @@ -84,11 +84,11 @@ class DonationService { * Update the fixed donation (not distance donation - use /donations/distance instead) whose id you provided.
Please remember that ids can't be changed and amounts must be positive. * @param id * @param requestBody UpdateFixedDonation - * @returns ResponseDonation + * @result ResponseDonation * @throws ApiError */ static async donationControllerPutFixed(id, requestBody) { - const result = await request_1.request({ + const result = await (0, request_1.request)({ method: 'PUT', path: `/api/donations/fixed/${id}`, body: requestBody, @@ -100,11 +100,11 @@ class DonationService { * Update the distance donation (not fixed donation - use /donations/fixed instead) whose id you provided.
Please remember that ids can't be changed and amountPerDistance must be positive. * @param id * @param requestBody UpdateDistanceDonation - * @returns ResponseDonation + * @result ResponseDonation * @throws ApiError */ static async donationControllerPutDistance(id, requestBody) { - const result = await request_1.request({ + const result = await (0, request_1.request)({ method: 'PUT', path: `/api/donations/distance/${id}`, body: requestBody, diff --git a/dist/services/DonorService.d.ts b/dist/services/DonorService.d.ts index 3a521a2..247a506 100644 --- a/dist/services/DonorService.d.ts +++ b/dist/services/DonorService.d.ts @@ -6,7 +6,7 @@ export declare class DonorService { /** * Get all * Lists all donor.
This includes the donor's current donation amount. - * @returns ResponseDonor + * @result ResponseDonor * @throws ApiError */ static donorControllerGetAll(): Promise>; @@ -14,7 +14,7 @@ export declare class DonorService { * Post * Create a new donor. * @param requestBody CreateDonor - * @returns ResponseDonor + * @result ResponseDonor * @throws ApiError */ static donorControllerPost(requestBody?: CreateDonor): Promise; @@ -22,7 +22,7 @@ export declare class DonorService { * Get one * Lists all information about the donor whose id got provided.
This includes the donor's current donation amount. * @param id - * @returns ResponseDonor + * @result ResponseDonor * @throws ApiError */ static donorControllerGetOne(id: number): Promise; @@ -31,7 +31,7 @@ export declare class DonorService { * Update the donor whose id you provided.
Please remember that ids can't be changed. * @param id * @param requestBody UpdateDonor - * @returns ResponseDonor + * @result ResponseDonor * @throws ApiError */ static donorControllerPut(id: number, requestBody?: UpdateDonor): Promise; @@ -40,8 +40,8 @@ export declare class DonorService { * Delete the donor whose id you provided.
If no donor with this id exists it will just return 204(no content).
If the donor still has donations associated this will fail, please provide the query param ?force=true to delete the donor with all associated donations. * @param id * @param force - * @returns ResponseDonor - * @returns ResponseEmpty + * @result ResponseDonor + * @result ResponseEmpty * @throws ApiError */ static donorControllerRemove(id: number, force?: boolean): Promise; diff --git a/dist/services/DonorService.js b/dist/services/DonorService.js index e5e4d47..f78f67f 100644 --- a/dist/services/DonorService.js +++ b/dist/services/DonorService.js @@ -6,11 +6,11 @@ class DonorService { /** * Get all * Lists all donor.
This includes the donor's current donation amount. - * @returns ResponseDonor + * @result ResponseDonor * @throws ApiError */ static async donorControllerGetAll() { - const result = await request_1.request({ + const result = await (0, request_1.request)({ method: 'GET', path: `/api/donors`, }); @@ -20,11 +20,11 @@ class DonorService { * Post * Create a new donor. * @param requestBody CreateDonor - * @returns ResponseDonor + * @result ResponseDonor * @throws ApiError */ static async donorControllerPost(requestBody) { - const result = await request_1.request({ + const result = await (0, request_1.request)({ method: 'POST', path: `/api/donors`, body: requestBody, @@ -35,11 +35,11 @@ class DonorService { * Get one * Lists all information about the donor whose id got provided.
This includes the donor's current donation amount. * @param id - * @returns ResponseDonor + * @result ResponseDonor * @throws ApiError */ static async donorControllerGetOne(id) { - const result = await request_1.request({ + const result = await (0, request_1.request)({ method: 'GET', path: `/api/donors/${id}`, }); @@ -50,11 +50,11 @@ class DonorService { * Update the donor whose id you provided.
Please remember that ids can't be changed. * @param id * @param requestBody UpdateDonor - * @returns ResponseDonor + * @result ResponseDonor * @throws ApiError */ static async donorControllerPut(id, requestBody) { - const result = await request_1.request({ + const result = await (0, request_1.request)({ method: 'PUT', path: `/api/donors/${id}`, body: requestBody, @@ -66,12 +66,12 @@ class DonorService { * Delete the donor whose id you provided.
If no donor with this id exists it will just return 204(no content).
If the donor still has donations associated this will fail, please provide the query param ?force=true to delete the donor with all associated donations. * @param id * @param force - * @returns ResponseDonor - * @returns ResponseEmpty + * @result ResponseDonor + * @result ResponseEmpty * @throws ApiError */ static async donorControllerRemove(id, force) { - const result = await request_1.request({ + const result = await (0, request_1.request)({ method: 'DELETE', path: `/api/donors/${id}`, query: { diff --git a/dist/services/GroupContactService.d.ts b/dist/services/GroupContactService.d.ts index 3a56e67..d783af3 100644 --- a/dist/services/GroupContactService.d.ts +++ b/dist/services/GroupContactService.d.ts @@ -6,7 +6,7 @@ export declare class GroupContactService { /** * Get all * Lists all contacts.
This includes the contact's associated groups. - * @returns ResponseGroupContact + * @result ResponseGroupContact * @throws ApiError */ static groupContactControllerGetAll(): Promise>; @@ -14,7 +14,7 @@ export declare class GroupContactService { * Post * Create a new contact. * @param requestBody CreateGroupContact - * @returns ResponseGroupContact + * @result ResponseGroupContact * @throws ApiError */ static groupContactControllerPost(requestBody?: CreateGroupContact): Promise; @@ -22,7 +22,7 @@ export declare class GroupContactService { * Get one * Lists all information about the contact whose id got provided.
This includes the contact's associated groups. * @param id - * @returns ResponseGroupContact + * @result ResponseGroupContact * @throws ApiError */ static groupContactControllerGetOne(id: number): Promise; @@ -31,7 +31,7 @@ export declare class GroupContactService { * Update the contact whose id you provided.
Please remember that ids can't be changed. * @param id * @param requestBody UpdateGroupContact - * @returns ResponseGroupContact + * @result ResponseGroupContact * @throws ApiError */ static groupContactControllerPut(id: number, requestBody?: UpdateGroupContact): Promise; @@ -40,8 +40,8 @@ export declare class GroupContactService { * Delete the contact whose id you provided.
If no contact with this id exists it will just return 204(no content).
This won't delete any groups associated with the contact. * @param id * @param force - * @returns ResponseGroupContact - * @returns ResponseEmpty + * @result ResponseGroupContact + * @result ResponseEmpty * @throws ApiError */ static groupContactControllerRemove(id: number, force?: boolean): Promise; diff --git a/dist/services/GroupContactService.js b/dist/services/GroupContactService.js index 25d2b31..f48e7b9 100644 --- a/dist/services/GroupContactService.js +++ b/dist/services/GroupContactService.js @@ -6,11 +6,11 @@ class GroupContactService { /** * Get all * Lists all contacts.
This includes the contact's associated groups. - * @returns ResponseGroupContact + * @result ResponseGroupContact * @throws ApiError */ static async groupContactControllerGetAll() { - const result = await request_1.request({ + const result = await (0, request_1.request)({ method: 'GET', path: `/api/contacts`, }); @@ -20,11 +20,11 @@ class GroupContactService { * Post * Create a new contact. * @param requestBody CreateGroupContact - * @returns ResponseGroupContact + * @result ResponseGroupContact * @throws ApiError */ static async groupContactControllerPost(requestBody) { - const result = await request_1.request({ + const result = await (0, request_1.request)({ method: 'POST', path: `/api/contacts`, body: requestBody, @@ -35,11 +35,11 @@ class GroupContactService { * Get one * Lists all information about the contact whose id got provided.
This includes the contact's associated groups. * @param id - * @returns ResponseGroupContact + * @result ResponseGroupContact * @throws ApiError */ static async groupContactControllerGetOne(id) { - const result = await request_1.request({ + const result = await (0, request_1.request)({ method: 'GET', path: `/api/contacts/${id}`, }); @@ -50,11 +50,11 @@ class GroupContactService { * Update the contact whose id you provided.
Please remember that ids can't be changed. * @param id * @param requestBody UpdateGroupContact - * @returns ResponseGroupContact + * @result ResponseGroupContact * @throws ApiError */ static async groupContactControllerPut(id, requestBody) { - const result = await request_1.request({ + const result = await (0, request_1.request)({ method: 'PUT', path: `/api/contacts/${id}`, body: requestBody, @@ -66,12 +66,12 @@ class GroupContactService { * Delete the contact whose id you provided.
If no contact with this id exists it will just return 204(no content).
This won't delete any groups associated with the contact. * @param id * @param force - * @returns ResponseGroupContact - * @returns ResponseEmpty + * @result ResponseGroupContact + * @result ResponseEmpty * @throws ApiError */ static async groupContactControllerRemove(id, force) { - const result = await request_1.request({ + const result = await (0, request_1.request)({ method: 'DELETE', path: `/api/contacts/${id}`, query: { diff --git a/dist/services/ImportService.d.ts b/dist/services/ImportService.d.ts index 3977284..5cd9e52 100644 --- a/dist/services/ImportService.d.ts +++ b/dist/services/ImportService.d.ts @@ -6,7 +6,7 @@ export declare class ImportService { * Create new runners from json and insert them into the provided group.
If teams/classes are provided alongside the runner's name they'll automaticly be created under the provided org and the runners will be inserted into the teams instead. * @param group * @param requestBody ImportRunner - * @returns ResponseRunner + * @result ResponseRunner * @throws ApiError */ static importControllerPostJson(group?: number, requestBody?: Array): Promise>; @@ -15,7 +15,7 @@ export declare class ImportService { * Create new runners from json and insert them into the provided org.
If teams/classes are provided alongside the runner's name they'll automaticly be created under the provided org and the runners will be inserted into the teams instead. * @param id * @param requestBody ImportRunner - * @returns ResponseRunner + * @result ResponseRunner * @throws ApiError */ static importControllerPostOrgsJson(id: number, requestBody?: Array): Promise>; @@ -24,7 +24,7 @@ export declare class ImportService { * Create new runners from json and insert them into the provided team * @param id * @param requestBody ImportRunner - * @returns ResponseRunner + * @result ResponseRunner * @throws ApiError */ static importControllerPostTeamsJson(id: number, requestBody?: Array): Promise>; @@ -32,7 +32,7 @@ export declare class ImportService { * Post csv * Create new runners from csv and insert them into the provided group.
If teams/classes are provided alongside the runner's name they'll automaticly be created under the provided org and the runners will be inserted into the teams instead. * @param group - * @returns ResponseRunner + * @result ResponseRunner * @throws ApiError */ static importControllerPostCsv(group?: number): Promise>; @@ -40,7 +40,7 @@ export declare class ImportService { * Post orgs csv * Create new runners from csv and insert them into the provided org.
If teams/classes are provided alongside the runner's name they'll automaticly be created under the provided org and the runners will be inserted into the teams instead. * @param id - * @returns ResponseRunner + * @result ResponseRunner * @throws ApiError */ static importControllerPostOrgsCsv(id: number): Promise>; @@ -48,7 +48,7 @@ export declare class ImportService { * Post teams csv * Create new runners from csv and insert them into the provided team * @param id - * @returns ResponseRunner + * @result ResponseRunner * @throws ApiError */ static importControllerPostTeamsCsv(id: number): Promise>; diff --git a/dist/services/ImportService.js b/dist/services/ImportService.js index a659dec..af7bbe0 100644 --- a/dist/services/ImportService.js +++ b/dist/services/ImportService.js @@ -8,11 +8,11 @@ class ImportService { * Create new runners from json and insert them into the provided group.
If teams/classes are provided alongside the runner's name they'll automaticly be created under the provided org and the runners will be inserted into the teams instead. * @param group * @param requestBody ImportRunner - * @returns ResponseRunner + * @result ResponseRunner * @throws ApiError */ static async importControllerPostJson(group, requestBody) { - const result = await request_1.request({ + const result = await (0, request_1.request)({ method: 'POST', path: `/api/runners/import`, query: { @@ -27,11 +27,11 @@ class ImportService { * Create new runners from json and insert them into the provided org.
If teams/classes are provided alongside the runner's name they'll automaticly be created under the provided org and the runners will be inserted into the teams instead. * @param id * @param requestBody ImportRunner - * @returns ResponseRunner + * @result ResponseRunner * @throws ApiError */ static async importControllerPostOrgsJson(id, requestBody) { - const result = await request_1.request({ + const result = await (0, request_1.request)({ method: 'POST', path: `/api/organizations/${id}/import`, body: requestBody, @@ -43,11 +43,11 @@ class ImportService { * Create new runners from json and insert them into the provided team * @param id * @param requestBody ImportRunner - * @returns ResponseRunner + * @result ResponseRunner * @throws ApiError */ static async importControllerPostTeamsJson(id, requestBody) { - const result = await request_1.request({ + const result = await (0, request_1.request)({ method: 'POST', path: `/api/teams/${id}/import`, body: requestBody, @@ -58,11 +58,11 @@ class ImportService { * Post csv * Create new runners from csv and insert them into the provided group.
If teams/classes are provided alongside the runner's name they'll automaticly be created under the provided org and the runners will be inserted into the teams instead. * @param group - * @returns ResponseRunner + * @result ResponseRunner * @throws ApiError */ static async importControllerPostCsv(group) { - const result = await request_1.request({ + const result = await (0, request_1.request)({ method: 'POST', path: `/api/runners/import/csv`, query: { @@ -75,11 +75,11 @@ class ImportService { * Post orgs csv * Create new runners from csv and insert them into the provided org.
If teams/classes are provided alongside the runner's name they'll automaticly be created under the provided org and the runners will be inserted into the teams instead. * @param id - * @returns ResponseRunner + * @result ResponseRunner * @throws ApiError */ static async importControllerPostOrgsCsv(id) { - const result = await request_1.request({ + const result = await (0, request_1.request)({ method: 'POST', path: `/api/organizations/${id}/import/csv`, }); @@ -89,11 +89,11 @@ class ImportService { * Post teams csv * Create new runners from csv and insert them into the provided team * @param id - * @returns ResponseRunner + * @result ResponseRunner * @throws ApiError */ static async importControllerPostTeamsCsv(id) { - const result = await request_1.request({ + const result = await (0, request_1.request)({ method: 'POST', path: `/api/teams/${id}/import/csv`, }); diff --git a/dist/services/MeService.d.ts b/dist/services/MeService.d.ts index 928758f..de908cd 100644 --- a/dist/services/MeService.d.ts +++ b/dist/services/MeService.d.ts @@ -5,7 +5,7 @@ export declare class MeService { /** * Get * Lists all information about yourself. - * @returns ResponseUser + * @result ResponseUser * @throws ApiError */ static meControllerGet(): Promise; @@ -13,7 +13,7 @@ export declare class MeService { * Put * Update the yourself.
You can't edit your own permissions or group memberships here - Please use the /api/users/:id enpoint instead.
Please remember that ids can't be changed. * @param requestBody UpdateUser - * @returns ResponseUser + * @result ResponseUser * @throws ApiError */ static meControllerPut(requestBody?: UpdateUser): Promise; @@ -21,14 +21,14 @@ export declare class MeService { * Remove * Delete yourself.
You have to confirm your decision by providing the ?force=true query param.
If there are any permissions directly granted to you they will get deleted as well. * @param force - * @returns ResponseUser + * @result ResponseUser * @throws ApiError */ static meControllerRemove(force?: boolean): Promise; /** * Get permissions * Lists all permissions granted to the you sorted into directly granted and inherited as permission response objects. - * @returns ResponseUserPermissions + * @result ResponseUserPermissions * @throws ApiError */ static meControllerGetPermissions(): Promise; diff --git a/dist/services/MeService.js b/dist/services/MeService.js index 204c137..9d0d533 100644 --- a/dist/services/MeService.js +++ b/dist/services/MeService.js @@ -6,11 +6,11 @@ class MeService { /** * Get * Lists all information about yourself. - * @returns ResponseUser + * @result ResponseUser * @throws ApiError */ static async meControllerGet() { - const result = await request_1.request({ + const result = await (0, request_1.request)({ method: 'GET', path: `/api/users/me/`, }); @@ -20,11 +20,11 @@ class MeService { * Put * Update the yourself.
You can't edit your own permissions or group memberships here - Please use the /api/users/:id enpoint instead.
Please remember that ids can't be changed. * @param requestBody UpdateUser - * @returns ResponseUser + * @result ResponseUser * @throws ApiError */ static async meControllerPut(requestBody) { - const result = await request_1.request({ + const result = await (0, request_1.request)({ method: 'PUT', path: `/api/users/me/`, body: requestBody, @@ -35,11 +35,11 @@ class MeService { * Remove * Delete yourself.
You have to confirm your decision by providing the ?force=true query param.
If there are any permissions directly granted to you they will get deleted as well. * @param force - * @returns ResponseUser + * @result ResponseUser * @throws ApiError */ static async meControllerRemove(force) { - const result = await request_1.request({ + const result = await (0, request_1.request)({ method: 'DELETE', path: `/api/users/me/`, query: { @@ -51,11 +51,11 @@ class MeService { /** * Get permissions * Lists all permissions granted to the you sorted into directly granted and inherited as permission response objects. - * @returns ResponseUserPermissions + * @result ResponseUserPermissions * @throws ApiError */ static async meControllerGetPermissions() { - const result = await request_1.request({ + const result = await (0, request_1.request)({ method: 'GET', path: `/api/users/me/permissions`, }); diff --git a/dist/services/PermissionService.d.ts b/dist/services/PermissionService.d.ts index 3092e86..0911cce 100644 --- a/dist/services/PermissionService.d.ts +++ b/dist/services/PermissionService.d.ts @@ -7,7 +7,7 @@ export declare class PermissionService { /** * Get all * Lists all permissions for all users and groups. - * @returns ResponsePermission + * @result ResponsePermission * @throws ApiError */ static permissionControllerGetAll(): Promise>; @@ -15,7 +15,7 @@ export declare class PermissionService { * Post * Create a new permission for a existing principal(user/group).
If a permission with this target, action and prinicpal already exists that permission will be returned instead of creating a new one. * @param requestBody CreatePermission - * @returns ResponsePermission + * @result ResponsePermission * @throws ApiError */ static permissionControllerPost(requestBody?: CreatePermission): Promise; @@ -23,7 +23,7 @@ export declare class PermissionService { * Get one * Lists all information about the permission whose id got provided. * @param id - * @returns ResponsePermission + * @result ResponsePermission * @throws ApiError */ static permissionControllerGetOne(id: number): Promise; @@ -32,7 +32,7 @@ export declare class PermissionService { * Update a permission object.
If updateing the permission object would result in duplicate permission (same target, action and principal) this permission will get deleted and the existing permission will be returned.
Please remember that ids can't be changed. * @param id * @param requestBody UpdatePermission - * @returns ResponsePrincipal + * @result ResponsePrincipal * @throws ApiError */ static permissionControllerPut(id: number, requestBody?: UpdatePermission): Promise; @@ -41,8 +41,8 @@ export declare class PermissionService { * Deletes the permission whose id you provide.
If no permission with this id exists it will just return 204(no content). * @param id * @param force - * @returns ResponsePermission - * @returns ResponseEmpty + * @result ResponsePermission + * @result ResponseEmpty * @throws ApiError */ static permissionControllerRemove(id: number, force?: boolean): Promise; diff --git a/dist/services/PermissionService.js b/dist/services/PermissionService.js index 586f3bb..b18aada 100644 --- a/dist/services/PermissionService.js +++ b/dist/services/PermissionService.js @@ -6,11 +6,11 @@ class PermissionService { /** * Get all * Lists all permissions for all users and groups. - * @returns ResponsePermission + * @result ResponsePermission * @throws ApiError */ static async permissionControllerGetAll() { - const result = await request_1.request({ + const result = await (0, request_1.request)({ method: 'GET', path: `/api/permissions`, }); @@ -20,11 +20,11 @@ class PermissionService { * Post * Create a new permission for a existing principal(user/group).
If a permission with this target, action and prinicpal already exists that permission will be returned instead of creating a new one. * @param requestBody CreatePermission - * @returns ResponsePermission + * @result ResponsePermission * @throws ApiError */ static async permissionControllerPost(requestBody) { - const result = await request_1.request({ + const result = await (0, request_1.request)({ method: 'POST', path: `/api/permissions`, body: requestBody, @@ -35,11 +35,11 @@ class PermissionService { * Get one * Lists all information about the permission whose id got provided. * @param id - * @returns ResponsePermission + * @result ResponsePermission * @throws ApiError */ static async permissionControllerGetOne(id) { - const result = await request_1.request({ + const result = await (0, request_1.request)({ method: 'GET', path: `/api/permissions/${id}`, }); @@ -50,11 +50,11 @@ class PermissionService { * Update a permission object.
If updateing the permission object would result in duplicate permission (same target, action and principal) this permission will get deleted and the existing permission will be returned.
Please remember that ids can't be changed. * @param id * @param requestBody UpdatePermission - * @returns ResponsePrincipal + * @result ResponsePrincipal * @throws ApiError */ static async permissionControllerPut(id, requestBody) { - const result = await request_1.request({ + const result = await (0, request_1.request)({ method: 'PUT', path: `/api/permissions/${id}`, body: requestBody, @@ -66,12 +66,12 @@ class PermissionService { * Deletes the permission whose id you provide.
If no permission with this id exists it will just return 204(no content). * @param id * @param force - * @returns ResponsePermission - * @returns ResponseEmpty + * @result ResponsePermission + * @result ResponseEmpty * @throws ApiError */ static async permissionControllerRemove(id, force) { - const result = await request_1.request({ + const result = await (0, request_1.request)({ method: 'DELETE', path: `/api/permissions/${id}`, query: { diff --git a/dist/services/RunnerCardService.d.ts b/dist/services/RunnerCardService.d.ts index c51817b..351f03b 100644 --- a/dist/services/RunnerCardService.d.ts +++ b/dist/services/RunnerCardService.d.ts @@ -6,7 +6,7 @@ export declare class RunnerCardService { /** * Get all * Lists all card. - * @returns ResponseRunnerCard + * @result ResponseRunnerCard * @throws ApiError */ static runnerCardControllerGetAll(): Promise>; @@ -14,7 +14,7 @@ export declare class RunnerCardService { * Post * Create a new card.
You can provide a associated runner by id but you don't have to. * @param requestBody CreateRunnerCard - * @returns ResponseRunnerCard + * @result ResponseRunnerCard * @throws ApiError */ static runnerCardControllerPost(requestBody?: CreateRunnerCard): Promise; @@ -22,7 +22,7 @@ export declare class RunnerCardService { * Get one * Lists all information about the card whose id got provided. * @param id - * @returns ResponseRunnerCard + * @result ResponseRunnerCard * @throws ApiError */ static runnerCardControllerGetOne(id: number): Promise; @@ -31,7 +31,7 @@ export declare class RunnerCardService { * Update the card whose id you provided.
Scans created via this card will still be associated with the old runner.
Please remember that ids can't be changed. * @param id * @param requestBody UpdateRunnerCard - * @returns ResponseRunnerCard + * @result ResponseRunnerCard * @throws ApiError */ static runnerCardControllerPut(id: number, requestBody?: UpdateRunnerCard): Promise; @@ -40,8 +40,8 @@ export declare class RunnerCardService { * Delete the card whose id you provided.
If no card with this id exists it will just return 204(no content).
If the card still has scans associated you have to provide the force=true query param (warning: this deletes all scans associated with by this card - please disable it instead or just remove the runner association). * @param id * @param force - * @returns ResponseRunnerCard - * @returns ResponseEmpty + * @result ResponseRunnerCard + * @result ResponseEmpty * @throws ApiError */ static runnerCardControllerRemove(id: number, force?: boolean): Promise; @@ -50,7 +50,7 @@ export declare class RunnerCardService { * Create blank cards in bulk.
Just provide the count as a query param and wait for the 200 response.
You can provide the 'returnCards' query param if you want to receive the RESPONSERUNNERCARD objects in the response. * @param count * @param returnCards - * @returns ResponseEmpty + * @result ResponseEmpty * @throws ApiError */ static runnerCardControllerPostBlancoBulk(count?: number, returnCards?: boolean): Promise; diff --git a/dist/services/RunnerCardService.js b/dist/services/RunnerCardService.js index 4d04473..2cd65ab 100644 --- a/dist/services/RunnerCardService.js +++ b/dist/services/RunnerCardService.js @@ -6,11 +6,11 @@ class RunnerCardService { /** * Get all * Lists all card. - * @returns ResponseRunnerCard + * @result ResponseRunnerCard * @throws ApiError */ static async runnerCardControllerGetAll() { - const result = await request_1.request({ + const result = await (0, request_1.request)({ method: 'GET', path: `/api/cards`, }); @@ -20,11 +20,11 @@ class RunnerCardService { * Post * Create a new card.
You can provide a associated runner by id but you don't have to. * @param requestBody CreateRunnerCard - * @returns ResponseRunnerCard + * @result ResponseRunnerCard * @throws ApiError */ static async runnerCardControllerPost(requestBody) { - const result = await request_1.request({ + const result = await (0, request_1.request)({ method: 'POST', path: `/api/cards`, body: requestBody, @@ -35,11 +35,11 @@ class RunnerCardService { * Get one * Lists all information about the card whose id got provided. * @param id - * @returns ResponseRunnerCard + * @result ResponseRunnerCard * @throws ApiError */ static async runnerCardControllerGetOne(id) { - const result = await request_1.request({ + const result = await (0, request_1.request)({ method: 'GET', path: `/api/cards/${id}`, }); @@ -50,11 +50,11 @@ class RunnerCardService { * Update the card whose id you provided.
Scans created via this card will still be associated with the old runner.
Please remember that ids can't be changed. * @param id * @param requestBody UpdateRunnerCard - * @returns ResponseRunnerCard + * @result ResponseRunnerCard * @throws ApiError */ static async runnerCardControllerPut(id, requestBody) { - const result = await request_1.request({ + const result = await (0, request_1.request)({ method: 'PUT', path: `/api/cards/${id}`, body: requestBody, @@ -66,12 +66,12 @@ class RunnerCardService { * Delete the card whose id you provided.
If no card with this id exists it will just return 204(no content).
If the card still has scans associated you have to provide the force=true query param (warning: this deletes all scans associated with by this card - please disable it instead or just remove the runner association). * @param id * @param force - * @returns ResponseRunnerCard - * @returns ResponseEmpty + * @result ResponseRunnerCard + * @result ResponseEmpty * @throws ApiError */ static async runnerCardControllerRemove(id, force) { - const result = await request_1.request({ + const result = await (0, request_1.request)({ method: 'DELETE', path: `/api/cards/${id}`, query: { @@ -85,11 +85,11 @@ class RunnerCardService { * Create blank cards in bulk.
Just provide the count as a query param and wait for the 200 response.
You can provide the 'returnCards' query param if you want to receive the RESPONSERUNNERCARD objects in the response. * @param count * @param returnCards - * @returns ResponseEmpty + * @result ResponseEmpty * @throws ApiError */ static async runnerCardControllerPostBlancoBulk(count, returnCards) { - const result = await request_1.request({ + const result = await (0, request_1.request)({ method: 'POST', path: `/api/cards/bulk`, query: { diff --git a/dist/services/RunnerOrganizationService.d.ts b/dist/services/RunnerOrganizationService.d.ts index 4d3f00f..326b9fa 100644 --- a/dist/services/RunnerOrganizationService.d.ts +++ b/dist/services/RunnerOrganizationService.d.ts @@ -7,7 +7,7 @@ export declare class RunnerOrganizationService { /** * Get all * Lists all organizations.
This includes their address, contact and teams (if existing/associated). - * @returns ResponseRunnerOrganization + * @result ResponseRunnerOrganization * @throws ApiError */ static runnerOrganizationControllerGetAll(): Promise>; @@ -15,7 +15,7 @@ export declare class RunnerOrganizationService { * Post * Create a new organsisation. * @param requestBody CreateRunnerOrganization - * @returns ResponseRunnerOrganization + * @result ResponseRunnerOrganization * @throws ApiError */ static runnerOrganizationControllerPost(requestBody?: CreateRunnerOrganization): Promise; @@ -23,7 +23,7 @@ export declare class RunnerOrganizationService { * Get one * Lists all information about the organization whose id got provided. * @param id - * @returns ResponseRunnerOrganization + * @result ResponseRunnerOrganization * @throws ApiError */ static runnerOrganizationControllerGetOne(id: number): Promise; @@ -32,7 +32,7 @@ export declare class RunnerOrganizationService { * Update the organization whose id you provided.
Please remember that ids can't be changed. * @param id * @param requestBody UpdateRunnerOrganization - * @returns ResponseRunnerOrganization + * @result ResponseRunnerOrganization * @throws ApiError */ static runnerOrganizationControllerPut(id: number, requestBody?: UpdateRunnerOrganization): Promise; @@ -41,8 +41,8 @@ export declare class RunnerOrganizationService { * Delete the organsisation whose id you provided.
If the organization still has runners and/or teams associated this will fail.
To delete the organization with all associated runners and teams set the force QueryParam to true (cascading deletion might take a while).
This won't delete the associated contact.
If no organization with this id exists it will just return 204(no content). * @param id * @param force - * @returns ResponseRunnerOrganization - * @returns ResponseEmpty + * @result ResponseRunnerOrganization + * @result ResponseEmpty * @throws ApiError */ static runnerOrganizationControllerRemove(id: number, force?: boolean): Promise; @@ -51,7 +51,7 @@ export declare class RunnerOrganizationService { * Lists all runners from this org and it's teams (if you don't provide the ?onlyDirect=true param).
This includes the runner's group and distance ran. * @param id * @param onlyDirect - * @returns ResponseRunner + * @result ResponseRunner * @throws ApiError */ static runnerOrganizationControllerGetRunners(id: number, onlyDirect?: boolean): Promise>; diff --git a/dist/services/RunnerOrganizationService.js b/dist/services/RunnerOrganizationService.js index 16495b3..78466fa 100644 --- a/dist/services/RunnerOrganizationService.js +++ b/dist/services/RunnerOrganizationService.js @@ -6,11 +6,11 @@ class RunnerOrganizationService { /** * Get all * Lists all organizations.
This includes their address, contact and teams (if existing/associated). - * @returns ResponseRunnerOrganization + * @result ResponseRunnerOrganization * @throws ApiError */ static async runnerOrganizationControllerGetAll() { - const result = await request_1.request({ + const result = await (0, request_1.request)({ method: 'GET', path: `/api/organizations`, }); @@ -20,11 +20,11 @@ class RunnerOrganizationService { * Post * Create a new organsisation. * @param requestBody CreateRunnerOrganization - * @returns ResponseRunnerOrganization + * @result ResponseRunnerOrganization * @throws ApiError */ static async runnerOrganizationControllerPost(requestBody) { - const result = await request_1.request({ + const result = await (0, request_1.request)({ method: 'POST', path: `/api/organizations`, body: requestBody, @@ -35,11 +35,11 @@ class RunnerOrganizationService { * Get one * Lists all information about the organization whose id got provided. * @param id - * @returns ResponseRunnerOrganization + * @result ResponseRunnerOrganization * @throws ApiError */ static async runnerOrganizationControllerGetOne(id) { - const result = await request_1.request({ + const result = await (0, request_1.request)({ method: 'GET', path: `/api/organizations/${id}`, }); @@ -50,11 +50,11 @@ class RunnerOrganizationService { * Update the organization whose id you provided.
Please remember that ids can't be changed. * @param id * @param requestBody UpdateRunnerOrganization - * @returns ResponseRunnerOrganization + * @result ResponseRunnerOrganization * @throws ApiError */ static async runnerOrganizationControllerPut(id, requestBody) { - const result = await request_1.request({ + const result = await (0, request_1.request)({ method: 'PUT', path: `/api/organizations/${id}`, body: requestBody, @@ -66,12 +66,12 @@ class RunnerOrganizationService { * Delete the organsisation whose id you provided.
If the organization still has runners and/or teams associated this will fail.
To delete the organization with all associated runners and teams set the force QueryParam to true (cascading deletion might take a while).
This won't delete the associated contact.
If no organization with this id exists it will just return 204(no content). * @param id * @param force - * @returns ResponseRunnerOrganization - * @returns ResponseEmpty + * @result ResponseRunnerOrganization + * @result ResponseEmpty * @throws ApiError */ static async runnerOrganizationControllerRemove(id, force) { - const result = await request_1.request({ + const result = await (0, request_1.request)({ method: 'DELETE', path: `/api/organizations/${id}`, query: { @@ -85,11 +85,11 @@ class RunnerOrganizationService { * Lists all runners from this org and it's teams (if you don't provide the ?onlyDirect=true param).
This includes the runner's group and distance ran. * @param id * @param onlyDirect - * @returns ResponseRunner + * @result ResponseRunner * @throws ApiError */ static async runnerOrganizationControllerGetRunners(id, onlyDirect) { - const result = await request_1.request({ + const result = await (0, request_1.request)({ method: 'GET', path: `/api/organizations/${id}/runners`, query: { diff --git a/dist/services/RunnerSelfService.d.ts b/dist/services/RunnerSelfService.d.ts index 1f9a9d4..5326f07 100644 --- a/dist/services/RunnerSelfService.d.ts +++ b/dist/services/RunnerSelfService.d.ts @@ -9,7 +9,7 @@ export declare class RunnerSelfService { * Get * Lists all information about yourself.
Please provide your runner jwt(that code we gave you during registration) for auth.
If you lost your jwt/personalized link please use the forgot endpoint. * @param jwt - * @returns ResponseSelfServiceRunner + * @result ResponseSelfServiceRunner * @throws ApiError */ static runnerSelfServiceControllerGet(jwt: string): Promise; @@ -18,7 +18,7 @@ export declare class RunnerSelfService { * Deletes all information about yourself.
Please provide your runner jwt(that code we gave you during registration) for auth.
If you lost your jwt/personalized link please use the forgot endpoint. * @param jwt * @param force - * @returns ResponseSelfServiceRunner + * @result ResponseSelfServiceRunner * @throws ApiError */ static runnerSelfServiceControllerRemove(jwt: string, force?: boolean): Promise; @@ -26,14 +26,14 @@ export declare class RunnerSelfService { * Get scans * Lists all your (runner) scans.
Please provide your runner jwt(that code we gave you during registration) for auth.
If you lost your jwt/personalized link please contact support. * @param jwt - * @returns ResponseSelfServiceScan + * @result ResponseSelfServiceScan * @throws ApiError */ static runnerSelfServiceControllerGetScans(jwt: string): Promise>; /** * Get station me * Lists basic information about the station whose token got provided.
This includes it's associated track. - * @returns ResponseScanStation + * @result ResponseScanStation * @throws ApiError */ static runnerSelfServiceControllerGetStationMe(): Promise; @@ -42,7 +42,7 @@ export declare class RunnerSelfService { * Use this endpoint to reuqest a new selfservice token/link to be sent to your mail address (rate limited to one mail every 24hrs). * @param mail * @param locale - * @returns any Successful response + * @result any Successful response * @throws ApiError */ static runnerSelfServiceControllerRequestNewToken(mail?: string, locale?: string): Promise; @@ -51,7 +51,7 @@ export declare class RunnerSelfService { * Create a new selfservice runner in the citizen org.
This endpoint shoud be used to allow "everyday citizen" to register themselves.
You have to provide a mail address, b/c the future we'll implement email verification. * @param locale * @param requestBody CreateSelfServiceCitizenRunner - * @returns ResponseSelfServiceRunner + * @result ResponseSelfServiceRunner * @throws ApiError */ static runnerSelfServiceControllerRegisterRunner(locale?: string, requestBody?: CreateSelfServiceCitizenRunner): Promise; @@ -61,7 +61,7 @@ export declare class RunnerSelfService { * @param token * @param locale * @param requestBody CreateSelfServiceRunner - * @returns ResponseSelfServiceRunner + * @result ResponseSelfServiceRunner * @throws ApiError */ static runnerSelfServiceControllerRegisterOrganizationRunner(token: string, locale?: string, requestBody?: CreateSelfServiceRunner): Promise; @@ -69,7 +69,7 @@ export declare class RunnerSelfService { * Get selfservice org * Get the basic info and teams for a org. * @param token - * @returns ResponseSelfServiceOrganisation + * @result ResponseSelfServiceOrganisation * @throws ApiError */ static runnerSelfServiceControllerGetSelfserviceOrg(token: string): Promise; diff --git a/dist/services/RunnerSelfService.js b/dist/services/RunnerSelfService.js index 9b0c57c..1023924 100644 --- a/dist/services/RunnerSelfService.js +++ b/dist/services/RunnerSelfService.js @@ -7,11 +7,11 @@ class RunnerSelfService { * Get * Lists all information about yourself.
Please provide your runner jwt(that code we gave you during registration) for auth.
If you lost your jwt/personalized link please use the forgot endpoint. * @param jwt - * @returns ResponseSelfServiceRunner + * @result ResponseSelfServiceRunner * @throws ApiError */ static async runnerSelfServiceControllerGet(jwt) { - const result = await request_1.request({ + const result = await (0, request_1.request)({ method: 'GET', path: `/api/runners/me/${jwt}`, }); @@ -22,11 +22,11 @@ class RunnerSelfService { * Deletes all information about yourself.
Please provide your runner jwt(that code we gave you during registration) for auth.
If you lost your jwt/personalized link please use the forgot endpoint. * @param jwt * @param force - * @returns ResponseSelfServiceRunner + * @result ResponseSelfServiceRunner * @throws ApiError */ static async runnerSelfServiceControllerRemove(jwt, force) { - const result = await request_1.request({ + const result = await (0, request_1.request)({ method: 'DELETE', path: `/api/runners/me/${jwt}`, query: { @@ -39,11 +39,11 @@ class RunnerSelfService { * Get scans * Lists all your (runner) scans.
Please provide your runner jwt(that code we gave you during registration) for auth.
If you lost your jwt/personalized link please contact support. * @param jwt - * @returns ResponseSelfServiceScan + * @result ResponseSelfServiceScan * @throws ApiError */ static async runnerSelfServiceControllerGetScans(jwt) { - const result = await request_1.request({ + const result = await (0, request_1.request)({ method: 'GET', path: `/api/runners/me/${jwt}/scans`, }); @@ -52,11 +52,11 @@ class RunnerSelfService { /** * Get station me * Lists basic information about the station whose token got provided.
This includes it's associated track. - * @returns ResponseScanStation + * @result ResponseScanStation * @throws ApiError */ static async runnerSelfServiceControllerGetStationMe() { - const result = await request_1.request({ + const result = await (0, request_1.request)({ method: 'GET', path: `/api/stations/me`, }); @@ -67,11 +67,11 @@ class RunnerSelfService { * Use this endpoint to reuqest a new selfservice token/link to be sent to your mail address (rate limited to one mail every 24hrs). * @param mail * @param locale - * @returns any Successful response + * @result any Successful response * @throws ApiError */ static async runnerSelfServiceControllerRequestNewToken(mail, locale) { - const result = await request_1.request({ + const result = await (0, request_1.request)({ method: 'POST', path: `/api/runners/forgot`, query: { @@ -86,11 +86,11 @@ class RunnerSelfService { * Create a new selfservice runner in the citizen org.
This endpoint shoud be used to allow "everyday citizen" to register themselves.
You have to provide a mail address, b/c the future we'll implement email verification. * @param locale * @param requestBody CreateSelfServiceCitizenRunner - * @returns ResponseSelfServiceRunner + * @result ResponseSelfServiceRunner * @throws ApiError */ static async runnerSelfServiceControllerRegisterRunner(locale, requestBody) { - const result = await request_1.request({ + const result = await (0, request_1.request)({ method: 'POST', path: `/api/runners/register`, query: { @@ -106,11 +106,11 @@ class RunnerSelfService { * @param token * @param locale * @param requestBody CreateSelfServiceRunner - * @returns ResponseSelfServiceRunner + * @result ResponseSelfServiceRunner * @throws ApiError */ static async runnerSelfServiceControllerRegisterOrganizationRunner(token, locale, requestBody) { - const result = await request_1.request({ + const result = await (0, request_1.request)({ method: 'POST', path: `/api/runners/register/${token}`, query: { @@ -124,11 +124,11 @@ class RunnerSelfService { * Get selfservice org * Get the basic info and teams for a org. * @param token - * @returns ResponseSelfServiceOrganisation + * @result ResponseSelfServiceOrganisation * @throws ApiError */ static async runnerSelfServiceControllerGetSelfserviceOrg(token) { - const result = await request_1.request({ + const result = await (0, request_1.request)({ method: 'GET', path: `/api/organizations/selfservice/${token}`, }); diff --git a/dist/services/RunnerService.d.ts b/dist/services/RunnerService.d.ts index 48684e6..735b349 100644 --- a/dist/services/RunnerService.d.ts +++ b/dist/services/RunnerService.d.ts @@ -10,7 +10,7 @@ export declare class RunnerService { /** * Get all * Lists all runners from all teams/orgs.
This includes the runner's group and distance ran. - * @returns ResponseRunner + * @result ResponseRunner * @throws ApiError */ static runnerControllerGetAll(): Promise>; @@ -18,7 +18,7 @@ export declare class RunnerService { * Post * Create a new runner.
Please remeber to provide the runner's group's id. * @param requestBody CreateRunner - * @returns any + * @result any * @throws ApiError */ static runnerControllerPost(requestBody?: CreateRunner): Promise<(ResponseRunner | RunnerGroupNeededError | RunnerGroupNotFoundError)>; @@ -26,7 +26,7 @@ export declare class RunnerService { * Get one * Lists all information about the runner whose id got provided. * @param id - * @returns ResponseRunner + * @result ResponseRunner * @throws ApiError */ static runnerControllerGetOne(id: number): Promise; @@ -35,7 +35,7 @@ export declare class RunnerService { * Update the runner whose id you provided.
Please remember that ids can't be changed. * @param id * @param requestBody UpdateRunner - * @returns ResponseRunner + * @result ResponseRunner * @throws ApiError */ static runnerControllerPut(id: number, requestBody?: UpdateRunner): Promise; @@ -44,8 +44,8 @@ export declare class RunnerService { * Delete the runner whose id you provided.
This will also delete all scans and cards associated with the runner.
If no runner with this id exists it will just return 204(no content). * @param id * @param force - * @returns ResponseRunner - * @returns ResponseEmpty + * @result ResponseRunner + * @result ResponseEmpty * @throws ApiError */ static runnerControllerRemove(id: number, force?: boolean): Promise; @@ -53,7 +53,7 @@ export declare class RunnerService { * Get scans * Lists all scans of the runner whose id got provided.
If you only want the valid scans just add the ?onlyValid=true query param. * @param id - * @returns any + * @result any * @throws ApiError */ static runnerControllerGetScans(id: number): Promise<(Array | Array)>; diff --git a/dist/services/RunnerService.js b/dist/services/RunnerService.js index 1a3f5c4..8e20171 100644 --- a/dist/services/RunnerService.js +++ b/dist/services/RunnerService.js @@ -6,11 +6,11 @@ class RunnerService { /** * Get all * Lists all runners from all teams/orgs.
This includes the runner's group and distance ran. - * @returns ResponseRunner + * @result ResponseRunner * @throws ApiError */ static async runnerControllerGetAll() { - const result = await request_1.request({ + const result = await (0, request_1.request)({ method: 'GET', path: `/api/runners`, }); @@ -20,11 +20,11 @@ class RunnerService { * Post * Create a new runner.
Please remeber to provide the runner's group's id. * @param requestBody CreateRunner - * @returns any + * @result any * @throws ApiError */ static async runnerControllerPost(requestBody) { - const result = await request_1.request({ + const result = await (0, request_1.request)({ method: 'POST', path: `/api/runners`, body: requestBody, @@ -35,11 +35,11 @@ class RunnerService { * Get one * Lists all information about the runner whose id got provided. * @param id - * @returns ResponseRunner + * @result ResponseRunner * @throws ApiError */ static async runnerControllerGetOne(id) { - const result = await request_1.request({ + const result = await (0, request_1.request)({ method: 'GET', path: `/api/runners/${id}`, }); @@ -50,11 +50,11 @@ class RunnerService { * Update the runner whose id you provided.
Please remember that ids can't be changed. * @param id * @param requestBody UpdateRunner - * @returns ResponseRunner + * @result ResponseRunner * @throws ApiError */ static async runnerControllerPut(id, requestBody) { - const result = await request_1.request({ + const result = await (0, request_1.request)({ method: 'PUT', path: `/api/runners/${id}`, body: requestBody, @@ -66,12 +66,12 @@ class RunnerService { * Delete the runner whose id you provided.
This will also delete all scans and cards associated with the runner.
If no runner with this id exists it will just return 204(no content). * @param id * @param force - * @returns ResponseRunner - * @returns ResponseEmpty + * @result ResponseRunner + * @result ResponseEmpty * @throws ApiError */ static async runnerControllerRemove(id, force) { - const result = await request_1.request({ + const result = await (0, request_1.request)({ method: 'DELETE', path: `/api/runners/${id}`, query: { @@ -84,11 +84,11 @@ class RunnerService { * Get scans * Lists all scans of the runner whose id got provided.
If you only want the valid scans just add the ?onlyValid=true query param. * @param id - * @returns any + * @result any * @throws ApiError */ static async runnerControllerGetScans(id) { - const result = await request_1.request({ + const result = await (0, request_1.request)({ method: 'GET', path: `/api/runners/${id}/scans`, }); diff --git a/dist/services/RunnerTeamService.d.ts b/dist/services/RunnerTeamService.d.ts index 69f22e3..5819fb1 100644 --- a/dist/services/RunnerTeamService.d.ts +++ b/dist/services/RunnerTeamService.d.ts @@ -7,7 +7,7 @@ export declare class RunnerTeamService { /** * Get all * Lists all teams.
This includes their parent organization and contact (if existing/associated). - * @returns ResponseRunnerTeam + * @result ResponseRunnerTeam * @throws ApiError */ static runnerTeamControllerGetAll(): Promise>; @@ -15,7 +15,7 @@ export declare class RunnerTeamService { * Post * Create a new organsisation.
Please remember to provide it's parent group's id. * @param requestBody CreateRunnerTeam - * @returns ResponseRunnerTeam + * @result ResponseRunnerTeam * @throws ApiError */ static runnerTeamControllerPost(requestBody?: CreateRunnerTeam): Promise; @@ -23,7 +23,7 @@ export declare class RunnerTeamService { * Get one * Lists all information about the team whose id got provided. * @param id - * @returns ResponseRunnerTeam + * @result ResponseRunnerTeam * @throws ApiError */ static runnerTeamControllerGetOne(id: number): Promise; @@ -32,7 +32,7 @@ export declare class RunnerTeamService { * Update the team whose id you provided.
Please remember that ids can't be changed. * @param id * @param requestBody UpdateRunnerTeam - * @returns ResponseRunnerTeam + * @result ResponseRunnerTeam * @throws ApiError */ static runnerTeamControllerPut(id: number, requestBody?: UpdateRunnerTeam): Promise; @@ -41,8 +41,8 @@ export declare class RunnerTeamService { * Delete the team whose id you provided.
If the team still has runners associated this will fail.
To delete the team with all associated runners set the force QueryParam to true (cascading deletion might take a while).
This won't delete the associated contact.
If no team with this id exists it will just return 204(no content). * @param id * @param force - * @returns ResponseRunnerTeam - * @returns ResponseEmpty + * @result ResponseRunnerTeam + * @result ResponseEmpty * @throws ApiError */ static runnerTeamControllerRemove(id: number, force?: boolean): Promise; @@ -50,7 +50,7 @@ export declare class RunnerTeamService { * Get runners * Lists all runners from this team.
This includes the runner's group and distance ran. * @param id - * @returns ResponseRunner + * @result ResponseRunner * @throws ApiError */ static runnerTeamControllerGetRunners(id: number): Promise>; diff --git a/dist/services/RunnerTeamService.js b/dist/services/RunnerTeamService.js index 38365ba..2aae3ca 100644 --- a/dist/services/RunnerTeamService.js +++ b/dist/services/RunnerTeamService.js @@ -6,11 +6,11 @@ class RunnerTeamService { /** * Get all * Lists all teams.
This includes their parent organization and contact (if existing/associated). - * @returns ResponseRunnerTeam + * @result ResponseRunnerTeam * @throws ApiError */ static async runnerTeamControllerGetAll() { - const result = await request_1.request({ + const result = await (0, request_1.request)({ method: 'GET', path: `/api/teams`, }); @@ -20,11 +20,11 @@ class RunnerTeamService { * Post * Create a new organsisation.
Please remember to provide it's parent group's id. * @param requestBody CreateRunnerTeam - * @returns ResponseRunnerTeam + * @result ResponseRunnerTeam * @throws ApiError */ static async runnerTeamControllerPost(requestBody) { - const result = await request_1.request({ + const result = await (0, request_1.request)({ method: 'POST', path: `/api/teams`, body: requestBody, @@ -35,11 +35,11 @@ class RunnerTeamService { * Get one * Lists all information about the team whose id got provided. * @param id - * @returns ResponseRunnerTeam + * @result ResponseRunnerTeam * @throws ApiError */ static async runnerTeamControllerGetOne(id) { - const result = await request_1.request({ + const result = await (0, request_1.request)({ method: 'GET', path: `/api/teams/${id}`, }); @@ -50,11 +50,11 @@ class RunnerTeamService { * Update the team whose id you provided.
Please remember that ids can't be changed. * @param id * @param requestBody UpdateRunnerTeam - * @returns ResponseRunnerTeam + * @result ResponseRunnerTeam * @throws ApiError */ static async runnerTeamControllerPut(id, requestBody) { - const result = await request_1.request({ + const result = await (0, request_1.request)({ method: 'PUT', path: `/api/teams/${id}`, body: requestBody, @@ -66,12 +66,12 @@ class RunnerTeamService { * Delete the team whose id you provided.
If the team still has runners associated this will fail.
To delete the team with all associated runners set the force QueryParam to true (cascading deletion might take a while).
This won't delete the associated contact.
If no team with this id exists it will just return 204(no content). * @param id * @param force - * @returns ResponseRunnerTeam - * @returns ResponseEmpty + * @result ResponseRunnerTeam + * @result ResponseEmpty * @throws ApiError */ static async runnerTeamControllerRemove(id, force) { - const result = await request_1.request({ + const result = await (0, request_1.request)({ method: 'DELETE', path: `/api/teams/${id}`, query: { @@ -84,11 +84,11 @@ class RunnerTeamService { * Get runners * Lists all runners from this team.
This includes the runner's group and distance ran. * @param id - * @returns ResponseRunner + * @result ResponseRunner * @throws ApiError */ static async runnerTeamControllerGetRunners(id) { - const result = await request_1.request({ + const result = await (0, request_1.request)({ method: 'GET', path: `/api/teams/${id}/runners`, }); diff --git a/dist/services/ScanService.d.ts b/dist/services/ScanService.d.ts index f732db5..28338e3 100644 --- a/dist/services/ScanService.d.ts +++ b/dist/services/ScanService.d.ts @@ -9,7 +9,7 @@ export declare class ScanService { /** * Get all * Lists all scans (normal or track) from all runners.
This includes the scan's runner's distance ran. - * @returns any + * @result any * @throws ApiError */ static scanControllerGetAll(): Promise<(Array | Array)>; @@ -17,7 +17,7 @@ export declare class ScanService { * Post * Create a new scan (not track scan - use /scans/trackscans instead).
Please rmemember to provide the scan's runner's id and distance. * @param requestBody CreateScan - * @returns ResponseScan + * @result ResponseScan * @throws ApiError */ static scanControllerPost(requestBody?: CreateScan): Promise; @@ -25,7 +25,7 @@ export declare class ScanService { * Get one * Lists all information about the scan whose id got provided. This includes the scan's runner's distance ran. * @param id - * @returns any + * @result any * @throws ApiError */ static scanControllerGetOne(id: number): Promise<(ResponseScan | ResponseTrackScan)>; @@ -34,7 +34,7 @@ export declare class ScanService { * Update the scan (not track scan use /scans/trackscans/:id instead) whose id you provided.
Please remember that ids can't be changed and distances must be positive. * @param id * @param requestBody UpdateScan - * @returns ResponseScan + * @result ResponseScan * @throws ApiError */ static scanControllerPut(id: number, requestBody?: UpdateScan): Promise; @@ -43,8 +43,8 @@ export declare class ScanService { * Delete the scan whose id you provided.
If no scan with this id exists it will just return 204(no content). * @param id * @param force - * @returns ResponseScan - * @returns ResponseEmpty + * @result ResponseScan + * @result ResponseEmpty * @throws ApiError */ static scanControllerRemove(id: number, force?: boolean): Promise; @@ -52,7 +52,7 @@ export declare class ScanService { * Post track scans * Create a new track scan (for "normal" scans use /scans instead).
Please remember that to provide the scan's card's station's id. * @param requestBody CreateTrackScan - * @returns ResponseTrackScan + * @result ResponseTrackScan * @throws ApiError */ static scanControllerPostTrackScans(requestBody?: CreateTrackScan): Promise; @@ -61,7 +61,7 @@ export declare class ScanService { * Update the track scan (not "normal" scan use /scans/trackscans/:id instead) whose id you provided.
Please remember that only the validity, runner and track can be changed. * @param id * @param requestBody UpdateTrackScan - * @returns ResponseTrackScan + * @result ResponseTrackScan * @throws ApiError */ static scanControllerPutTrackScan(id: number, requestBody?: UpdateTrackScan): Promise; diff --git a/dist/services/ScanService.js b/dist/services/ScanService.js index 4b1ef8d..abcf2e8 100644 --- a/dist/services/ScanService.js +++ b/dist/services/ScanService.js @@ -6,11 +6,11 @@ class ScanService { /** * Get all * Lists all scans (normal or track) from all runners.
This includes the scan's runner's distance ran. - * @returns any + * @result any * @throws ApiError */ static async scanControllerGetAll() { - const result = await request_1.request({ + const result = await (0, request_1.request)({ method: 'GET', path: `/api/scans`, }); @@ -20,11 +20,11 @@ class ScanService { * Post * Create a new scan (not track scan - use /scans/trackscans instead).
Please rmemember to provide the scan's runner's id and distance. * @param requestBody CreateScan - * @returns ResponseScan + * @result ResponseScan * @throws ApiError */ static async scanControllerPost(requestBody) { - const result = await request_1.request({ + const result = await (0, request_1.request)({ method: 'POST', path: `/api/scans`, body: requestBody, @@ -35,11 +35,11 @@ class ScanService { * Get one * Lists all information about the scan whose id got provided. This includes the scan's runner's distance ran. * @param id - * @returns any + * @result any * @throws ApiError */ static async scanControllerGetOne(id) { - const result = await request_1.request({ + const result = await (0, request_1.request)({ method: 'GET', path: `/api/scans/${id}`, }); @@ -50,11 +50,11 @@ class ScanService { * Update the scan (not track scan use /scans/trackscans/:id instead) whose id you provided.
Please remember that ids can't be changed and distances must be positive. * @param id * @param requestBody UpdateScan - * @returns ResponseScan + * @result ResponseScan * @throws ApiError */ static async scanControllerPut(id, requestBody) { - const result = await request_1.request({ + const result = await (0, request_1.request)({ method: 'PUT', path: `/api/scans/${id}`, body: requestBody, @@ -66,12 +66,12 @@ class ScanService { * Delete the scan whose id you provided.
If no scan with this id exists it will just return 204(no content). * @param id * @param force - * @returns ResponseScan - * @returns ResponseEmpty + * @result ResponseScan + * @result ResponseEmpty * @throws ApiError */ static async scanControllerRemove(id, force) { - const result = await request_1.request({ + const result = await (0, request_1.request)({ method: 'DELETE', path: `/api/scans/${id}`, query: { @@ -84,11 +84,11 @@ class ScanService { * Post track scans * Create a new track scan (for "normal" scans use /scans instead).
Please remember that to provide the scan's card's station's id. * @param requestBody CreateTrackScan - * @returns ResponseTrackScan + * @result ResponseTrackScan * @throws ApiError */ static async scanControllerPostTrackScans(requestBody) { - const result = await request_1.request({ + const result = await (0, request_1.request)({ method: 'POST', path: `/api/scans/trackscans`, body: requestBody, @@ -100,11 +100,11 @@ class ScanService { * Update the track scan (not "normal" scan use /scans/trackscans/:id instead) whose id you provided.
Please remember that only the validity, runner and track can be changed. * @param id * @param requestBody UpdateTrackScan - * @returns ResponseTrackScan + * @result ResponseTrackScan * @throws ApiError */ static async scanControllerPutTrackScan(id, requestBody) { - const result = await request_1.request({ + const result = await (0, request_1.request)({ method: 'PUT', path: `/api/scans/trackscans/${id}`, body: requestBody, diff --git a/dist/services/ScanStationService.d.ts b/dist/services/ScanStationService.d.ts index 43375a0..79ee286 100644 --- a/dist/services/ScanStationService.d.ts +++ b/dist/services/ScanStationService.d.ts @@ -6,7 +6,7 @@ export declare class ScanStationService { /** * Get all * Lists all stations.
This includes their associated tracks. - * @returns ResponseScanStation + * @result ResponseScanStation * @throws ApiError */ static scanStationControllerGetAll(): Promise>; @@ -14,7 +14,7 @@ export declare class ScanStationService { * Post * Create a new station.
Please remeber to provide the station's track's id.
Please also remember that the station key is only visibe on creation. * @param requestBody CreateScanStation - * @returns ResponseScanStation + * @result ResponseScanStation * @throws ApiError */ static scanStationControllerPost(requestBody?: CreateScanStation): Promise; @@ -22,7 +22,7 @@ export declare class ScanStationService { * Get one * Lists all information about the station whose id got provided.
This includes it's associated track. * @param id - * @returns ResponseScanStation + * @result ResponseScanStation * @throws ApiError */ static scanStationControllerGetOne(id: number): Promise; @@ -31,7 +31,7 @@ export declare class ScanStationService { * Update the station whose id you provided.
Please remember that only the description and enabled state can be changed. * @param id * @param requestBody UpdateScanStation - * @returns ResponseScanStation + * @result ResponseScanStation * @throws ApiError */ static scanStationControllerPut(id: number, requestBody?: UpdateScanStation): Promise; @@ -40,8 +40,8 @@ export declare class ScanStationService { * Delete the station whose id you provided.
If no station with this id exists it will just return 204(no content).
If the station still has scans associated you have to provide the force=true query param (warning: this deletes all scans associated with/created by this station - please disable it instead). * @param id * @param force - * @returns ResponseScanStation - * @returns ResponseEmpty + * @result ResponseScanStation + * @result ResponseEmpty * @throws ApiError */ static scanStationControllerRemove(id: number, force?: boolean): Promise; diff --git a/dist/services/ScanStationService.js b/dist/services/ScanStationService.js index f14c4fa..9c5ce94 100644 --- a/dist/services/ScanStationService.js +++ b/dist/services/ScanStationService.js @@ -6,11 +6,11 @@ class ScanStationService { /** * Get all * Lists all stations.
This includes their associated tracks. - * @returns ResponseScanStation + * @result ResponseScanStation * @throws ApiError */ static async scanStationControllerGetAll() { - const result = await request_1.request({ + const result = await (0, request_1.request)({ method: 'GET', path: `/api/stations`, }); @@ -20,11 +20,11 @@ class ScanStationService { * Post * Create a new station.
Please remeber to provide the station's track's id.
Please also remember that the station key is only visibe on creation. * @param requestBody CreateScanStation - * @returns ResponseScanStation + * @result ResponseScanStation * @throws ApiError */ static async scanStationControllerPost(requestBody) { - const result = await request_1.request({ + const result = await (0, request_1.request)({ method: 'POST', path: `/api/stations`, body: requestBody, @@ -35,11 +35,11 @@ class ScanStationService { * Get one * Lists all information about the station whose id got provided.
This includes it's associated track. * @param id - * @returns ResponseScanStation + * @result ResponseScanStation * @throws ApiError */ static async scanStationControllerGetOne(id) { - const result = await request_1.request({ + const result = await (0, request_1.request)({ method: 'GET', path: `/api/stations/${id}`, }); @@ -50,11 +50,11 @@ class ScanStationService { * Update the station whose id you provided.
Please remember that only the description and enabled state can be changed. * @param id * @param requestBody UpdateScanStation - * @returns ResponseScanStation + * @result ResponseScanStation * @throws ApiError */ static async scanStationControllerPut(id, requestBody) { - const result = await request_1.request({ + const result = await (0, request_1.request)({ method: 'PUT', path: `/api/stations/${id}`, body: requestBody, @@ -66,12 +66,12 @@ class ScanStationService { * Delete the station whose id you provided.
If no station with this id exists it will just return 204(no content).
If the station still has scans associated you have to provide the force=true query param (warning: this deletes all scans associated with/created by this station - please disable it instead). * @param id * @param force - * @returns ResponseScanStation - * @returns ResponseEmpty + * @result ResponseScanStation + * @result ResponseEmpty * @throws ApiError */ static async scanStationControllerRemove(id, force) { - const result = await request_1.request({ + const result = await (0, request_1.request)({ method: 'DELETE', path: `/api/stations/${id}`, query: { diff --git a/dist/services/StatsClientService.d.ts b/dist/services/StatsClientService.d.ts index b917634..29d2d0a 100644 --- a/dist/services/StatsClientService.d.ts +++ b/dist/services/StatsClientService.d.ts @@ -5,7 +5,7 @@ export declare class StatsClientService { /** * Get all * Lists all stats clients. Please remember that the key can only be viewed on creation. - * @returns ResponseStatsClient + * @result ResponseStatsClient * @throws ApiError */ static statsClientControllerGetAll(): Promise>; @@ -13,7 +13,7 @@ export declare class StatsClientService { * Post * Create a new stats client.
Please remember that the client's key will be generated automaticly and that it can only be viewed on creation. * @param requestBody CreateStatsClient - * @returns ResponseStatsClient + * @result ResponseStatsClient * @throws ApiError */ static statsClientControllerPost(requestBody?: CreateStatsClient): Promise; @@ -21,7 +21,7 @@ export declare class StatsClientService { * Get one * Lists all information about the stats client whose id got provided. Please remember that the key can only be viewed on creation. * @param id - * @returns ResponseStatsClient + * @result ResponseStatsClient * @throws ApiError */ static statsClientControllerGetOne(id: number): Promise; @@ -30,8 +30,8 @@ export declare class StatsClientService { * Delete the stats client whose id you provided.
If no client with this id exists it will just return 204(no content). * @param id * @param force - * @returns ResponseStatsClient - * @returns ResponseEmpty + * @result ResponseStatsClient + * @result ResponseEmpty * @throws ApiError */ static statsClientControllerRemove(id: number, force?: boolean): Promise; diff --git a/dist/services/StatsClientService.js b/dist/services/StatsClientService.js index 70ca3a5..cda7a4b 100644 --- a/dist/services/StatsClientService.js +++ b/dist/services/StatsClientService.js @@ -6,11 +6,11 @@ class StatsClientService { /** * Get all * Lists all stats clients. Please remember that the key can only be viewed on creation. - * @returns ResponseStatsClient + * @result ResponseStatsClient * @throws ApiError */ static async statsClientControllerGetAll() { - const result = await request_1.request({ + const result = await (0, request_1.request)({ method: 'GET', path: `/api/statsclients`, }); @@ -20,11 +20,11 @@ class StatsClientService { * Post * Create a new stats client.
Please remember that the client's key will be generated automaticly and that it can only be viewed on creation. * @param requestBody CreateStatsClient - * @returns ResponseStatsClient + * @result ResponseStatsClient * @throws ApiError */ static async statsClientControllerPost(requestBody) { - const result = await request_1.request({ + const result = await (0, request_1.request)({ method: 'POST', path: `/api/statsclients`, body: requestBody, @@ -35,11 +35,11 @@ class StatsClientService { * Get one * Lists all information about the stats client whose id got provided. Please remember that the key can only be viewed on creation. * @param id - * @returns ResponseStatsClient + * @result ResponseStatsClient * @throws ApiError */ static async statsClientControllerGetOne(id) { - const result = await request_1.request({ + const result = await (0, request_1.request)({ method: 'GET', path: `/api/statsclients/${id}`, }); @@ -50,12 +50,12 @@ class StatsClientService { * Delete the stats client whose id you provided.
If no client with this id exists it will just return 204(no content). * @param id * @param force - * @returns ResponseStatsClient - * @returns ResponseEmpty + * @result ResponseStatsClient + * @result ResponseEmpty * @throws ApiError */ static async statsClientControllerRemove(id, force) { - const result = await request_1.request({ + const result = await (0, request_1.request)({ method: 'DELETE', path: `/api/statsclients/${id}`, query: { diff --git a/dist/services/StatsService.d.ts b/dist/services/StatsService.d.ts index 7b758f0..57fba52 100644 --- a/dist/services/StatsService.d.ts +++ b/dist/services/StatsService.d.ts @@ -6,21 +6,21 @@ export declare class StatsService { /** * Get * A very basic stats endpoint providing basic counters for a dashboard or simmilar - * @returns ResponseStats + * @result ResponseStats * @throws ApiError */ static statsControllerGet(): Promise; /** * Get top runners by distance * Returns the top ten runners by distance. - * @returns ResponseStatsRunner + * @result ResponseStatsRunner * @throws ApiError */ static statsControllerGetTopRunnersByDistance(): Promise>; /** * Get top runners by donations * Returns the top ten runners by donations. - * @returns ResponseStatsRunner + * @result ResponseStatsRunner * @throws ApiError */ static statsControllerGetTopRunnersByDonations(): Promise>; @@ -28,42 +28,42 @@ export declare class StatsService { * Get top runners by laptime * Returns the top ten runners by fastest laptime on your selected track (track by id). * @param track - * @returns ResponseStatsRunner + * @result ResponseStatsRunner * @throws ApiError */ static statsControllerGetTopRunnersByLaptime(track?: number): Promise>; /** * Get top runners by track time * Returns the top ten fastest track times (with their runner and the runner's group). - * @returns ResponseStatsRunner + * @result ResponseStatsRunner * @throws ApiError */ static statsControllerGetTopRunnersByTrackTime(): Promise>; /** * Get top teams by distance * Returns the top ten teams by distance. - * @returns ResponseStatsTeam + * @result ResponseStatsTeam * @throws ApiError */ static statsControllerGetTopTeamsByDistance(): Promise>; /** * Get top teams by donations * Returns the top ten teams by donations. - * @returns ResponseStatsTeam + * @result ResponseStatsTeam * @throws ApiError */ static statsControllerGetTopTeamsByDonations(): Promise>; /** * Get top orgs by distance * Returns the top ten organizations by distance. - * @returns ResponseStatsOrgnisation + * @result ResponseStatsOrgnisation * @throws ApiError */ static statsControllerGetTopOrgsByDistance(): Promise>; /** * Get top orgs by donations * Returns the top ten organizations by donations. - * @returns ResponseStatsOrgnisation + * @result ResponseStatsOrgnisation * @throws ApiError */ static statsControllerGetTopOrgsByDonations(): Promise>; diff --git a/dist/services/StatsService.js b/dist/services/StatsService.js index 44d2994..1cbf692 100644 --- a/dist/services/StatsService.js +++ b/dist/services/StatsService.js @@ -6,11 +6,11 @@ class StatsService { /** * Get * A very basic stats endpoint providing basic counters for a dashboard or simmilar - * @returns ResponseStats + * @result ResponseStats * @throws ApiError */ static async statsControllerGet() { - const result = await request_1.request({ + const result = await (0, request_1.request)({ method: 'GET', path: `/api/stats`, }); @@ -19,11 +19,11 @@ class StatsService { /** * Get top runners by distance * Returns the top ten runners by distance. - * @returns ResponseStatsRunner + * @result ResponseStatsRunner * @throws ApiError */ static async statsControllerGetTopRunnersByDistance() { - const result = await request_1.request({ + const result = await (0, request_1.request)({ method: 'GET', path: `/api/stats/runners/distance`, }); @@ -32,11 +32,11 @@ class StatsService { /** * Get top runners by donations * Returns the top ten runners by donations. - * @returns ResponseStatsRunner + * @result ResponseStatsRunner * @throws ApiError */ static async statsControllerGetTopRunnersByDonations() { - const result = await request_1.request({ + const result = await (0, request_1.request)({ method: 'GET', path: `/api/stats/runners/donations`, }); @@ -46,11 +46,11 @@ class StatsService { * Get top runners by laptime * Returns the top ten runners by fastest laptime on your selected track (track by id). * @param track - * @returns ResponseStatsRunner + * @result ResponseStatsRunner * @throws ApiError */ static async statsControllerGetTopRunnersByLaptime(track) { - const result = await request_1.request({ + const result = await (0, request_1.request)({ method: 'GET', path: `/api/stats/runners/laptime`, query: { @@ -62,11 +62,11 @@ class StatsService { /** * Get top runners by track time * Returns the top ten fastest track times (with their runner and the runner's group). - * @returns ResponseStatsRunner + * @result ResponseStatsRunner * @throws ApiError */ static async statsControllerGetTopRunnersByTrackTime() { - const result = await request_1.request({ + const result = await (0, request_1.request)({ method: 'GET', path: `/api/stats/scans`, }); @@ -75,11 +75,11 @@ class StatsService { /** * Get top teams by distance * Returns the top ten teams by distance. - * @returns ResponseStatsTeam + * @result ResponseStatsTeam * @throws ApiError */ static async statsControllerGetTopTeamsByDistance() { - const result = await request_1.request({ + const result = await (0, request_1.request)({ method: 'GET', path: `/api/stats/teams/distance`, }); @@ -88,11 +88,11 @@ class StatsService { /** * Get top teams by donations * Returns the top ten teams by donations. - * @returns ResponseStatsTeam + * @result ResponseStatsTeam * @throws ApiError */ static async statsControllerGetTopTeamsByDonations() { - const result = await request_1.request({ + const result = await (0, request_1.request)({ method: 'GET', path: `/api/stats/teams/donations`, }); @@ -101,11 +101,11 @@ class StatsService { /** * Get top orgs by distance * Returns the top ten organizations by distance. - * @returns ResponseStatsOrgnisation + * @result ResponseStatsOrgnisation * @throws ApiError */ static async statsControllerGetTopOrgsByDistance() { - const result = await request_1.request({ + const result = await (0, request_1.request)({ method: 'GET', path: `/api/stats/organizations/distance`, }); @@ -114,11 +114,11 @@ class StatsService { /** * Get top orgs by donations * Returns the top ten organizations by donations. - * @returns ResponseStatsOrgnisation + * @result ResponseStatsOrgnisation * @throws ApiError */ static async statsControllerGetTopOrgsByDonations() { - const result = await request_1.request({ + const result = await (0, request_1.request)({ method: 'GET', path: `/api/stats/organizations/donations`, }); diff --git a/dist/services/StatusService.d.ts b/dist/services/StatusService.d.ts index b923096..d783578 100644 --- a/dist/services/StatusService.d.ts +++ b/dist/services/StatusService.d.ts @@ -2,14 +2,14 @@ export declare class StatusService { /** * Get * A very basic status/health endpoint that just checks if the database connection is available.
The available information depth will be expanded later. - * @returns any Successful response + * @result any Successful response * @throws ApiError */ static statusControllerGet(): Promise; /** * Get version * A very basic endpoint that just returns the curent package version. - * @returns any Successful response + * @result any Successful response * @throws ApiError */ static statusControllerGetVersion(): Promise; diff --git a/dist/services/StatusService.js b/dist/services/StatusService.js index c4709ae..068f207 100644 --- a/dist/services/StatusService.js +++ b/dist/services/StatusService.js @@ -9,11 +9,11 @@ class StatusService { /** * Get * A very basic status/health endpoint that just checks if the database connection is available.
The available information depth will be expanded later. - * @returns any Successful response + * @result any Successful response * @throws ApiError */ static async statusControllerGet() { - const result = await request_1.request({ + const result = await (0, request_1.request)({ method: 'GET', path: `/api/status`, }); @@ -22,11 +22,11 @@ class StatusService { /** * Get version * A very basic endpoint that just returns the curent package version. - * @returns any Successful response + * @result any Successful response * @throws ApiError */ static async statusControllerGetVersion() { - const result = await request_1.request({ + const result = await (0, request_1.request)({ method: 'GET', path: `/api/version`, }); diff --git a/dist/services/TrackService.d.ts b/dist/services/TrackService.d.ts index e6feb2b..c974848 100644 --- a/dist/services/TrackService.d.ts +++ b/dist/services/TrackService.d.ts @@ -6,7 +6,7 @@ export declare class TrackService { /** * Get all * Lists all tracks. - * @returns ResponseTrack + * @result ResponseTrack * @throws ApiError */ static trackControllerGetAll(): Promise>; @@ -14,7 +14,7 @@ export declare class TrackService { * Post * Create a new track.
Please remember that the track's distance must be greater than 0. * @param requestBody CreateTrack - * @returns ResponseTrack + * @result ResponseTrack * @throws ApiError */ static trackControllerPost(requestBody?: CreateTrack): Promise; @@ -22,7 +22,7 @@ export declare class TrackService { * Get one * Lists all information about the track whose id got provided. * @param id - * @returns ResponseTrack + * @result ResponseTrack * @throws ApiError */ static trackControllerGetOne(id: number): Promise; @@ -31,7 +31,7 @@ export declare class TrackService { * Update the track whose id you provided.
Please remember that ids can't be changed. * @param id * @param requestBody UpdateTrack - * @returns ResponseTrack + * @result ResponseTrack * @throws ApiError */ static trackControllerPut(id: number, requestBody?: UpdateTrack): Promise; @@ -40,8 +40,8 @@ export declare class TrackService { * Delete the track whose id you provided.
If no track with this id exists it will just return 204(no content). * @param id * @param force - * @returns ResponseTrack - * @returns ResponseEmpty + * @result ResponseTrack + * @result ResponseEmpty * @throws ApiError */ static trackControllerRemove(id: number, force?: boolean): Promise; diff --git a/dist/services/TrackService.js b/dist/services/TrackService.js index 982b98f..76c3658 100644 --- a/dist/services/TrackService.js +++ b/dist/services/TrackService.js @@ -6,11 +6,11 @@ class TrackService { /** * Get all * Lists all tracks. - * @returns ResponseTrack + * @result ResponseTrack * @throws ApiError */ static async trackControllerGetAll() { - const result = await request_1.request({ + const result = await (0, request_1.request)({ method: 'GET', path: `/api/tracks`, }); @@ -20,11 +20,11 @@ class TrackService { * Post * Create a new track.
Please remember that the track's distance must be greater than 0. * @param requestBody CreateTrack - * @returns ResponseTrack + * @result ResponseTrack * @throws ApiError */ static async trackControllerPost(requestBody) { - const result = await request_1.request({ + const result = await (0, request_1.request)({ method: 'POST', path: `/api/tracks`, body: requestBody, @@ -35,11 +35,11 @@ class TrackService { * Get one * Lists all information about the track whose id got provided. * @param id - * @returns ResponseTrack + * @result ResponseTrack * @throws ApiError */ static async trackControllerGetOne(id) { - const result = await request_1.request({ + const result = await (0, request_1.request)({ method: 'GET', path: `/api/tracks/${id}`, }); @@ -50,11 +50,11 @@ class TrackService { * Update the track whose id you provided.
Please remember that ids can't be changed. * @param id * @param requestBody UpdateTrack - * @returns ResponseTrack + * @result ResponseTrack * @throws ApiError */ static async trackControllerPut(id, requestBody) { - const result = await request_1.request({ + const result = await (0, request_1.request)({ method: 'PUT', path: `/api/tracks/${id}`, body: requestBody, @@ -66,12 +66,12 @@ class TrackService { * Delete the track whose id you provided.
If no track with this id exists it will just return 204(no content). * @param id * @param force - * @returns ResponseTrack - * @returns ResponseEmpty + * @result ResponseTrack + * @result ResponseEmpty * @throws ApiError */ static async trackControllerRemove(id, force) { - const result = await request_1.request({ + const result = await (0, request_1.request)({ method: 'DELETE', path: `/api/tracks/${id}`, query: { diff --git a/dist/services/UserGroupService.d.ts b/dist/services/UserGroupService.d.ts index 570ce18..c343dcb 100644 --- a/dist/services/UserGroupService.d.ts +++ b/dist/services/UserGroupService.d.ts @@ -9,7 +9,7 @@ export declare class UserGroupService { /** * Get all * Lists all groups.
The information provided might change while the project continues to evolve. - * @returns ResponseUserGroup + * @result ResponseUserGroup * @throws ApiError */ static userGroupControllerGetAll(): Promise>; @@ -17,7 +17,7 @@ export declare class UserGroupService { * Post * Create a new group.
If you want to grant permissions to the group you have to create them seperately by posting to /api/permissions after creating the group. * @param requestBody CreateUserGroup - * @returns any + * @result any * @throws ApiError */ static userGroupControllerPost(requestBody?: CreateUserGroup): Promise<(UserGroup | UserGroupNotFoundError)>; @@ -25,7 +25,7 @@ export declare class UserGroupService { * Get one * Lists all information about the group whose id got provided.
The information provided might change while the project continues to evolve. * @param id - * @returns ResponseUserGroup + * @result ResponseUserGroup * @throws ApiError */ static userGroupControllerGetOne(id: number): Promise; @@ -34,7 +34,7 @@ export declare class UserGroupService { * Update the group whose id you provided.
To change the permissions granted to the group please use /api/permissions instead.
Please remember that ids can't be changed. * @param id * @param requestBody UpdateUserGroup - * @returns UserGroup + * @result UserGroup * @throws ApiError */ static userGroupControllerPut(id: number, requestBody?: UpdateUserGroup): Promise; @@ -43,8 +43,8 @@ export declare class UserGroupService { * Delete the group whose id you provided.
If there are any permissions directly granted to the group they will get deleted as well.
Users associated with this group won't get deleted - just deassociated.
If no group with this id exists it will just return 204(no content). * @param id * @param force - * @returns ResponseUserGroup - * @returns ResponseEmpty + * @result ResponseUserGroup + * @result ResponseEmpty * @throws ApiError */ static userGroupControllerRemove(id: number, force?: boolean): Promise; @@ -52,7 +52,7 @@ export declare class UserGroupService { * Get permissions * Lists all permissions granted to the group as permission response objects. * @param id - * @returns ResponseUserGroupPermissions + * @result ResponseUserGroupPermissions * @throws ApiError */ static userGroupControllerGetPermissions(id: number): Promise; diff --git a/dist/services/UserGroupService.js b/dist/services/UserGroupService.js index 4f6f30c..36d41e6 100644 --- a/dist/services/UserGroupService.js +++ b/dist/services/UserGroupService.js @@ -6,11 +6,11 @@ class UserGroupService { /** * Get all * Lists all groups.
The information provided might change while the project continues to evolve. - * @returns ResponseUserGroup + * @result ResponseUserGroup * @throws ApiError */ static async userGroupControllerGetAll() { - const result = await request_1.request({ + const result = await (0, request_1.request)({ method: 'GET', path: `/api/usergroups`, }); @@ -20,11 +20,11 @@ class UserGroupService { * Post * Create a new group.
If you want to grant permissions to the group you have to create them seperately by posting to /api/permissions after creating the group. * @param requestBody CreateUserGroup - * @returns any + * @result any * @throws ApiError */ static async userGroupControllerPost(requestBody) { - const result = await request_1.request({ + const result = await (0, request_1.request)({ method: 'POST', path: `/api/usergroups`, body: requestBody, @@ -35,11 +35,11 @@ class UserGroupService { * Get one * Lists all information about the group whose id got provided.
The information provided might change while the project continues to evolve. * @param id - * @returns ResponseUserGroup + * @result ResponseUserGroup * @throws ApiError */ static async userGroupControllerGetOne(id) { - const result = await request_1.request({ + const result = await (0, request_1.request)({ method: 'GET', path: `/api/usergroups/${id}`, }); @@ -50,11 +50,11 @@ class UserGroupService { * Update the group whose id you provided.
To change the permissions granted to the group please use /api/permissions instead.
Please remember that ids can't be changed. * @param id * @param requestBody UpdateUserGroup - * @returns UserGroup + * @result UserGroup * @throws ApiError */ static async userGroupControllerPut(id, requestBody) { - const result = await request_1.request({ + const result = await (0, request_1.request)({ method: 'PUT', path: `/api/usergroups/${id}`, body: requestBody, @@ -66,12 +66,12 @@ class UserGroupService { * Delete the group whose id you provided.
If there are any permissions directly granted to the group they will get deleted as well.
Users associated with this group won't get deleted - just deassociated.
If no group with this id exists it will just return 204(no content). * @param id * @param force - * @returns ResponseUserGroup - * @returns ResponseEmpty + * @result ResponseUserGroup + * @result ResponseEmpty * @throws ApiError */ static async userGroupControllerRemove(id, force) { - const result = await request_1.request({ + const result = await (0, request_1.request)({ method: 'DELETE', path: `/api/usergroups/${id}`, query: { @@ -84,11 +84,11 @@ class UserGroupService { * Get permissions * Lists all permissions granted to the group as permission response objects. * @param id - * @returns ResponseUserGroupPermissions + * @result ResponseUserGroupPermissions * @throws ApiError */ static async userGroupControllerGetPermissions(id) { - const result = await request_1.request({ + const result = await (0, request_1.request)({ method: 'GET', path: `/api/usergroups/${id}/permissions`, }); diff --git a/dist/services/UserService.d.ts b/dist/services/UserService.d.ts index 2eed7ca..8a8bcb7 100644 --- a/dist/services/UserService.d.ts +++ b/dist/services/UserService.d.ts @@ -6,7 +6,7 @@ export declare class UserService { /** * Get all * Lists all users.
This includes their groups and permissions granted to them. - * @returns ResponseUser + * @result ResponseUser * @throws ApiError */ static userControllerGetAll(): Promise>; @@ -14,7 +14,7 @@ export declare class UserService { * Post * Create a new user.
If you want to grant permissions to the user you have to create them seperately by posting to /api/permissions after creating the user. * @param requestBody CreateUser - * @returns ResponseUser + * @result ResponseUser * @throws ApiError */ static userControllerPost(requestBody?: CreateUser): Promise; @@ -22,7 +22,7 @@ export declare class UserService { * Get one * Lists all information about the user whose id got provided.
Please remember that all permissions granted to the user will show up here. * @param id - * @returns ResponseUser + * @result ResponseUser * @throws ApiError */ static userControllerGetOne(id: number): Promise; @@ -31,7 +31,7 @@ export declare class UserService { * Update the user whose id you provided.
To change the permissions directly granted to the user please use /api/permissions instead.
Please remember that ids can't be changed. * @param id * @param requestBody UpdateUser - * @returns ResponseUser + * @result ResponseUser * @throws ApiError */ static userControllerPut(id: number, requestBody?: UpdateUser): Promise; @@ -40,8 +40,8 @@ export declare class UserService { * Delete the user whose id you provided.
You have to confirm your decision by providing the ?force=true query param.
If there are any permissions directly granted to the user they will get deleted as well.
If no user with this id exists it will just return 204(no content). * @param id * @param force - * @returns ResponseUser - * @returns ResponseEmpty + * @result ResponseUser + * @result ResponseEmpty * @throws ApiError */ static userControllerRemove(id: number, force?: boolean): Promise; @@ -49,7 +49,7 @@ export declare class UserService { * Get permissions * Lists all permissions granted to the user sorted into directly granted and inherited as permission response objects. * @param id - * @returns ResponseUser + * @result ResponseUser * @throws ApiError */ static userControllerGetPermissions(id: number): Promise; diff --git a/dist/services/UserService.js b/dist/services/UserService.js index 02b0d68..3a39c41 100644 --- a/dist/services/UserService.js +++ b/dist/services/UserService.js @@ -6,11 +6,11 @@ class UserService { /** * Get all * Lists all users.
This includes their groups and permissions granted to them. - * @returns ResponseUser + * @result ResponseUser * @throws ApiError */ static async userControllerGetAll() { - const result = await request_1.request({ + const result = await (0, request_1.request)({ method: 'GET', path: `/api/users`, }); @@ -20,11 +20,11 @@ class UserService { * Post * Create a new user.
If you want to grant permissions to the user you have to create them seperately by posting to /api/permissions after creating the user. * @param requestBody CreateUser - * @returns ResponseUser + * @result ResponseUser * @throws ApiError */ static async userControllerPost(requestBody) { - const result = await request_1.request({ + const result = await (0, request_1.request)({ method: 'POST', path: `/api/users`, body: requestBody, @@ -35,11 +35,11 @@ class UserService { * Get one * Lists all information about the user whose id got provided.
Please remember that all permissions granted to the user will show up here. * @param id - * @returns ResponseUser + * @result ResponseUser * @throws ApiError */ static async userControllerGetOne(id) { - const result = await request_1.request({ + const result = await (0, request_1.request)({ method: 'GET', path: `/api/users/${id}`, }); @@ -50,11 +50,11 @@ class UserService { * Update the user whose id you provided.
To change the permissions directly granted to the user please use /api/permissions instead.
Please remember that ids can't be changed. * @param id * @param requestBody UpdateUser - * @returns ResponseUser + * @result ResponseUser * @throws ApiError */ static async userControllerPut(id, requestBody) { - const result = await request_1.request({ + const result = await (0, request_1.request)({ method: 'PUT', path: `/api/users/${id}`, body: requestBody, @@ -66,12 +66,12 @@ class UserService { * Delete the user whose id you provided.
You have to confirm your decision by providing the ?force=true query param.
If there are any permissions directly granted to the user they will get deleted as well.
If no user with this id exists it will just return 204(no content). * @param id * @param force - * @returns ResponseUser - * @returns ResponseEmpty + * @result ResponseUser + * @result ResponseEmpty * @throws ApiError */ static async userControllerRemove(id, force) { - const result = await request_1.request({ + const result = await (0, request_1.request)({ method: 'DELETE', path: `/api/users/${id}`, query: { @@ -84,11 +84,11 @@ class UserService { * Get permissions * Lists all permissions granted to the user sorted into directly granted and inherited as permission response objects. * @param id - * @returns ResponseUser + * @result ResponseUser * @throws ApiError */ static async userControllerGetPermissions(id) { - const result = await request_1.request({ + const result = await (0, request_1.request)({ method: 'GET', path: `/api/users/${id}/permissions`, }); diff --git a/openapi.json b/openapi.json index cf9b8e7..1d98e70 100644 --- a/openapi.json +++ b/openapi.json @@ -1 +1 @@ -{"components":{"schemas":{"IllegalJWTError":{"properties":{"name":{"type":"string"},"message":{"type":"string"}},"type":"object","required":["name","message"]},"UserNonexistantOrRefreshtokenInvalidError":{"properties":{"name":{"type":"string"},"message":{"type":"string"}},"type":"object","required":["name","message"]},"InvalidCredentialsError":{"properties":{"name":{"type":"string"},"message":{"type":"string"}},"type":"object","required":["name","message"]},"NoPermissionError":{"properties":{"name":{"type":"string"},"message":{"type":"string"}},"type":"object","required":["name","message"]},"UsernameOrEmailNeededError":{"properties":{"name":{"type":"string"},"message":{"type":"string"}},"type":"object","required":["name","message"]},"PasswordNeededError":{"properties":{"name":{"type":"string"},"message":{"type":"string"}},"type":"object","required":["name","message"]},"UserNotFoundError":{"properties":{"name":{"type":"string"},"message":{"type":"string"}},"type":"object","required":["name","message"]},"JwtNotProvidedError":{"properties":{"name":{"type":"string"},"message":{"type":"string"}},"type":"object","required":["name","message"]},"UserNotFoundOrRefreshTokenCountInvalidError":{"properties":{"name":{"type":"string"},"message":{"type":"string"}},"type":"object","required":["name","message"]},"RefreshTokenCountInvalidError":{"properties":{"name":{"type":"string"},"message":{"type":"string"}},"type":"object","required":["name","message"]},"ResetAlreadyRequestedError":{"properties":{"name":{"type":"string"},"message":{"type":"string"}},"type":"object","required":["name","message"]},"UserDisabledError":{"properties":{"name":{"type":"string"},"message":{"type":"string"}},"type":"object","required":["name","message"]},"JwtUser":{"properties":{"id":{"type":"integer"},"uuid":{"format":"uuid","type":"string"},"email":{"format":"email","type":"string"},"username":{"type":"string"},"firstname":{"minLength":1,"type":"string"},"middlename":{"type":"string"},"lastname":{"minLength":1,"type":"string"},"enabled":{"type":"boolean"},"refreshTokenCount":{"minLength":1,"type":"integer"},"profilePic":{"type":"string"}},"type":"object","required":["id","uuid","firstname","lastname","enabled","refreshTokenCount"]},"ResponsePrincipal":{"properties":{"id":{"type":"integer"}},"type":"object","required":["id"]},"ResponseUser":{"properties":{"firstname":{"type":"string"},"middlename":{"type":"string"},"lastname":{"type":"string"},"phone":{"type":"string"},"email":{"type":"string"},"username":{"type":"string"},"enabled":{"type":"boolean"},"profilePic":{"type":"string"},"groups":{"items":{},"type":"array"},"permissions":{"items":{},"type":"array"},"id":{"type":"integer"}},"type":"object","required":["firstname","middlename","lastname","phone","email","username","enabled","profilePic","id"]},"ResponsePermission":{"properties":{"id":{"type":"integer"},"principal":{"minLength":1,"type":"object"},"target":{"enum":["RUNNER","ORGANIZATION","TEAM","TRACK","USER","USERGROUP","PERMISSION","STATSCLIENT","DONOR","SCAN","STATION","CARD","DONATION","CONTACT","MAIL"],"type":"string","minLength":1},"action":{"enum":["GET","CREATE","UPDATE","DELETE","IMPORT"],"type":"string","minLength":1}},"type":"object","required":["id","principal","target","action"]},"Permission":{"properties":{"id":{"type":"integer"},"target":{"enum":["RUNNER","ORGANIZATION","TEAM","TRACK","USER","USERGROUP","PERMISSION","STATSCLIENT","DONOR","SCAN","STATION","CARD","DONATION","CONTACT","MAIL"],"type":"string","minLength":1},"action":{"enum":["GET","CREATE","UPDATE","DELETE","IMPORT"],"type":"string"}},"type":"object","required":["id","target","action"]},"Principal":{"properties":{"id":{"type":"integer"}},"type":"object","required":["id"]},"UserAction":{"properties":{"id":{"type":"integer"},"target":{"type":"string","minLength":1},"action":{"enum":["GET","CREATE","UPDATE","DELETE","IMPORT"],"type":"string"},"changed":{"type":"string"}},"type":"object","required":["id","target","action"]},"ResponseUserGroup":{"properties":{"name":{"type":"string","minLength":1},"description":{"type":"string"},"permissions":{"items":{},"type":"array"},"id":{"type":"integer"}},"type":"object","required":["name","id"]},"UserGroup":{"properties":{"name":{"type":"string","minLength":1},"description":{"type":"string"},"id":{"type":"integer"}},"type":"object","required":["name","id"]},"User":{"properties":{"uuid":{"format":"uuid","type":"string"},"email":{"minLength":1,"type":"string","format":"email"},"phone":{"type":"string"},"username":{"type":"string"},"firstname":{"minLength":1,"type":"string"},"middlename":{"type":"string"},"lastname":{"minLength":1,"type":"string"},"password":{"minLength":1,"type":"string"},"groups":{},"enabled":{"type":"boolean"},"refreshTokenCount":{"type":"integer"},"profilePic":{"format":"url","type":"string"},"resetRequestedTimestamp":{"type":"string"},"actions":{},"id":{"type":"integer"}},"type":"object","required":["uuid","email","username","firstname","lastname","password","enabled","refreshTokenCount","profilePic","id"]},"MailSendingError":{"properties":{"name":{"type":"string"},"message":{"type":"string"}},"type":"object","required":["name","message"]},"UsernameContainsIllegalCharacterError":{"properties":{"name":{"type":"string"},"message":{"type":"string"}},"type":"object","required":["name","message"]},"UserEmailNeededError":{"properties":{"name":{"type":"string"},"message":{"type":"string"}},"type":"object","required":["name","message"]},"UserIdsNotMatchingError":{"properties":{"name":{"type":"string"},"message":{"type":"string"}},"type":"object","required":["name","message"]},"UserDeletionNotConfirmedError":{"properties":{"name":{"type":"string"},"message":{"type":"string"}},"type":"object","required":["name","message"]},"PasswordMustContainUppercaseLetterError":{"properties":{"name":{"type":"string"},"message":{"type":"string"}},"type":"object","required":["name","message"]},"PasswordMustContainLowercaseLetterError":{"properties":{"name":{"type":"string"},"message":{"type":"string"}},"type":"object","required":["name","message"]},"PasswordMustContainNumberError":{"properties":{"name":{"type":"string"},"message":{"type":"string"}},"type":"object","required":["name","message"]},"PasswordTooShortError":{"properties":{"name":{"type":"string"},"message":{"type":"string"}},"type":"object","required":["name","message"]},"ResponseAuth":{"properties":{"access_token":{"type":"string"},"refresh_token":{"type":"string"},"access_token_expires_at":{"type":"integer"},"refresh_token_expires_at":{"type":"integer"}},"type":"object","required":["access_token","refresh_token","access_token_expires_at","refresh_token_expires_at"]},"CreateAuth":{"properties":{"username":{"type":"string"},"email":{"type":"string","format":"email"},"password":{"type":"string","minLength":1}},"type":"object","required":["password"]},"CreateResetToken":{"properties":{"email":{"type":"string","format":"email","minLength":1}},"type":"object","required":["email"]},"Logout":{"properties":{"timestamp":{"type":"string"}},"type":"object","required":["timestamp"]},"HandleLogout":{"properties":{"token":{"type":"string"}},"type":"object"},"RefreshAuth":{"properties":{"token":{"type":"string"}},"type":"object"},"ResetPassword":{"properties":{"resetToken":{"type":"string"},"password":{"type":"string","minLength":1}},"type":"object","required":["password"]},"ResponseEmpty":{"properties":{"response":{"type":"string"}},"type":"object","required":["response"]},"DonationNotFoundError":{"properties":{"name":{"type":"string"},"message":{"type":"string"}},"type":"object","required":["name","message"]},"DonationIdsNotMatchingError":{"properties":{"name":{"type":"string"},"message":{"type":"string"}},"type":"object","required":["name","message"]},"DonorNotFoundError":{"properties":{"name":{"type":"string"},"message":{"type":"string"}},"type":"object","required":["name","message"]},"DonorIdsNotMatchingError":{"properties":{"name":{"type":"string"},"message":{"type":"string"}},"type":"object","required":["name","message"]},"DonorReceiptAddressNeededError":{"properties":{"name":{"type":"string"},"message":{"type":"string"}},"type":"object","required":["name","message"]},"DonorHasDonationsError":{"properties":{"name":{"type":"string"},"message":{"type":"string"}},"type":"object","required":["name","message"]},"RunnerNotFoundError":{"properties":{"name":{"type":"string"},"message":{"type":"string"}},"type":"object","required":["name","message"]},"RunnerIdsNotMatchingError":{"properties":{"name":{"type":"string"},"message":{"type":"string"}},"type":"object","required":["name","message"]},"RunnerGroupNeededError":{"properties":{"name":{"type":"string"},"message":{"type":"string"}},"type":"object","required":["name","message"]},"RunnerEmailNeededError":{"properties":{"name":{"type":"string"},"message":{"type":"string"}},"type":"object","required":["name","message"]},"RunnerSelfserviceTimeoutError":{"properties":{"name":{"type":"string"},"message":{"type":"string"}},"type":"object","required":["name","message"]},"RunnerHasDistanceDonationsError":{"properties":{"name":{"type":"string"},"message":{"type":"string"}},"type":"object","required":["name","message"]},"AddressPostalCodeInvalidError":{"properties":{"name":{"type":"string"},"message":{"type":"string"}},"type":"object","required":["name","message"]},"AddressFirstLineEmptyError":{"properties":{"name":{"type":"string"},"message":{"type":"string"}},"type":"object","required":["name","message"]},"AddressPostalCodeEmptyError":{"properties":{"name":{"type":"string"},"message":{"type":"string"}},"type":"object","required":["name","message"]},"AddressCityEmptyError":{"properties":{"name":{"type":"string"},"message":{"type":"string"}},"type":"object","required":["name","message"]},"AddressCountryEmptyError":{"properties":{"name":{"type":"string"},"message":{"type":"string"}},"type":"object","required":["name","message"]},"Address":{"properties":{"address1":{"type":"string"},"address2":{"type":"string"},"postalcode":{"type":"string"},"city":{"type":"string"},"country":{"type":"string"}},"type":"object","required":["address1","address2","postalcode","city","country"]},"ResponseParticipant":{"properties":{"id":{"type":"integer"},"firstname":{"type":"string"},"middlename":{"type":"string"},"lastname":{"type":"string"},"phone":{"type":"string"},"email":{"type":"string"},"address":{"type":"object"}},"type":"object","required":["id","firstname","middlename","lastname","phone","email"]},"ResponseDonor":{"properties":{"receiptNeeded":{"type":"boolean"},"donationAmount":{"type":"integer"},"paidDonationAmount":{"type":"integer"},"id":{"type":"integer"},"firstname":{"type":"string"},"middlename":{"type":"string"},"lastname":{"type":"string"},"phone":{"type":"string"},"email":{"type":"string"},"address":{"type":"object"}},"type":"object","required":["receiptNeeded","donationAmount","paidDonationAmount","id","firstname","middlename","lastname","phone","email"]},"ResponseDonation":{"properties":{"id":{"exclusiveMinimum":true,"minimum":0,"type":"integer"},"donor":{"minLength":1,"type":"string"},"amount":{"type":"integer"},"paidAmount":{"type":"integer"}},"type":"object","required":["id","donor","amount","paidAmount"]},"ResponseGroupContact":{"properties":{"id":{"type":"integer"},"firstname":{"type":"string"},"middlename":{"type":"string"},"lastname":{"type":"string"},"phone":{"type":"string"},"email":{"type":"string"},"groups":{"type":"object"},"address":{"type":"object"}},"type":"object","required":["id","firstname","middlename","lastname","phone","email","groups","address"]},"ResponseRunnerGroup":{"properties":{"id":{"minLength":1,"type":"integer"},"name":{"minLength":1,"type":"string"},"contact":{"type":"object"}},"type":"object","required":["id","name"]},"ResponseRunner":{"properties":{"distance":{"type":"integer"},"group":{"type":"object"},"id":{"type":"integer"},"firstname":{"type":"string"},"middlename":{"type":"string"},"lastname":{"type":"string"},"phone":{"type":"string"},"email":{"type":"string"},"address":{"type":"object"}},"type":"object","required":["distance","group","id","firstname","middlename","lastname","phone","email"]},"ResponseDistanceDonation":{"properties":{"runner":{"type":"object"},"amountPerDistance":{"exclusiveMinimum":true,"minimum":0,"type":"integer"},"id":{"exclusiveMinimum":true,"minimum":0,"type":"integer"},"donor":{"minLength":1,"type":"string"},"amount":{"type":"integer"},"paidAmount":{"type":"integer"}},"type":"object","required":["runner","amountPerDistance","id","donor","amount","paidAmount"]},"Participant":{"properties":{"id":{"type":"integer"},"firstname":{"type":"string","minLength":1},"middlename":{"type":"string"},"lastname":{"type":"string","minLength":1},"phone":{"type":"string"},"email":{"format":"email","type":"string"}},"type":"object","required":["id","firstname","lastname"]},"Donor":{"properties":{"receiptNeeded":{"type":"boolean"},"donationAmount":{"type":"integer"},"paidDonationAmount":{"type":"integer"},"id":{"type":"integer"},"firstname":{"type":"string","minLength":1},"middlename":{"type":"string"},"lastname":{"type":"string","minLength":1},"phone":{"type":"string"},"email":{"format":"email","type":"string"}},"type":"object","required":["receiptNeeded","donationAmount","paidDonationAmount","id","firstname","lastname"]},"Donation":{"properties":{"id":{"type":"integer"},"donor":{"minLength":1,"type":"string"},"paidAmount":{"type":"integer"}},"type":"object","required":["id","donor","paidAmount"]},"RunnerCardNotFoundError":{"properties":{"name":{"type":"string"},"message":{"type":"string"}},"type":"object","required":["name","message"]},"RunnerCardIdsNotMatchingError":{"properties":{"name":{"type":"string"},"message":{"type":"string"}},"type":"object","required":["name","message"]},"RunnerCardHasScansError":{"properties":{"name":{"type":"string"},"message":{"type":"string"}},"type":"object","required":["name","message"]},"RunnerCardIdOutOfRangeError":{"properties":{"name":{"type":"string"},"message":{"type":"string"}},"type":"object","required":["name","message"]},"ResponseRunnerCard":{"properties":{"id":{"type":"integer"},"runner":{"type":"object"},"code":{"minLength":1,"type":"string"},"enabled":{"type":"boolean"}},"type":"object","required":["id","runner","code","enabled"]},"ResponseScan":{"properties":{"id":{"type":"integer"},"runner":{"minLength":1,"type":"string"},"valid":{"type":"boolean"},"distance":{"exclusiveMinimum":true,"minimum":0,"type":"integer"}},"type":"object","required":["id","runner","valid","distance"]},"TrackNotFoundError":{"properties":{"name":{"type":"string"},"message":{"type":"string"}},"type":"object","required":["name","message"]},"TrackIdsNotMatchingError":{"properties":{"name":{"type":"string"},"message":{"type":"string"}},"type":"object","required":["name","message"]},"TrackLapTimeCantBeNegativeError":{"properties":{"name":{"type":"string"},"message":{"type":"string"}},"type":"object","required":["name","message"]},"TrackHasScanStationsError":{"properties":{"name":{"type":"string"},"message":{"type":"string"}},"type":"object","required":["name","message"]},"ResponseTrack":{"properties":{"id":{"type":"integer"},"name":{"type":"string"},"distance":{"type":"integer"},"minimumLapTime":{"type":"integer"}},"type":"object","required":["id","name","distance"]},"ResponseScanStation":{"properties":{"id":{"type":"integer"},"description":{"type":"string"},"key":{"type":"string"},"prefix":{"minLength":1,"type":"string"},"track":{"minLength":1,"type":"object"},"enabled":{"type":"boolean"}},"type":"object","required":["id","prefix","track","enabled"]},"ResponseTrackScan":{"properties":{"track":{"minLength":1,"type":"string"},"card":{"minLength":1,"type":"string"},"station":{"minLength":1,"type":"string"},"timestamp":{"minLength":1,"type":"string","pattern":"d{4}-[01]d-[0-3]dT[0-2]d:[0-5]d:[0-5]d.d+Z?"},"lapTime":{"type":"number"},"id":{"type":"integer"},"runner":{"minLength":1,"type":"string"},"valid":{"type":"boolean"},"distance":{"exclusiveMinimum":true,"minimum":0,"type":"integer"}},"type":"object","required":["track","card","station","timestamp","lapTime","id","runner","valid","distance"]},"Scan":{"properties":{"id":{"type":"integer"},"runner":{"minLength":1,"type":"string"},"valid":{"type":"boolean"},"_distance":{"type":"integer"},"distance":{"exclusiveMinimum":true,"minimum":0,"type":"integer"}},"type":"object","required":["id","runner","valid","_distance","distance"]},"Track":{"properties":{"id":{"type":"integer"},"name":{"minLength":1,"type":"string"},"distance":{"exclusiveMinimum":true,"minimum":0,"type":"integer"},"minimumLapTime":{"type":"integer"}},"type":"object","required":["id","name","distance"]},"ScanStation":{"properties":{"id":{"type":"integer"},"description":{"type":"string"},"track":{"minLength":1,"type":"string"},"prefix":{"type":"string"},"key":{"type":"string","minLength":1},"cleartextkey":{"type":"string"},"enabled":{"type":"boolean"}},"type":"object","required":["id","track","prefix","key","enabled"]},"TrackScan":{"properties":{"track":{"minLength":1,"type":"string"},"card":{"minLength":1,"type":"string"},"station":{"minLength":1,"type":"string"},"distance":{"exclusiveMinimum":true,"minimum":0,"type":"integer"},"timestamp":{"type":"integer"},"lapTime":{"type":"number"},"id":{"type":"integer"},"runner":{"minLength":1,"type":"string"},"valid":{"type":"boolean"},"_distance":{"type":"integer"}},"type":"object","required":["track","card","station","distance","timestamp","lapTime","id","runner","valid","_distance"]},"RunnerCard":{"properties":{"id":{"type":"integer"},"runner":{},"enabled":{"type":"boolean"}},"type":"object","required":["id","enabled"]},"GroupContact":{"properties":{"id":{"type":"integer"},"firstname":{"type":"string","minLength":1},"middlename":{"type":"string"},"lastname":{"type":"string","minLength":1},"phone":{"type":"string"},"email":{"format":"email","type":"string"}},"type":"object","required":["id","firstname","lastname"]},"RunnerGroup":{"properties":{"id":{"type":"integer"},"name":{"type":"string","minLength":1},"contact":{},"distance":{"type":"integer"},"distanceDonationAmount":{"type":"integer"}},"type":"object","required":["id","name","distance","distanceDonationAmount"]},"Runner":{"properties":{"group":{"minLength":1,"type":"string"},"resetRequestedTimestamp":{"type":"string"},"distance":{"type":"integer"},"distanceDonationAmount":{"type":"integer"},"id":{"type":"integer"},"firstname":{"type":"string","minLength":1},"middlename":{"type":"string"},"lastname":{"type":"string","minLength":1},"phone":{"type":"string"},"email":{"format":"email","type":"string"}},"type":"object","required":["group","distance","distanceDonationAmount","id","firstname","lastname"]},"DistanceDonation":{"properties":{"runner":{"minLength":1,"type":"string"},"amountPerDistance":{"exclusiveMinimum":true,"minimum":0,"type":"integer"},"id":{"type":"integer"},"donor":{"minLength":1,"type":"string"},"paidAmount":{"type":"integer"}},"type":"object","required":["runner","amountPerDistance","id","donor","paidAmount"]},"CreateDonation":{"properties":{"donor":{"exclusiveMinimum":true,"minimum":0,"type":"integer"},"paidAmount":{"type":"integer"}},"type":"object","required":["donor"]},"CreateDistanceDonation":{"properties":{"runner":{"exclusiveMinimum":true,"minimum":0,"type":"integer"},"amountPerDistance":{"exclusiveMinimum":true,"minimum":0,"type":"integer"},"donor":{"exclusiveMinimum":true,"minimum":0,"type":"integer"},"paidAmount":{"type":"integer"}},"type":"object","required":["runner","amountPerDistance","donor"]},"FixedDonation":{"properties":{"_amount":{"exclusiveMinimum":true,"minimum":0,"type":"integer"},"amount":{"exclusiveMinimum":true,"minimum":0,"type":"integer"},"id":{"type":"integer"},"donor":{"minLength":1,"type":"string"},"paidAmount":{"type":"integer"}},"type":"object","required":["_amount","amount","id","donor","paidAmount"]},"CreateFixedDonation":{"properties":{"amount":{"exclusiveMinimum":true,"minimum":0,"type":"integer"},"donor":{"exclusiveMinimum":true,"minimum":0,"type":"integer"},"paidAmount":{"type":"integer"}},"type":"object","required":["amount","donor"]},"UpdateDonation":{"properties":{"id":{"type":"integer"},"donor":{"exclusiveMinimum":true,"minimum":0,"type":"integer"},"paidAmount":{"type":"integer"}},"type":"object","required":["id","donor"]},"UpdateDistanceDonation":{"properties":{"runner":{"exclusiveMinimum":true,"minimum":0,"type":"integer"},"amountPerDistance":{"exclusiveMinimum":true,"minimum":0,"type":"integer"},"id":{"type":"integer"},"donor":{"exclusiveMinimum":true,"minimum":0,"type":"integer"},"paidAmount":{"type":"integer"}},"type":"object","required":["runner","amountPerDistance","id","donor"]},"UpdateFixedDonation":{"properties":{"amount":{"exclusiveMinimum":true,"minimum":0,"type":"integer"},"id":{"type":"integer"},"donor":{"exclusiveMinimum":true,"minimum":0,"type":"integer"},"paidAmount":{"type":"integer"}},"type":"object","required":["amount","id","donor"]},"CreateParticipant":{"properties":{"firstname":{"minLength":1,"type":"string"},"middlename":{"type":"string"},"lastname":{"minLength":1,"type":"string"},"phone":{"type":"string"},"email":{"format":"email","type":"string"},"address":{"type":"object"}},"type":"object","required":["firstname","lastname"]},"CreateDonor":{"properties":{"receiptNeeded":{"type":"boolean"},"firstname":{"minLength":1,"type":"string"},"middlename":{"type":"string"},"lastname":{"minLength":1,"type":"string"},"phone":{"type":"string"},"email":{"format":"email","type":"string"},"address":{"type":"object"}},"type":"object","required":["firstname","lastname"]},"UpdateDonor":{"properties":{"id":{"type":"integer"},"receiptNeeded":{"type":"boolean"},"firstname":{"minLength":1,"type":"string"},"middlename":{"type":"string"},"lastname":{"minLength":1,"type":"string"},"phone":{"type":"string"},"email":{"format":"email","type":"string"},"address":{"type":"object"}},"type":"object","required":["id","firstname","lastname"]},"GroupContactNotFoundError":{"properties":{"name":{"type":"string"},"message":{"type":"string"}},"type":"object","required":["name","message"]},"GroupContactIdsNotMatchingError":{"properties":{"name":{"type":"string"},"message":{"type":"string"}},"type":"object","required":["name","message"]},"RunnerGroupNotFoundError":{"properties":{"name":{"type":"string"},"message":{"type":"string"}},"type":"object","required":["name","message"]},"CreateGroupContact":{"properties":{"firstname":{"type":"string","minLength":1},"middlename":{"type":"string"},"lastname":{"type":"string","minLength":1},"address":{"type":"object"},"phone":{"type":"string"},"email":{"format":"email","type":"string"},"groups":{}},"type":"object","required":["firstname","lastname"]},"UpdateGroupContact":{"properties":{"id":{"type":"integer"},"firstname":{"type":"string","minLength":1},"middlename":{"type":"string"},"lastname":{"type":"string","minLength":1},"address":{"type":"object"},"phone":{"type":"string"},"email":{"format":"email","type":"string"},"groups":{}},"type":"object","required":["id","firstname","lastname"]},"RunnerOrganizationNotFoundError":{"properties":{"name":{"type":"string"},"message":{"type":"string"}},"type":"object","required":["name","message"]},"RunnerOrganizationIdsNotMatchingError":{"properties":{"name":{"type":"string"},"message":{"type":"string"}},"type":"object","required":["name","message"]},"RunnerOrganizationHasRunnersError":{"properties":{"name":{"type":"string"},"message":{"type":"string"}},"type":"object","required":["name","message"]},"RunnerOrganizationHasTeamsError":{"properties":{"name":{"type":"string"},"message":{"type":"string"}},"type":"object","required":["name","message"]},"RunnerOrganizationWrongTypeError":{"properties":{"name":{"type":"string"},"message":{"type":"string"}},"type":"object","required":["name","message"]},"ResponseRunnerOrganization":{"properties":{"address":{"type":"object"},"teams":{"items":{},"type":"array"},"registrationKey":{"format":"base64","type":"string"},"registrationEnabled":{"type":"boolean"},"id":{"minLength":1,"type":"integer"},"name":{"minLength":1,"type":"string"},"contact":{"type":"object"}},"type":"object","required":["teams","id","name"]},"ResponseRunnerTeam":{"properties":{"parentGroup":{"minLength":1,"type":"object"},"id":{"minLength":1,"type":"integer"},"name":{"minLength":1,"type":"string"},"contact":{"type":"object"}},"type":"object","required":["parentGroup","id","name"]},"RunnerTeam":{"properties":{"parentGroup":{"minLength":1,"type":"string"},"id":{"type":"integer"},"name":{"type":"string","minLength":1},"contact":{},"distance":{"type":"integer"},"distanceDonationAmount":{"type":"integer"}},"type":"object","required":["parentGroup","id","name","distance","distanceDonationAmount"]},"RunnerOrganization":{"properties":{"address":{},"key":{"type":"string"},"distance":{"type":"integer"},"distanceDonationAmount":{"type":"integer"},"id":{"type":"integer"},"name":{"type":"string","minLength":1},"contact":{}},"type":"object","required":["distance","distanceDonationAmount","id","name"]},"RunnerTeamNotFoundError":{"properties":{"name":{"type":"string"},"message":{"type":"string"}},"type":"object","required":["name","message"]},"RunnerTeamIdsNotMatchingError":{"properties":{"name":{"type":"string"},"message":{"type":"string"}},"type":"object","required":["name","message"]},"RunnerTeamHasRunnersError":{"properties":{"name":{"type":"string"},"message":{"type":"string"}},"type":"object","required":["name","message"]},"RunnerTeamNeedsParentError":{"properties":{"name":{"type":"string"},"message":{"type":"string"}},"type":"object","required":["name","message"]},"CreateRunner":{"properties":{"group":{"type":"integer"},"firstname":{"minLength":1,"type":"string"},"middlename":{"type":"string"},"lastname":{"minLength":1,"type":"string"},"phone":{"type":"string"},"email":{"format":"email","type":"string"},"address":{"type":"object"}},"type":"object","required":["group","firstname","lastname"]},"ImportRunner":{"properties":{"firstname":{"minLength":1,"type":"string"},"middlename":{"type":"string"},"lastname":{"minLength":1,"type":"string"},"team":{"type":"string"},"class":{"type":"string"}},"type":"object","required":["firstname","lastname"]},"UpdateRunner":{"properties":{"id":{"type":"integer"},"group":{"exclusiveMinimum":true,"minimum":0,"type":"integer"},"firstname":{"minLength":1,"type":"string"},"middlename":{"type":"string"},"lastname":{"minLength":1,"type":"string"},"phone":{"type":"string"},"email":{"format":"email","type":"string"},"address":{"type":"object"}},"type":"object","required":["id","group","firstname","lastname"]},"CreateRunnerCard":{"properties":{"runner":{"type":"integer"},"enabled":{"type":"boolean"}},"type":"object","required":["enabled"]},"UpdateRunnerCard":{"properties":{"id":{"exclusiveMinimum":true,"minimum":0,"type":"integer"},"runner":{"type":"integer"},"enabled":{"type":"boolean"}},"type":"object","required":["id","enabled"]},"ScanNotFoundError":{"properties":{"name":{"type":"string"},"message":{"type":"string"}},"type":"object","required":["name","message"]},"ScanIdsNotMatchingError":{"properties":{"name":{"type":"string"},"message":{"type":"string"}},"type":"object","required":["name","message"]},"ScanStationNotFoundError":{"properties":{"name":{"type":"string"},"message":{"type":"string"}},"type":"object","required":["name","message"]},"ScanStationIdsNotMatchingError":{"properties":{"name":{"type":"string"},"message":{"type":"string"}},"type":"object","required":["name","message"]},"ScanStationHasScansError":{"properties":{"name":{"type":"string"},"message":{"type":"string"}},"type":"object","required":["name","message"]},"CreateScan":{"properties":{"runner":{"exclusiveMinimum":true,"minimum":0,"type":"integer"},"valid":{"type":"boolean"},"distance":{"exclusiveMinimum":true,"minimum":0,"type":"integer"}},"type":"object","required":["runner","distance"]},"CreateTrackScan":{"properties":{"card":{"exclusiveMinimum":true,"minimum":0,"type":"integer"},"station":{"exclusiveMinimum":true,"minimum":0,"type":"integer"}},"type":"object","required":["card"]},"UpdateScan":{"properties":{"id":{"type":"integer"},"runner":{"exclusiveMinimum":true,"minimum":0,"type":"integer"},"valid":{"type":"boolean"},"distance":{"exclusiveMinimum":true,"minimum":0,"type":"integer"}},"type":"object","required":["id","runner","distance"]},"UpdateTrackScan":{"properties":{"id":{"type":"integer"},"runner":{"exclusiveMinimum":true,"minimum":0,"type":"integer"},"valid":{"type":"boolean"},"track":{"exclusiveMinimum":true,"minimum":0,"type":"integer"}},"type":"object","required":["id","runner","track"]},"GroupNameNeededError":{"properties":{"name":{"type":"string"},"message":{"type":"string"}},"type":"object","required":["name","message"]},"UserGroupNotFoundError":{"properties":{"name":{"type":"string"},"message":{"type":"string"}},"type":"object","required":["name","message"]},"UserGroupIdsNotMatchingError":{"properties":{"name":{"type":"string"},"message":{"type":"string"}},"type":"object","required":["name","message"]},"UpdateUser":{"properties":{"id":{"type":"integer"},"firstname":{"type":"string"},"middlename":{"type":"string"},"lastname":{"type":"string"},"username":{"type":"string"},"email":{"minLength":1,"type":"string","format":"email"},"phone":{"type":"string"},"password":{"type":"string"},"enabled":{"type":"boolean"},"groups":{},"profilePic":{"format":"url","type":"string"}},"type":"object","required":["id","firstname","lastname","email"]},"ResponseUserPermissions":{"properties":{"directlyGranted":{"items":{},"type":"array"},"inherited":{"items":{},"type":"array"}},"type":"object"},"PermissionNotFoundError":{"properties":{"name":{"type":"string"},"message":{"type":"string"}},"type":"object","required":["name","message"]},"PermissionIdsNotMatchingError":{"properties":{"name":{"type":"string"},"message":{"type":"string"}},"type":"object","required":["name","message"]},"PermissionNeedsPrincipalError":{"properties":{"name":{"type":"string"},"message":{"type":"string"}},"type":"object","required":["name","message"]},"PrincipalNotFoundError":{"properties":{"name":{"type":"string"},"message":{"type":"string"}},"type":"object","required":["name","message"]},"PrincipalWrongTypeError":{"properties":{"name":{"type":"string"},"message":{"type":"string"}},"type":"object","required":["name","message"]},"CreatePermission":{"properties":{"principal":{"minLength":1,"type":"integer"},"target":{"enum":["RUNNER","ORGANIZATION","TEAM","TRACK","USER","USERGROUP","PERMISSION","STATSCLIENT","DONOR","SCAN","STATION","CARD","DONATION","CONTACT","MAIL"],"type":"string","minLength":1},"action":{"enum":["GET","CREATE","UPDATE","DELETE","IMPORT"],"type":"string","minLength":1}},"type":"object","required":["principal","target","action"]},"UpdatePermission":{"properties":{"id":{"type":"integer"},"principal":{"exclusiveMinimum":true,"minimum":0,"type":"integer"},"target":{"minLength":1,"type":"string"},"action":{"minLength":1,"type":"string"}},"type":"object","required":["id","principal","target","action"]},"CreateRunnerGroup":{"properties":{"name":{"type":"string","minLength":1},"contact":{"type":"integer"}},"type":"object","required":["name"]},"CreateRunnerOrganization":{"properties":{"address":{"type":"object"},"registrationEnabled":{"type":"boolean"},"name":{"type":"string","minLength":1},"contact":{"type":"integer"}},"type":"object","required":["name"]},"UpdateRunnerOrganization":{"properties":{"id":{"type":"integer"},"address":{"type":"object"},"registrationEnabled":{"type":"boolean"},"name":{"type":"string","minLength":1},"contact":{"type":"integer"}},"type":"object","required":["id","name"]},"CreateRunnerTeam":{"properties":{"parentGroup":{"minLength":1,"type":"integer"},"name":{"type":"string","minLength":1},"contact":{"type":"integer"}},"type":"object","required":["parentGroup","name"]},"UpdateRunnerTeam":{"properties":{"id":{"type":"integer"},"parentGroup":{"exclusiveMinimum":true,"minimum":0,"type":"integer"},"name":{"type":"string","minLength":1},"contact":{"type":"integer"}},"type":"object","required":["id","parentGroup","name"]},"CreateSelfServiceCitizenRunner":{"properties":{"email":{"format":"email","type":"string","minLength":1},"firstname":{"minLength":1,"type":"string"},"middlename":{"type":"string"},"lastname":{"minLength":1,"type":"string"},"phone":{"type":"string"},"address":{"type":"object"}},"type":"object","required":["firstname","lastname"]},"CreateSelfServiceRunner":{"properties":{"team":{"type":"integer"},"firstname":{"minLength":1,"type":"string"},"middlename":{"type":"string"},"lastname":{"minLength":1,"type":"string"},"phone":{"type":"string"},"email":{"format":"email","type":"string"},"address":{"type":"object"}},"type":"object","required":["firstname","lastname"]},"ResponseSelfServiceTeam":{"properties":{"name":{"type":"string","minLength":1},"id":{"exclusiveMinimum":true,"minimum":0,"type":"integer"}},"type":"object","required":["name","id"]},"ResponseSelfServiceOrganisation":{"properties":{"name":{"type":"string","minLength":1},"teams":{"items":{},"type":"array"}},"type":"object","required":["name","teams"]},"ResponseSelfServiceDonor":{"properties":{"id":{"type":"integer"},"firstname":{"type":"string"},"middlename":{"type":"string"},"lastname":{"type":"string"}},"type":"object","required":["id","firstname","middlename","lastname"]},"ResponseSelfServiceDonation":{"properties":{"donor":{"minLength":1,"type":"string"},"amount":{"type":"integer"},"amountPerDistance":{"exclusiveMinimum":true,"minimum":0,"type":"integer"}},"type":"object","required":["donor","amount","amountPerDistance"]},"ResponseSelfServiceRunner":{"properties":{"distance":{"type":"integer"},"donationAmount":{"type":"integer"},"group":{"type":"string"},"distanceDonations":{"type":"string"},"token":{"type":"string"},"id":{"type":"integer"},"firstname":{"type":"string"},"middlename":{"type":"string"},"lastname":{"type":"string"},"phone":{"type":"string"},"email":{"type":"string"},"address":{"type":"object"}},"type":"object","required":["distance","donationAmount","group","distanceDonations","id","firstname","middlename","lastname","phone","email"]},"ResponseSelfServiceScan":{"properties":{"id":{"type":"integer"},"valid":{"type":"boolean"},"distance":{"exclusiveMinimum":true,"minimum":0,"type":"integer"},"lapTime":{"minLength":1,"type":"integer"}},"type":"object","required":["id","valid","distance","lapTime"]},"CreateScanStation":{"properties":{"description":{"type":"string"},"track":{"exclusiveMinimum":true,"minimum":0,"type":"integer"},"enabled":{"type":"boolean"}},"type":"object","required":["track"]},"UpdateScanStation":{"properties":{"id":{"type":"integer"},"description":{"type":"string"},"enabled":{"type":"boolean"}},"type":"object","required":["id"]},"StatsClientNotFoundError":{"properties":{"name":{"type":"string"},"message":{"type":"string"}},"type":"object","required":["name","message"]},"StatsClientIdsNotMatchingError":{"properties":{"name":{"type":"string"},"message":{"type":"string"}},"type":"object","required":["name","message"]},"ResponseStatsClient":{"properties":{"id":{"type":"integer"},"description":{"type":"string"},"key":{"type":"string"},"prefix":{"minLength":1,"type":"string"}},"type":"object","required":["id","prefix"]},"StatsClient":{"properties":{"id":{"type":"integer"},"description":{"type":"string"},"prefix":{"type":"string"},"key":{"type":"string"},"cleartextkey":{"type":"string"}},"type":"object","required":["id","prefix","key"]},"CreateStatsClient":{"properties":{"description":{"type":"string"}},"type":"object"},"ResponseStats":{"properties":{"total_runners":{"type":"integer"},"total_teams":{"type":"integer"},"total_orgs":{"type":"integer"},"total_users":{"type":"integer"},"total_scans":{"type":"integer"},"total_distance":{"type":"integer"},"total_donation":{"type":"integer"},"average_distance":{"type":"integer"}},"type":"object","required":["total_runners","total_teams","total_orgs","total_users","total_scans","total_distance","total_donation","average_distance"]},"ResponseStatsOrgnisation":{"properties":{"id":{"type":"integer"},"name":{"type":"string"},"distance":{"type":"integer"},"donationAmount":{"type":"integer"}},"type":"object","required":["id","name","distance","donationAmount"]},"ResponseStatsRunner":{"properties":{"id":{"type":"integer"},"firstname":{"type":"string"},"middlename":{"type":"string"},"lastname":{"type":"string"},"distance":{"type":"integer"},"donationAmount":{"type":"integer"},"minLaptime":{"type":"integer"},"group":{"type":"object"}},"type":"object","required":["id","firstname","middlename","lastname","distance","donationAmount","group"]},"ResponseStatsTeam":{"properties":{"id":{"type":"integer"},"name":{"type":"string"},"distance":{"type":"integer"},"donationAmount":{"type":"integer"},"parent":{"type":"object"}},"type":"object","required":["id","name","distance","donationAmount","parent"]},"CreateTrack":{"properties":{"name":{"minLength":1,"type":"string"},"distance":{"exclusiveMinimum":true,"minimum":0,"type":"integer"},"minimumLapTime":{"type":"integer"}},"type":"object","required":["name","distance"]},"UpdateTrack":{"properties":{"id":{"type":"integer"},"name":{"minLength":1,"type":"string"},"distance":{"exclusiveMinimum":true,"minimum":0,"type":"integer"},"minimumLapTime":{"type":"integer"}},"type":"object","required":["id","name","distance"]},"CreateUser":{"properties":{"firstname":{"type":"string"},"middlename":{"type":"string"},"lastname":{"type":"string"},"username":{"type":"string"},"email":{"minLength":1,"type":"string","format":"email"},"phone":{"type":"string"},"password":{"type":"string"},"enabled":{"type":"boolean"},"groups":{},"profilePic":{"format":"url","type":"string"}},"type":"object","required":["firstname","lastname","email","password"]},"CreateUserGroup":{"properties":{"name":{"type":"string"},"description":{"type":"string"}},"type":"object","required":["name"]},"UpdateUserGroup":{"properties":{"id":{"type":"integer"},"name":{"type":"string"},"description":{"type":"string"}},"type":"object","required":["id","name"]},"ResponseUserGroupPermissions":{"properties":{"directlyGranted":{"items":{},"type":"array"},"inherited":{"items":{},"type":"array"}},"type":"object"}},"securitySchemes":{"AuthToken":{"type":"http","scheme":"bearer","bearerFormat":"JWT","description":"A JWT based access token. Use /api/auth/login or /api/auth/refresh to get one."},"RefreshTokenCookie":{"type":"apiKey","in":"cookie","name":"lfk_backend__refresh_token","description":"A cookie containing a JWT based refreh token. Attention: Doesn't work in swagger-ui. Use /api/auth/login or /api/auth/refresh to get one."},"StatsApiToken":{"type":"http","scheme":"bearer","description":"Api token that can be obtained by creating a new stats client (post to /api/statsclients). Only valid for obtaining stats."},"StationApiToken":{"type":"http","scheme":"bearer","description":"Api token that can be obtained by creating a new scan station (post to /api/stations). Only valid for creating scans."}}},"info":{"title":"LfK! Backend API","version":"0.11.1","description":"The the backend API for the LfK! runner system.
[Imprint](/imprint) & [Privacy](/privacy)"},"openapi":"3.0.0","paths":{"/api/auth/login":{"post":{"operationId":"AuthController.login","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/CreateAuth"}}},"description":"CreateAuth","required":false},"responses":{"200":{"content":{"application/json":{"schema":{"oneOf":[{"$ref":"#/components/schemas/ResponseAuth"},{"$ref":"#/components/schemas/InvalidCredentialsError"},{"$ref":"#/components/schemas/UserNotFoundError"},{"$ref":"#/components/schemas/UsernameOrEmailNeededError"},{"$ref":"#/components/schemas/PasswordNeededError"},{"$ref":"#/components/schemas/InvalidCredentialsError"}]}}},"description":""}},"summary":"Login","tags":["Auth"],"description":"Login with your username/email and password.
You will receive: \n * access token (use it as a bearer token) \n * refresh token (will also be sent as a cookie)"}},"/api/auth/logout":{"post":{"operationId":"AuthController.logout","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/HandleLogout"}}},"description":"HandleLogout","required":false},"responses":{"200":{"content":{"application/json":{"schema":{"oneOf":[{"$ref":"#/components/schemas/Logout"},{"$ref":"#/components/schemas/InvalidCredentialsError"},{"$ref":"#/components/schemas/UserNotFoundError"},{"$ref":"#/components/schemas/UsernameOrEmailNeededError"},{"$ref":"#/components/schemas/PasswordNeededError"},{"$ref":"#/components/schemas/InvalidCredentialsError"}]}}},"description":""}},"summary":"Logout","tags":["Auth"],"description":"Logout using your refresh token.
This instantly invalidates all your access and refresh tokens.","security":[{"RefreshTokenCookie":[]}]}},"/api/auth/refresh":{"post":{"operationId":"AuthController.refresh","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/RefreshAuth"}}},"description":"RefreshAuth","required":false},"responses":{"200":{"content":{"application/json":{"schema":{"oneOf":[{"$ref":"#/components/schemas/ResponseAuth"},{"$ref":"#/components/schemas/JwtNotProvidedError"},{"$ref":"#/components/schemas/IllegalJWTError"},{"$ref":"#/components/schemas/UserNotFoundError"},{"$ref":"#/components/schemas/RefreshTokenCountInvalidError"}]}}},"description":""}},"summary":"Refresh","tags":["Auth"],"description":"Refresh your access and refresh tokens using a valid refresh token.
You will receive: \n * access token (use it as a bearer token) \n * refresh token (will also be sent as a cookie)","security":[{"RefreshTokenCookie":[]}]}},"/api/auth/reset":{"post":{"operationId":"AuthController.getResetToken","parameters":[{"in":"query","name":"locale","required":false,"schema":{"type":"string"}}],"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/CreateResetToken"}}},"description":"CreateResetToken","required":false},"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ResponseEmpty"}}},"description":""},"404":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/UserNotFoundError"}}},"description":""},"406":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/UsernameOrEmailNeededError"}}},"description":""},"500":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/MailSendingError"}}},"description":""}},"summary":"Get reset token","tags":["Auth"],"description":"Request a password reset token.
This will provide you with a reset token that you can use by posting to /api/auth/reset/{token}."}},"/api/auth/reset/{token}":{"post":{"operationId":"AuthController.resetPassword","parameters":[{"in":"path","name":"token","required":true,"schema":{"type":"string"}}],"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ResetPassword"}}},"description":"ResetPassword","required":false},"responses":{"200":{"content":{"application/json":{"schema":{"oneOf":[{"$ref":"#/components/schemas/ResponseAuth"},{"$ref":"#/components/schemas/UserNotFoundError"},{"$ref":"#/components/schemas/UsernameOrEmailNeededError"}]}}},"description":""}},"summary":"Reset password","tags":["Auth"],"description":"Reset a user's utilising a valid password reset token.
This will set the user's password to the one you provided in the body.
To get a reset token post to /api/auth/reset with your username."}},"/api/donations":{"get":{"operationId":"DonationController.getAll","responses":{"200":{"content":{"application/json":{"schema":{"oneOf":[{"items":{"$ref":"#/components/schemas/ResponseDonation"},"type":"array"},{"items":{"$ref":"#/components/schemas/ResponseDistanceDonation"},"type":"array"}]}}},"description":""}},"summary":"Get all","tags":["Donation"],"security":[{"AuthToken":[]},{"RefreshTokenCookie":[]}],"description":"Lists all donations (fixed or distance based) from all donors.
This includes the donations's runner's distance ran(if distance donation)."}},"/api/donations/{id}":{"get":{"operationId":"DonationController.getOne","parameters":[{"in":"path","name":"id","required":true,"schema":{"type":"number"}}],"responses":{"200":{"content":{"application/json":{"schema":{"oneOf":[{"$ref":"#/components/schemas/ResponseDonation"},{"$ref":"#/components/schemas/ResponseDistanceDonation"}]}}},"description":""},"404":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/DonationNotFoundError"}}},"description":""}},"summary":"Get one","tags":["Donation"],"security":[{"AuthToken":[]},{"RefreshTokenCookie":[]}],"description":"Lists all information about the donation whose id got provided. This includes the donation's runner's distance ran (if distance donation)."},"delete":{"operationId":"DonationController.remove","parameters":[{"in":"path","name":"id","required":true,"schema":{"type":"number"}},{"in":"query","name":"force","required":false,"schema":{"type":"boolean"}}],"responses":{"200":{"content":{"application/json":{"schema":{"oneOf":[{"$ref":"#/components/schemas/ResponseDonation"},{"$ref":"#/components/schemas/ResponseDistanceDonation"}]}}},"description":""},"204":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ResponseEmpty"}}},"description":""}},"summary":"Remove","tags":["Donation"],"security":[{"AuthToken":[]},{"RefreshTokenCookie":[]}],"description":"Delete the donation whose id you provided.
If no donation with this id exists it will just return 204(no content)."}},"/api/donations/fixed":{"post":{"operationId":"DonationController.postFixed","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/CreateFixedDonation"}}},"description":"CreateFixedDonation","required":false},"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ResponseDonation"}}},"description":""},"404":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/DonorNotFoundError"}}},"description":""}},"summary":"Post fixed","tags":["Donation"],"security":[{"AuthToken":[]},{"RefreshTokenCookie":[]}],"description":"Create a fixed donation (not distance donation - use /donations/distance instead).
Please rmemember to provide the donation's donors's id and amount."}},"/api/donations/distance":{"post":{"operationId":"DonationController.postDistance","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/CreateDistanceDonation"}}},"description":"CreateDistanceDonation","required":false},"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ResponseDistanceDonation"}}},"description":""},"404":{"content":{"application/json":{"schema":{"oneOf":[{"$ref":"#/components/schemas/DonorNotFoundError"},{"$ref":"#/components/schemas/RunnerNotFoundError"}]}}},"description":""}},"summary":"Post distance","tags":["Donation"],"security":[{"AuthToken":[]},{"RefreshTokenCookie":[]}],"description":"Create a distance donation (not fixed donation - use /donations/fixed instead).
Please rmemember to provide the donation's donors's and runners ids and amount per distance (kilometer)."}},"/api/donations/fixed/{id}":{"put":{"operationId":"DonationController.putFixed","parameters":[{"in":"path","name":"id","required":true,"schema":{"type":"number"}}],"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/UpdateFixedDonation"}}},"description":"UpdateFixedDonation","required":false},"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ResponseDonation"}}},"description":""},"404":{"content":{"application/json":{"schema":{"oneOf":[{"$ref":"#/components/schemas/DonationNotFoundError"},{"$ref":"#/components/schemas/DonorNotFoundError"},{"$ref":"#/components/schemas/RunnerNotFoundError"}]}}},"description":""},"406":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/DonationIdsNotMatchingError"}}},"description":""}},"summary":"Put fixed","tags":["Donation"],"security":[{"AuthToken":[]},{"RefreshTokenCookie":[]}],"description":"Update the fixed donation (not distance donation - use /donations/distance instead) whose id you provided.
Please remember that ids can't be changed and amounts must be positive."}},"/api/donations/distance/{id}":{"put":{"operationId":"DonationController.putDistance","parameters":[{"in":"path","name":"id","required":true,"schema":{"type":"number"}}],"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/UpdateDistanceDonation"}}},"description":"UpdateDistanceDonation","required":false},"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ResponseDonation"}}},"description":""},"404":{"content":{"application/json":{"schema":{"oneOf":[{"$ref":"#/components/schemas/DonationNotFoundError"},{"$ref":"#/components/schemas/DonorNotFoundError"},{"$ref":"#/components/schemas/RunnerNotFoundError"}]}}},"description":""},"406":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/DonationIdsNotMatchingError"}}},"description":""}},"summary":"Put distance","tags":["Donation"],"security":[{"AuthToken":[]},{"RefreshTokenCookie":[]}],"description":"Update the distance donation (not fixed donation - use /donations/fixed instead) whose id you provided.
Please remember that ids can't be changed and amountPerDistance must be positive."}},"/api/donors":{"get":{"operationId":"DonorController.getAll","responses":{"200":{"content":{"application/json":{"schema":{"items":{"$ref":"#/components/schemas/ResponseDonor"},"type":"array"}}},"description":""}},"summary":"Get all","tags":["Donor"],"security":[{"AuthToken":[]},{"RefreshTokenCookie":[]}],"description":"Lists all donor.
This includes the donor's current donation amount."},"post":{"operationId":"DonorController.post","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/CreateDonor"}}},"description":"CreateDonor","required":false},"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ResponseDonor"}}},"description":""}},"summary":"Post","tags":["Donor"],"security":[{"AuthToken":[]},{"RefreshTokenCookie":[]}],"description":"Create a new donor."}},"/api/donors/{id}":{"get":{"operationId":"DonorController.getOne","parameters":[{"in":"path","name":"id","required":true,"schema":{"type":"number"}}],"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ResponseDonor"}}},"description":""},"404":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/DonorNotFoundError"}}},"description":""}},"summary":"Get one","tags":["Donor"],"security":[{"AuthToken":[]},{"RefreshTokenCookie":[]}],"description":"Lists all information about the donor whose id got provided.
This includes the donor's current donation amount."},"put":{"operationId":"DonorController.put","parameters":[{"in":"path","name":"id","required":true,"schema":{"type":"number"}}],"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/UpdateDonor"}}},"description":"UpdateDonor","required":false},"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ResponseDonor"}}},"description":""},"404":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/DonorNotFoundError"}}},"description":""},"406":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/DonorIdsNotMatchingError"}}},"description":""}},"summary":"Put","tags":["Donor"],"security":[{"AuthToken":[]},{"RefreshTokenCookie":[]}],"description":"Update the donor whose id you provided.
Please remember that ids can't be changed."},"delete":{"operationId":"DonorController.remove","parameters":[{"in":"path","name":"id","required":true,"schema":{"type":"number"}},{"in":"query","name":"force","required":false,"schema":{"type":"boolean"}}],"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ResponseDonor"}}},"description":""},"204":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ResponseEmpty"}}},"description":""}},"summary":"Remove","tags":["Donor"],"security":[{"AuthToken":[]},{"RefreshTokenCookie":[]}],"description":"Delete the donor whose id you provided.
If no donor with this id exists it will just return 204(no content).
If the donor still has donations associated this will fail, please provide the query param ?force=true to delete the donor with all associated donations."}},"/api/contacts":{"get":{"operationId":"GroupContactController.getAll","responses":{"200":{"content":{"application/json":{"schema":{"items":{"$ref":"#/components/schemas/ResponseGroupContact"},"type":"array"}}},"description":""}},"summary":"Get all","tags":["Group Contact"],"security":[{"AuthToken":[]},{"RefreshTokenCookie":[]}],"description":"Lists all contacts.
This includes the contact's associated groups."},"post":{"operationId":"GroupContactController.post","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/CreateGroupContact"}}},"description":"CreateGroupContact","required":false},"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ResponseGroupContact"}}},"description":""},"404":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/RunnerGroupNotFoundError"}}},"description":""}},"summary":"Post","tags":["Group Contact"],"security":[{"AuthToken":[]},{"RefreshTokenCookie":[]}],"description":"Create a new contact."}},"/api/contacts/{id}":{"get":{"operationId":"GroupContactController.getOne","parameters":[{"in":"path","name":"id","required":true,"schema":{"type":"number"}}],"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ResponseGroupContact"}}},"description":""},"404":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/GroupContactNotFoundError"}}},"description":""}},"summary":"Get one","tags":["Group Contact"],"security":[{"AuthToken":[]},{"RefreshTokenCookie":[]}],"description":"Lists all information about the contact whose id got provided.
This includes the contact's associated groups."},"put":{"operationId":"GroupContactController.put","parameters":[{"in":"path","name":"id","required":true,"schema":{"type":"number"}}],"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/UpdateGroupContact"}}},"description":"UpdateGroupContact","required":false},"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ResponseGroupContact"}}},"description":""},"404":{"content":{"application/json":{"schema":{"oneOf":[{"$ref":"#/components/schemas/GroupContactNotFoundError"},{"$ref":"#/components/schemas/RunnerGroupNotFoundError"}]}}},"description":""},"406":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/GroupContactIdsNotMatchingError"}}},"description":""}},"summary":"Put","tags":["Group Contact"],"security":[{"AuthToken":[]},{"RefreshTokenCookie":[]}],"description":"Update the contact whose id you provided.
Please remember that ids can't be changed."},"delete":{"operationId":"GroupContactController.remove","parameters":[{"in":"path","name":"id","required":true,"schema":{"type":"number"}},{"in":"query","name":"force","required":false,"schema":{"type":"boolean"}}],"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ResponseGroupContact"}}},"description":""},"204":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ResponseEmpty"}}},"description":""}},"summary":"Remove","tags":["Group Contact"],"security":[{"AuthToken":[]},{"RefreshTokenCookie":[]}],"description":"Delete the contact whose id you provided.
If no contact with this id exists it will just return 204(no content).
This won't delete any groups associated with the contact."}},"/api/scans":{"get":{"operationId":"ScanController.getAll","responses":{"200":{"content":{"application/json":{"schema":{"oneOf":[{"items":{"$ref":"#/components/schemas/ResponseScan"},"type":"array"},{"items":{"$ref":"#/components/schemas/ResponseTrackScan"},"type":"array"}]}}},"description":""}},"summary":"Get all","tags":["Scan"],"security":[{"AuthToken":[]},{"RefreshTokenCookie":[]}],"description":"Lists all scans (normal or track) from all runners.
This includes the scan's runner's distance ran."},"post":{"operationId":"ScanController.post","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/CreateScan"}}},"description":"CreateScan","required":false},"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ResponseScan"}}},"description":""},"404":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/RunnerNotFoundError"}}},"description":""}},"summary":"Post","tags":["Scan"],"security":[{"AuthToken":[],"StationApiToken":[]},{"RefreshTokenCookie":[],"AuthToken":[]},{"RefreshTokenCookie":[]}],"description":"Create a new scan (not track scan - use /scans/trackscans instead).
Please rmemember to provide the scan's runner's id and distance."}},"/api/scans/{id}":{"get":{"operationId":"ScanController.getOne","parameters":[{"in":"path","name":"id","required":true,"schema":{"type":"number"}}],"responses":{"200":{"content":{"application/json":{"schema":{"oneOf":[{"$ref":"#/components/schemas/ResponseScan"},{"$ref":"#/components/schemas/ResponseTrackScan"}]}}},"description":""},"404":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ScanNotFoundError"}}},"description":""}},"summary":"Get one","tags":["Scan"],"security":[{"AuthToken":[]},{"RefreshTokenCookie":[]}],"description":"Lists all information about the scan whose id got provided. This includes the scan's runner's distance ran."},"put":{"operationId":"ScanController.put","parameters":[{"in":"path","name":"id","required":true,"schema":{"type":"number"}}],"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/UpdateScan"}}},"description":"UpdateScan","required":false},"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ResponseScan"}}},"description":""},"404":{"content":{"application/json":{"schema":{"oneOf":[{"$ref":"#/components/schemas/ScanNotFoundError"},{"$ref":"#/components/schemas/RunnerNotFoundError"}]}}},"description":""},"406":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ScanIdsNotMatchingError"}}},"description":""}},"summary":"Put","tags":["Scan"],"security":[{"AuthToken":[]},{"RefreshTokenCookie":[]}],"description":"Update the scan (not track scan use /scans/trackscans/:id instead) whose id you provided.
Please remember that ids can't be changed and distances must be positive."},"delete":{"operationId":"ScanController.remove","parameters":[{"in":"path","name":"id","required":true,"schema":{"type":"number"}},{"in":"query","name":"force","required":false,"schema":{"type":"boolean"}}],"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ResponseScan"}}},"description":""},"204":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ResponseEmpty"}}},"description":""}},"summary":"Remove","tags":["Scan"],"security":[{"AuthToken":[]},{"RefreshTokenCookie":[]}],"description":"Delete the scan whose id you provided.
If no scan with this id exists it will just return 204(no content)."}},"/api/scans/trackscans":{"post":{"operationId":"ScanController.postTrackScans","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/CreateTrackScan"}}},"description":"CreateTrackScan","required":false},"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ResponseTrackScan"}}},"description":""},"404":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/RunnerNotFoundError"}}},"description":""}},"summary":"Post track scans","tags":["Scan"],"security":[{"AuthToken":[],"StationApiToken":[]},{"RefreshTokenCookie":[],"AuthToken":[]},{"RefreshTokenCookie":[]}],"description":"Create a new track scan (for \"normal\" scans use /scans instead).
Please remember that to provide the scan's card's station's id."}},"/api/scans/trackscans/{id}":{"put":{"operationId":"ScanController.putTrackScan","parameters":[{"in":"path","name":"id","required":true,"schema":{"type":"number"}}],"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/UpdateTrackScan"}}},"description":"UpdateTrackScan","required":false},"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ResponseTrackScan"}}},"description":""},"404":{"content":{"application/json":{"schema":{"oneOf":[{"$ref":"#/components/schemas/ScanNotFoundError"},{"$ref":"#/components/schemas/RunnerNotFoundError"},{"$ref":"#/components/schemas/ScanStationNotFoundError"}]}}},"description":""},"406":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ScanIdsNotMatchingError"}}},"description":""}},"summary":"Put track scan","tags":["Scan"],"security":[{"AuthToken":[]},{"RefreshTokenCookie":[]}],"description":"Update the track scan (not \"normal\" scan use /scans/trackscans/:id instead) whose id you provided.
Please remember that only the validity, runner and track can be changed."}},"/api/cards":{"get":{"operationId":"RunnerCardController.getAll","responses":{"200":{"content":{"application/json":{"schema":{"items":{"$ref":"#/components/schemas/ResponseRunnerCard"},"type":"array"}}},"description":""}},"summary":"Get all","tags":["Runner Card"],"security":[{"AuthToken":[]},{"RefreshTokenCookie":[]}],"description":"Lists all card."},"post":{"operationId":"RunnerCardController.post","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/CreateRunnerCard"}}},"description":"CreateRunnerCard","required":false},"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ResponseRunnerCard"}}},"description":""},"404":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/RunnerNotFoundError"}}},"description":""}},"summary":"Post","tags":["Runner Card"],"security":[{"AuthToken":[]},{"RefreshTokenCookie":[]}],"description":"Create a new card.
You can provide a associated runner by id but you don't have to."}},"/api/cards/{id}":{"get":{"operationId":"RunnerCardController.getOne","parameters":[{"in":"path","name":"id","required":true,"schema":{"type":"number"}}],"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ResponseRunnerCard"}}},"description":""},"404":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/RunnerCardNotFoundError"}}},"description":""}},"summary":"Get one","tags":["Runner Card"],"security":[{"AuthToken":[]},{"RefreshTokenCookie":[]}],"description":"Lists all information about the card whose id got provided."},"put":{"operationId":"RunnerCardController.put","parameters":[{"in":"path","name":"id","required":true,"schema":{"type":"number"}}],"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/UpdateRunnerCard"}}},"description":"UpdateRunnerCard","required":false},"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ResponseRunnerCard"}}},"description":""},"404":{"content":{"application/json":{"schema":{"oneOf":[{"$ref":"#/components/schemas/RunnerCardNotFoundError"},{"$ref":"#/components/schemas/RunnerNotFoundError"}]}}},"description":""},"406":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/RunnerCardIdsNotMatchingError"}}},"description":""}},"summary":"Put","tags":["Runner Card"],"security":[{"AuthToken":[]},{"RefreshTokenCookie":[]}],"description":"Update the card whose id you provided.
Scans created via this card will still be associated with the old runner.
Please remember that ids can't be changed."},"delete":{"operationId":"RunnerCardController.remove","parameters":[{"in":"path","name":"id","required":true,"schema":{"type":"number"}},{"in":"query","name":"force","required":false,"schema":{"type":"boolean"}}],"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ResponseRunnerCard"}}},"description":""},"204":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ResponseEmpty"}}},"description":""},"406":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/RunnerCardHasScansError"}}},"description":""}},"summary":"Remove","tags":["Runner Card"],"security":[{"AuthToken":[]},{"RefreshTokenCookie":[]}],"description":"Delete the card whose id you provided.
If no card with this id exists it will just return 204(no content).
If the card still has scans associated you have to provide the force=true query param (warning: this deletes all scans associated with by this card - please disable it instead or just remove the runner association)."}},"/api/cards/bulk":{"post":{"operationId":"RunnerCardController.postBlancoBulk","parameters":[{"in":"query","name":"count","required":false,"schema":{"type":"number"}},{"in":"query","name":"returnCards","required":false,"schema":{"type":"boolean"}}],"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ResponseEmpty"}}},"description":""}},"summary":"Post blanco bulk","tags":["Runner Card"],"security":[{"AuthToken":[]},{"RefreshTokenCookie":[]}],"description":"Create blank cards in bulk.
Just provide the count as a query param and wait for the 200 response.
You can provide the 'returnCards' query param if you want to receive the RESPONSERUNNERCARD objects in the response."}},"/api/runners":{"get":{"operationId":"RunnerController.getAll","responses":{"200":{"content":{"application/json":{"schema":{"items":{"$ref":"#/components/schemas/ResponseRunner"},"type":"array"}}},"description":""}},"summary":"Get all","tags":["Runner"],"security":[{"AuthToken":[]},{"RefreshTokenCookie":[]}],"description":"Lists all runners from all teams/orgs.
This includes the runner's group and distance ran."},"post":{"operationId":"RunnerController.post","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/CreateRunner"}}},"description":"CreateRunner","required":false},"responses":{"200":{"content":{"application/json":{"schema":{"oneOf":[{"$ref":"#/components/schemas/ResponseRunner"},{"$ref":"#/components/schemas/RunnerGroupNeededError"},{"$ref":"#/components/schemas/RunnerGroupNotFoundError"}]}}},"description":""}},"summary":"Post","tags":["Runner"],"security":[{"AuthToken":[]},{"RefreshTokenCookie":[]}],"description":"Create a new runner.
Please remeber to provide the runner's group's id."}},"/api/runners/{id}":{"get":{"operationId":"RunnerController.getOne","parameters":[{"in":"path","name":"id","required":true,"schema":{"type":"number"}}],"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ResponseRunner"}}},"description":""},"404":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/RunnerNotFoundError"}}},"description":""}},"summary":"Get one","tags":["Runner"],"security":[{"AuthToken":[]},{"RefreshTokenCookie":[]}],"description":"Lists all information about the runner whose id got provided."},"put":{"operationId":"RunnerController.put","parameters":[{"in":"path","name":"id","required":true,"schema":{"type":"number"}}],"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/UpdateRunner"}}},"description":"UpdateRunner","required":false},"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ResponseRunner"}}},"description":""},"404":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/RunnerNotFoundError"}}},"description":""},"406":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/RunnerIdsNotMatchingError"}}},"description":""}},"summary":"Put","tags":["Runner"],"security":[{"AuthToken":[]},{"RefreshTokenCookie":[]}],"description":"Update the runner whose id you provided.
Please remember that ids can't be changed."},"delete":{"operationId":"RunnerController.remove","parameters":[{"in":"path","name":"id","required":true,"schema":{"type":"number"}},{"in":"query","name":"force","required":false,"schema":{"type":"boolean"}}],"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ResponseRunner"}}},"description":""},"204":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ResponseEmpty"}}},"description":""},"406":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/RunnerHasDistanceDonationsError"}}},"description":""}},"summary":"Remove","tags":["Runner"],"security":[{"AuthToken":[]},{"RefreshTokenCookie":[]}],"description":"Delete the runner whose id you provided.
This will also delete all scans and cards associated with the runner.
If no runner with this id exists it will just return 204(no content)."}},"/api/runners/{id}/scans":{"get":{"operationId":"RunnerController.getScans","parameters":[{"in":"path","name":"id","required":true,"schema":{"type":"number"}}],"responses":{"200":{"content":{"application/json":{"schema":{"oneOf":[{"items":{"$ref":"#/components/schemas/ResponseScan"},"type":"array"},{"items":{"$ref":"#/components/schemas/ResponseTrackScan"},"type":"array"}]}}},"description":""},"404":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/RunnerNotFoundError"}}},"description":""}},"summary":"Get scans","tags":["Runner"],"security":[{"AuthToken":[]},{"RefreshTokenCookie":[]}],"description":"Lists all scans of the runner whose id got provided.
If you only want the valid scans just add the ?onlyValid=true query param."}},"/api/runners/import":{"post":{"operationId":"ImportController.postJSON","parameters":[{"in":"query","name":"group","required":false,"schema":{"type":"number"}}],"requestBody":{"content":{"application/json":{"schema":{"items":{"$ref":"#/components/schemas/ImportRunner"},"type":"array"}}},"description":"ImportRunner","required":false},"responses":{"200":{"content":{"application/json":{"schema":{"items":{"$ref":"#/components/schemas/ResponseRunner"},"type":"array"}}},"description":""},"404":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/RunnerGroupNotFoundError"}}},"description":""},"406":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/RunnerGroupNeededError"}}},"description":""}},"summary":"Post json","tags":["Import"],"security":[{"AuthToken":[]},{"RefreshTokenCookie":[]}],"description":"Create new runners from json and insert them into the provided group.
If teams/classes are provided alongside the runner's name they'll automaticly be created under the provided org and the runners will be inserted into the teams instead."}},"/api/organizations/{id}/import":{"post":{"operationId":"ImportController.postOrgsJSON","parameters":[{"in":"path","name":"id","required":true,"schema":{"type":"number"}}],"requestBody":{"content":{"application/json":{"schema":{"items":{"$ref":"#/components/schemas/ImportRunner"},"type":"array"}}},"description":"ImportRunner","required":false},"responses":{"200":{"content":{"application/json":{"schema":{"items":{"$ref":"#/components/schemas/ResponseRunner"},"type":"array"}}},"description":""},"404":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/RunnerGroupNotFoundError"}}},"description":""},"406":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/RunnerGroupNeededError"}}},"description":""}},"summary":"Post orgs json","tags":["Import"],"security":[{"AuthToken":[]},{"RefreshTokenCookie":[]}],"description":"Create new runners from json and insert them into the provided org.
If teams/classes are provided alongside the runner's name they'll automaticly be created under the provided org and the runners will be inserted into the teams instead."}},"/api/teams/{id}/import":{"post":{"operationId":"ImportController.postTeamsJSON","parameters":[{"in":"path","name":"id","required":true,"schema":{"type":"number"}}],"requestBody":{"content":{"application/json":{"schema":{"items":{"$ref":"#/components/schemas/ImportRunner"},"type":"array"}}},"description":"ImportRunner","required":false},"responses":{"200":{"content":{"application/json":{"schema":{"items":{"$ref":"#/components/schemas/ResponseRunner"},"type":"array"}}},"description":""},"404":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/RunnerGroupNotFoundError"}}},"description":""},"406":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/RunnerGroupNeededError"}}},"description":""}},"summary":"Post teams json","tags":["Import"],"security":[{"AuthToken":[]},{"RefreshTokenCookie":[]}],"description":"Create new runners from json and insert them into the provided team"}},"/api/runners/import/csv":{"post":{"operationId":"ImportController.postCSV","parameters":[{"in":"query","name":"group","required":false,"schema":{"type":"number"}}],"responses":{"200":{"content":{"application/json":{"schema":{"items":{"$ref":"#/components/schemas/ResponseRunner"},"type":"array"}}},"description":""},"404":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/RunnerGroupNotFoundError"}}},"description":""},"406":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/RunnerGroupNeededError"}}},"description":""}},"summary":"Post csv","tags":["Import"],"security":[{"AuthToken":[]},{"RefreshTokenCookie":[]}],"description":"Create new runners from csv and insert them into the provided group.
If teams/classes are provided alongside the runner's name they'll automaticly be created under the provided org and the runners will be inserted into the teams instead."}},"/api/organizations/{id}/import/csv":{"post":{"operationId":"ImportController.postOrgsCSV","parameters":[{"in":"path","name":"id","required":true,"schema":{"type":"number"}}],"responses":{"200":{"content":{"application/json":{"schema":{"items":{"$ref":"#/components/schemas/ResponseRunner"},"type":"array"}}},"description":""},"404":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/RunnerGroupNotFoundError"}}},"description":""},"406":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/RunnerGroupNeededError"}}},"description":""}},"summary":"Post orgs csv","tags":["Import"],"security":[{"AuthToken":[]},{"RefreshTokenCookie":[]}],"description":"Create new runners from csv and insert them into the provided org.
If teams/classes are provided alongside the runner's name they'll automaticly be created under the provided org and the runners will be inserted into the teams instead."}},"/api/teams/{id}/import/csv":{"post":{"operationId":"ImportController.postTeamsCSV","parameters":[{"in":"path","name":"id","required":true,"schema":{"type":"number"}}],"responses":{"200":{"content":{"application/json":{"schema":{"items":{"$ref":"#/components/schemas/ResponseRunner"},"type":"array"}}},"description":""},"404":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/RunnerGroupNotFoundError"}}},"description":""},"406":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/RunnerGroupNeededError"}}},"description":""}},"summary":"Post teams csv","tags":["Import"],"security":[{"AuthToken":[]},{"RefreshTokenCookie":[]}],"description":"Create new runners from csv and insert them into the provided team"}},"/api/permissions":{"get":{"operationId":"PermissionController.getAll","responses":{"200":{"content":{"application/json":{"schema":{"items":{"$ref":"#/components/schemas/ResponsePermission"},"type":"array"}}},"description":""}},"summary":"Get all","tags":["Permission"],"security":[{"AuthToken":[]},{"RefreshTokenCookie":[]}],"description":"Lists all permissions for all users and groups."},"post":{"operationId":"PermissionController.post","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/CreatePermission"}}},"description":"CreatePermission","required":false},"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ResponsePermission"}}},"description":""},"404":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/PrincipalNotFoundError"}}},"description":""}},"summary":"Post","tags":["Permission"],"security":[{"AuthToken":[]},{"RefreshTokenCookie":[]}],"description":"Create a new permission for a existing principal(user/group).
If a permission with this target, action and prinicpal already exists that permission will be returned instead of creating a new one."}},"/api/permissions/{id}":{"get":{"operationId":"PermissionController.getOne","parameters":[{"in":"path","name":"id","required":true,"schema":{"type":"number"}}],"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ResponsePermission"}}},"description":""},"404":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/PermissionNotFoundError"}}},"description":""}},"summary":"Get one","tags":["Permission"],"security":[{"AuthToken":[]},{"RefreshTokenCookie":[]}],"description":"Lists all information about the permission whose id got provided."},"put":{"operationId":"PermissionController.put","parameters":[{"in":"path","name":"id","required":true,"schema":{"type":"number"}}],"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/UpdatePermission"}}},"description":"UpdatePermission","required":false},"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ResponsePrincipal"}}},"description":""},"404":{"content":{"application/json":{"schema":{"oneOf":[{"$ref":"#/components/schemas/PermissionNotFoundError"},{"$ref":"#/components/schemas/PrincipalNotFoundError"}]}}},"description":""},"406":{"content":{"application/json":{"schema":{"oneOf":[{"$ref":"#/components/schemas/PermissionIdsNotMatchingError"},{"$ref":"#/components/schemas/PermissionNeedsPrincipalError"}]}}},"description":""}},"summary":"Put","tags":["Permission"],"security":[{"AuthToken":[]},{"RefreshTokenCookie":[]}],"description":"Update a permission object.
If updateing the permission object would result in duplicate permission (same target, action and principal) this permission will get deleted and the existing permission will be returned.
Please remember that ids can't be changed."},"delete":{"operationId":"PermissionController.remove","parameters":[{"in":"path","name":"id","required":true,"schema":{"type":"number"}},{"in":"query","name":"force","required":false,"schema":{"type":"boolean"}}],"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ResponsePermission"}}},"description":""},"204":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ResponseEmpty"}}},"description":""}},"summary":"Remove","tags":["Permission"],"security":[{"AuthToken":[]},{"RefreshTokenCookie":[]}],"description":"Deletes the permission whose id you provide.
If no permission with this id exists it will just return 204(no content)."}},"/api/users/me/":{"get":{"operationId":"MeController.get","responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ResponseUser"}}},"description":""},"404":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/UserNotFoundError"}}},"description":""}},"summary":"Get","tags":["Me"],"security":[{"AuthToken":[]},{"RefreshTokenCookie":[]}],"description":"Lists all information about yourself."},"put":{"operationId":"MeController.put","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/UpdateUser"}}},"description":"UpdateUser","required":false},"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ResponseUser"}}},"description":""},"404":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/UserNotFoundError"}}},"description":""},"406":{"content":{"application/json":{"schema":{"oneOf":[{"$ref":"#/components/schemas/UserIdsNotMatchingError"},{"$ref":"#/components/schemas/UsernameContainsIllegalCharacterError"},{"$ref":"#/components/schemas/PasswordMustContainUppercaseLetterError"},{"$ref":"#/components/schemas/PasswordMustContainLowercaseLetterError"},{"$ref":"#/components/schemas/PasswordMustContainNumberError"},{"$ref":"#/components/schemas/PasswordTooShortError"}]}}},"description":""}},"summary":"Put","tags":["Me"],"security":[{"AuthToken":[]},{"RefreshTokenCookie":[]}],"description":"Update the yourself.
You can't edit your own permissions or group memberships here - Please use the /api/users/:id enpoint instead.
Please remember that ids can't be changed."},"delete":{"operationId":"MeController.remove","parameters":[{"in":"query","name":"force","required":false,"schema":{"type":"boolean"}}],"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ResponseUser"}}},"description":""},"404":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/UserNotFoundError"}}},"description":""},"406":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/UserDeletionNotConfirmedError"}}},"description":""}},"summary":"Remove","tags":["Me"],"security":[{"AuthToken":[]},{"RefreshTokenCookie":[]}],"description":"Delete yourself.
You have to confirm your decision by providing the ?force=true query param.
If there are any permissions directly granted to you they will get deleted as well."}},"/api/users/me/permissions":{"get":{"operationId":"MeController.getPermissions","responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ResponseUserPermissions"}}},"description":""},"404":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/UserNotFoundError"}}},"description":""}},"summary":"Get permissions","tags":["Me"],"security":[{"AuthToken":[]},{"RefreshTokenCookie":[]}],"description":"Lists all permissions granted to the you sorted into directly granted and inherited as permission response objects."}},"/api/teams":{"get":{"operationId":"RunnerTeamController.getAll","responses":{"200":{"content":{"application/json":{"schema":{"items":{"$ref":"#/components/schemas/ResponseRunnerTeam"},"type":"array"}}},"description":""}},"summary":"Get all","tags":["Runner Team"],"security":[{"AuthToken":[]},{"RefreshTokenCookie":[]}],"description":"Lists all teams.
This includes their parent organization and contact (if existing/associated)."},"post":{"operationId":"RunnerTeamController.post","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/CreateRunnerTeam"}}},"description":"CreateRunnerTeam","required":false},"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ResponseRunnerTeam"}}},"description":""}},"summary":"Post","tags":["Runner Team"],"security":[{"AuthToken":[]},{"RefreshTokenCookie":[]}],"description":"Create a new organsisation.
Please remember to provide it's parent group's id."}},"/api/teams/{id}":{"get":{"operationId":"RunnerTeamController.getOne","parameters":[{"in":"path","name":"id","required":true,"schema":{"type":"number"}}],"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ResponseRunnerTeam"}}},"description":""},"404":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/RunnerTeamNotFoundError"}}},"description":""}},"summary":"Get one","tags":["Runner Team"],"security":[{"AuthToken":[]},{"RefreshTokenCookie":[]}],"description":"Lists all information about the team whose id got provided."},"put":{"operationId":"RunnerTeamController.put","parameters":[{"in":"path","name":"id","required":true,"schema":{"type":"number"}}],"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/UpdateRunnerTeam"}}},"description":"UpdateRunnerTeam","required":false},"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ResponseRunnerTeam"}}},"description":""},"404":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/RunnerTeamNotFoundError"}}},"description":""},"406":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/RunnerTeamIdsNotMatchingError"}}},"description":""}},"summary":"Put","tags":["Runner Team"],"security":[{"AuthToken":[]},{"RefreshTokenCookie":[]}],"description":"Update the team whose id you provided.
Please remember that ids can't be changed."},"delete":{"operationId":"RunnerTeamController.remove","parameters":[{"in":"path","name":"id","required":true,"schema":{"type":"number"}},{"in":"query","name":"force","required":false,"schema":{"type":"boolean"}}],"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ResponseRunnerTeam"}}},"description":""},"204":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ResponseEmpty"}}},"description":""},"406":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/RunnerTeamHasRunnersError"}}},"description":""}},"summary":"Remove","tags":["Runner Team"],"security":[{"AuthToken":[]},{"RefreshTokenCookie":[]}],"description":"Delete the team whose id you provided.
If the team still has runners associated this will fail.
To delete the team with all associated runners set the force QueryParam to true (cascading deletion might take a while).
This won't delete the associated contact.
If no team with this id exists it will just return 204(no content)."}},"/api/teams/{id}/runners":{"get":{"operationId":"RunnerTeamController.getRunners","parameters":[{"in":"path","name":"id","required":true,"schema":{"type":"number"}}],"responses":{"200":{"content":{"application/json":{"schema":{"items":{"$ref":"#/components/schemas/ResponseRunner"},"type":"array"}}},"description":""},"404":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/RunnerTeamNotFoundError"}}},"description":""}},"summary":"Get runners","tags":["Runner Team"],"security":[{"AuthToken":[]},{"RefreshTokenCookie":[]}],"description":"Lists all runners from this team.
This includes the runner's group and distance ran."}},"/api/organizations":{"get":{"operationId":"RunnerOrganizationController.getAll","responses":{"200":{"content":{"application/json":{"schema":{"items":{"$ref":"#/components/schemas/ResponseRunnerOrganization"},"type":"array"}}},"description":""}},"summary":"Get all","tags":["Runner Organization"],"security":[{"AuthToken":[]},{"RefreshTokenCookie":[]}],"description":"Lists all organizations.
This includes their address, contact and teams (if existing/associated)."},"post":{"operationId":"RunnerOrganizationController.post","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/CreateRunnerOrganization"}}},"description":"CreateRunnerOrganization","required":false},"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ResponseRunnerOrganization"}}},"description":""}},"summary":"Post","tags":["Runner Organization"],"security":[{"AuthToken":[]},{"RefreshTokenCookie":[]}],"description":"Create a new organsisation."}},"/api/organizations/{id}":{"get":{"operationId":"RunnerOrganizationController.getOne","parameters":[{"in":"path","name":"id","required":true,"schema":{"type":"number"}}],"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ResponseRunnerOrganization"}}},"description":""},"404":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/RunnerOrganizationNotFoundError"}}},"description":""}},"summary":"Get one","tags":["Runner Organization"],"security":[{"AuthToken":[]},{"RefreshTokenCookie":[]}],"description":"Lists all information about the organization whose id got provided."},"put":{"operationId":"RunnerOrganizationController.put","parameters":[{"in":"path","name":"id","required":true,"schema":{"type":"number"}}],"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/UpdateRunnerOrganization"}}},"description":"UpdateRunnerOrganization","required":false},"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ResponseRunnerOrganization"}}},"description":""},"404":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/RunnerOrganizationNotFoundError"}}},"description":""},"406":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/RunnerOrganizationIdsNotMatchingError"}}},"description":""}},"summary":"Put","tags":["Runner Organization"],"security":[{"AuthToken":[]},{"RefreshTokenCookie":[]}],"description":"Update the organization whose id you provided.
Please remember that ids can't be changed."},"delete":{"operationId":"RunnerOrganizationController.remove","parameters":[{"in":"path","name":"id","required":true,"schema":{"type":"number"}},{"in":"query","name":"force","required":false,"schema":{"type":"boolean"}}],"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ResponseRunnerOrganization"}}},"description":""},"204":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ResponseEmpty"}}},"description":""},"406":{"content":{"application/json":{"schema":{"oneOf":[{"$ref":"#/components/schemas/RunnerOrganizationHasTeamsError"},{"$ref":"#/components/schemas/RunnerOrganizationHasRunnersError"}]}}},"description":""}},"summary":"Remove","tags":["Runner Organization"],"security":[{"AuthToken":[]},{"RefreshTokenCookie":[]}],"description":"Delete the organsisation whose id you provided.
If the organization still has runners and/or teams associated this will fail.
To delete the organization with all associated runners and teams set the force QueryParam to true (cascading deletion might take a while).
This won't delete the associated contact.
If no organization with this id exists it will just return 204(no content)."}},"/api/organizations/{id}/runners":{"get":{"operationId":"RunnerOrganizationController.getRunners","parameters":[{"in":"path","name":"id","required":true,"schema":{"type":"number"}},{"in":"query","name":"onlyDirect","required":false,"schema":{"type":"boolean"}}],"responses":{"200":{"content":{"application/json":{"schema":{"items":{"$ref":"#/components/schemas/ResponseRunner"},"type":"array"}}},"description":""},"404":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/RunnerOrganizationNotFoundError"}}},"description":""}},"summary":"Get runners","tags":["Runner Organization"],"security":[{"AuthToken":[]},{"RefreshTokenCookie":[]}],"description":"Lists all runners from this org and it's teams (if you don't provide the ?onlyDirect=true param).
This includes the runner's group and distance ran."}},"/api/runners/me/{jwt}":{"get":{"operationId":"RunnerSelfServiceController.get","parameters":[{"in":"path","name":"jwt","required":true,"schema":{"type":"string"}}],"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ResponseSelfServiceRunner"}}},"description":""},"404":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/RunnerNotFoundError"}}},"description":""}},"summary":"Get","tags":["Runner Self Service"],"description":"Lists all information about yourself.
Please provide your runner jwt(that code we gave you during registration) for auth.
If you lost your jwt/personalized link please use the forgot endpoint."},"delete":{"operationId":"RunnerSelfServiceController.remove","parameters":[{"in":"path","name":"jwt","required":true,"schema":{"type":"string"}},{"in":"query","name":"force","required":false,"schema":{"type":"boolean"}}],"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ResponseSelfServiceRunner"}}},"description":""},"404":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/RunnerNotFoundError"}}},"description":""}},"summary":"Remove","tags":["Runner Self Service"],"description":"Deletes all information about yourself.
Please provide your runner jwt(that code we gave you during registration) for auth.
If you lost your jwt/personalized link please use the forgot endpoint."}},"/api/runners/me/{jwt}/scans":{"get":{"operationId":"RunnerSelfServiceController.getScans","parameters":[{"in":"path","name":"jwt","required":true,"schema":{"type":"string"}}],"responses":{"200":{"content":{"application/json":{"schema":{"items":{"$ref":"#/components/schemas/ResponseSelfServiceScan"},"type":"array"}}},"description":""},"404":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/RunnerNotFoundError"}}},"description":""}},"summary":"Get scans","tags":["Runner Self Service"],"description":"Lists all your (runner) scans.
Please provide your runner jwt(that code we gave you during registration) for auth.
If you lost your jwt/personalized link please contact support."}},"/api/stations/me":{"get":{"operationId":"RunnerSelfServiceController.getStationMe","responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ResponseScanStation"}}},"description":""},"404":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ScanStationNotFoundError"}}},"description":""}},"summary":"Get station me","tags":["Runner Self Service"],"description":"Lists basic information about the station whose token got provided.
This includes it's associated track.","security":[{"StationApiToken":[]}]}},"/api/runners/forgot":{"post":{"operationId":"RunnerSelfServiceController.requestNewToken","parameters":[{"in":"query","name":"mail","required":false,"schema":{"type":"string"}},{"in":"query","name":"locale","required":false,"schema":{"type":"string"}}],"responses":{"200":{"content":{"application/json":{}},"description":"Successful response"},"404":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/RunnerNotFoundError"}}},"description":""}},"summary":"Request new token","tags":["Runner Self Service"],"description":"Use this endpoint to reuqest a new selfservice token/link to be sent to your mail address (rate limited to one mail every 24hrs)."}},"/api/runners/register":{"post":{"operationId":"RunnerSelfServiceController.registerRunner","parameters":[{"in":"query","name":"locale","required":false,"schema":{"type":"string"}}],"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/CreateSelfServiceCitizenRunner"}}},"description":"CreateSelfServiceCitizenRunner","required":false},"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ResponseSelfServiceRunner"}}},"description":""},"406":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/RunnerEmailNeededError"}}},"description":""}},"summary":"Register runner","tags":["Runner Self Service"],"description":"Create a new selfservice runner in the citizen org.
This endpoint shoud be used to allow \"everyday citizen\" to register themselves.
You have to provide a mail address, b/c the future we'll implement email verification."}},"/api/runners/register/{token}":{"post":{"operationId":"RunnerSelfServiceController.registerOrganizationRunner","parameters":[{"in":"path","name":"token","required":true,"schema":{"type":"string"}},{"in":"query","name":"locale","required":false,"schema":{"type":"string"}}],"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/CreateSelfServiceRunner"}}},"description":"CreateSelfServiceRunner","required":false},"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ResponseSelfServiceRunner"}}},"description":""},"404":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/RunnerOrganizationNotFoundError"}}},"description":""}},"summary":"Register organization runner","tags":["Runner Self Service"],"description":"Create a new selfservice runner in a provided org.
The orgs get provided and authorized via api tokens that can be optained via the /organizations endpoint."}},"/api/organizations/selfservice/{token}":{"get":{"operationId":"RunnerSelfServiceController.getSelfserviceOrg","parameters":[{"in":"path","name":"token","required":true,"schema":{"type":"string"}}],"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ResponseSelfServiceOrganisation"}}},"description":""},"404":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/RunnerOrganizationNotFoundError"}}},"description":""}},"summary":"Get selfservice org","tags":["Runner Self Service"],"description":"Get the basic info and teams for a org."}},"/api/stations":{"get":{"operationId":"ScanStationController.getAll","responses":{"200":{"content":{"application/json":{"schema":{"items":{"$ref":"#/components/schemas/ResponseScanStation"},"type":"array"}}},"description":""}},"summary":"Get all","tags":["Scan Station"],"security":[{"AuthToken":[]},{"RefreshTokenCookie":[]}],"description":"Lists all stations.
This includes their associated tracks."},"post":{"operationId":"ScanStationController.post","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/CreateScanStation"}}},"description":"CreateScanStation","required":false},"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ResponseScanStation"}}},"description":""},"404":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/TrackNotFoundError"}}},"description":""}},"summary":"Post","tags":["Scan Station"],"security":[{"AuthToken":[]},{"RefreshTokenCookie":[]}],"description":"Create a new station.
Please remeber to provide the station's track's id.
Please also remember that the station key is only visibe on creation."}},"/api/stations/{id}":{"get":{"operationId":"ScanStationController.getOne","parameters":[{"in":"path","name":"id","required":true,"schema":{"type":"number"}}],"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ResponseScanStation"}}},"description":""},"404":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ScanStationNotFoundError"}}},"description":""}},"summary":"Get one","tags":["Scan Station"],"security":[{"AuthToken":[]},{"RefreshTokenCookie":[]}],"description":"Lists all information about the station whose id got provided.
This includes it's associated track."},"put":{"operationId":"ScanStationController.put","parameters":[{"in":"path","name":"id","required":true,"schema":{"type":"number"}}],"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/UpdateScanStation"}}},"description":"UpdateScanStation","required":false},"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ResponseScanStation"}}},"description":""},"404":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ScanStationNotFoundError"}}},"description":""},"406":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ScanStationIdsNotMatchingError"}}},"description":""}},"summary":"Put","tags":["Scan Station"],"security":[{"AuthToken":[]},{"RefreshTokenCookie":[]}],"description":"Update the station whose id you provided.
Please remember that only the description and enabled state can be changed."},"delete":{"operationId":"ScanStationController.remove","parameters":[{"in":"path","name":"id","required":true,"schema":{"type":"number"}},{"in":"query","name":"force","required":false,"schema":{"type":"boolean"}}],"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ResponseScanStation"}}},"description":""},"204":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ResponseEmpty"}}},"description":""},"406":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ScanStationHasScansError"}}},"description":""}},"summary":"Remove","tags":["Scan Station"],"security":[{"AuthToken":[]},{"RefreshTokenCookie":[]}],"description":"Delete the station whose id you provided.
If no station with this id exists it will just return 204(no content).
If the station still has scans associated you have to provide the force=true query param (warning: this deletes all scans associated with/created by this station - please disable it instead)."}},"/api/statsclients":{"get":{"operationId":"StatsClientController.getAll","responses":{"200":{"content":{"application/json":{"schema":{"items":{"$ref":"#/components/schemas/ResponseStatsClient"},"type":"array"}}},"description":""}},"summary":"Get all","tags":["Stats Client"],"security":[{"AuthToken":[]},{"RefreshTokenCookie":[]}],"description":"Lists all stats clients. Please remember that the key can only be viewed on creation."},"post":{"operationId":"StatsClientController.post","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/CreateStatsClient"}}},"description":"CreateStatsClient","required":false},"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ResponseStatsClient"}}},"description":""}},"summary":"Post","tags":["Stats Client"],"security":[{"AuthToken":[]},{"RefreshTokenCookie":[]}],"description":"Create a new stats client.
Please remember that the client's key will be generated automaticly and that it can only be viewed on creation."}},"/api/statsclients/{id}":{"get":{"operationId":"StatsClientController.getOne","parameters":[{"in":"path","name":"id","required":true,"schema":{"type":"number"}}],"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ResponseStatsClient"}}},"description":""},"404":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/StatsClientNotFoundError"}}},"description":""}},"summary":"Get one","tags":["Stats Client"],"security":[{"AuthToken":[]},{"RefreshTokenCookie":[]}],"description":"Lists all information about the stats client whose id got provided. Please remember that the key can only be viewed on creation."},"delete":{"operationId":"StatsClientController.remove","parameters":[{"in":"path","name":"id","required":true,"schema":{"type":"number"}},{"in":"query","name":"force","required":false,"schema":{"type":"boolean"}}],"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ResponseStatsClient"}}},"description":""},"204":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ResponseEmpty"}}},"description":""}},"summary":"Remove","tags":["Stats Client"],"security":[{"AuthToken":[]},{"RefreshTokenCookie":[]}],"description":"Delete the stats client whose id you provided.
If no client with this id exists it will just return 204(no content)."}},"/api/stats":{"get":{"operationId":"StatsController.get","responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ResponseStats"}}},"description":""}},"summary":"Get","tags":["Stats"],"description":"A very basic stats endpoint providing basic counters for a dashboard or simmilar"}},"/api/stats/runners/distance":{"get":{"operationId":"StatsController.getTopRunnersByDistance","responses":{"200":{"content":{"application/json":{"schema":{"items":{"$ref":"#/components/schemas/ResponseStatsRunner"},"type":"array"}}},"description":""}},"summary":"Get top runners by distance","tags":["Stats"],"description":"Returns the top ten runners by distance.","security":[{"StatsApiToken":[]},{"AuthToken":[]},{"RefreshTokenCookie":[]}]}},"/api/stats/runners/donations":{"get":{"operationId":"StatsController.getTopRunnersByDonations","responses":{"200":{"content":{"application/json":{"schema":{"items":{"$ref":"#/components/schemas/ResponseStatsRunner"},"type":"array"}}},"description":""}},"summary":"Get top runners by donations","tags":["Stats"],"description":"Returns the top ten runners by donations.","security":[{"StatsApiToken":[]},{"AuthToken":[]},{"RefreshTokenCookie":[]}]}},"/api/stats/runners/laptime":{"get":{"operationId":"StatsController.getTopRunnersByLaptime","parameters":[{"in":"query","name":"track","required":false,"schema":{"type":"number"}}],"responses":{"200":{"content":{"application/json":{"schema":{"items":{"$ref":"#/components/schemas/ResponseStatsRunner"},"type":"array"}}},"description":""}},"summary":"Get top runners by laptime","tags":["Stats"],"description":"Returns the top ten runners by fastest laptime on your selected track (track by id).","security":[{"StatsApiToken":[]},{"AuthToken":[]},{"RefreshTokenCookie":[]}]}},"/api/stats/scans":{"get":{"operationId":"StatsController.getTopRunnersByTrackTime","responses":{"200":{"content":{"application/json":{"schema":{"items":{"$ref":"#/components/schemas/ResponseStatsRunner"},"type":"array"}}},"description":""}},"summary":"Get top runners by track time","tags":["Stats"],"description":"Returns the top ten fastest track times (with their runner and the runner's group).","security":[{"StatsApiToken":[]},{"AuthToken":[]},{"RefreshTokenCookie":[]}]}},"/api/stats/teams/distance":{"get":{"operationId":"StatsController.getTopTeamsByDistance","responses":{"200":{"content":{"application/json":{"schema":{"items":{"$ref":"#/components/schemas/ResponseStatsTeam"},"type":"array"}}},"description":""}},"summary":"Get top teams by distance","tags":["Stats"],"description":"Returns the top ten teams by distance.","security":[{"StatsApiToken":[]},{"AuthToken":[]},{"RefreshTokenCookie":[]}]}},"/api/stats/teams/donations":{"get":{"operationId":"StatsController.getTopTeamsByDonations","responses":{"200":{"content":{"application/json":{"schema":{"items":{"$ref":"#/components/schemas/ResponseStatsTeam"},"type":"array"}}},"description":""}},"summary":"Get top teams by donations","tags":["Stats"],"description":"Returns the top ten teams by donations.","security":[{"StatsApiToken":[]},{"AuthToken":[]},{"RefreshTokenCookie":[]}]}},"/api/stats/organizations/distance":{"get":{"operationId":"StatsController.getTopOrgsByDistance","responses":{"200":{"content":{"application/json":{"schema":{"items":{"$ref":"#/components/schemas/ResponseStatsOrgnisation"},"type":"array"}}},"description":""}},"summary":"Get top orgs by distance","tags":["Stats"],"description":"Returns the top ten organizations by distance.","security":[{"StatsApiToken":[]},{"AuthToken":[]},{"RefreshTokenCookie":[]}]}},"/api/stats/organizations/donations":{"get":{"operationId":"StatsController.getTopOrgsByDonations","responses":{"200":{"content":{"application/json":{"schema":{"items":{"$ref":"#/components/schemas/ResponseStatsOrgnisation"},"type":"array"}}},"description":""}},"summary":"Get top orgs by donations","tags":["Stats"],"description":"Returns the top ten organizations by donations.","security":[{"StatsApiToken":[]},{"AuthToken":[]},{"RefreshTokenCookie":[]}]}},"/api/status":{"get":{"operationId":"StatusController.get","responses":{"200":{"content":{"application/json":{}},"description":"Successful response"}},"summary":"Get","tags":["Status"],"description":"A very basic status/health endpoint that just checks if the database connection is available.
The available information depth will be expanded later."}},"/api/version":{"get":{"operationId":"StatusController.getVersion","responses":{"200":{"content":{"application/json":{}},"description":"Successful response"}},"summary":"Get version","tags":["Status"],"description":"A very basic endpoint that just returns the curent package version."}},"/api/tracks":{"get":{"operationId":"TrackController.getAll","responses":{"200":{"content":{"application/json":{"schema":{"items":{"$ref":"#/components/schemas/ResponseTrack"},"type":"array"}}},"description":""}},"summary":"Get all","tags":["Track"],"security":[{"AuthToken":[]},{"RefreshTokenCookie":[]}],"description":"Lists all tracks."},"post":{"operationId":"TrackController.post","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/CreateTrack"}}},"description":"CreateTrack","required":false},"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ResponseTrack"}}},"description":""},"406":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/TrackLapTimeCantBeNegativeError"}}},"description":""}},"summary":"Post","tags":["Track"],"security":[{"AuthToken":[]},{"RefreshTokenCookie":[]}],"description":"Create a new track.
Please remember that the track's distance must be greater than 0."}},"/api/tracks/{id}":{"get":{"operationId":"TrackController.getOne","parameters":[{"in":"path","name":"id","required":true,"schema":{"type":"number"}}],"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ResponseTrack"}}},"description":""},"404":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/TrackNotFoundError"}}},"description":""}},"summary":"Get one","tags":["Track"],"security":[{"AuthToken":[]},{"RefreshTokenCookie":[]}],"description":"Lists all information about the track whose id got provided."},"put":{"operationId":"TrackController.put","parameters":[{"in":"path","name":"id","required":true,"schema":{"type":"number"}}],"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/UpdateTrack"}}},"description":"UpdateTrack","required":false},"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ResponseTrack"}}},"description":""},"404":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/TrackNotFoundError"}}},"description":""},"406":{"content":{"application/json":{"schema":{"oneOf":[{"$ref":"#/components/schemas/TrackIdsNotMatchingError"},{"$ref":"#/components/schemas/TrackLapTimeCantBeNegativeError"}]}}},"description":""}},"summary":"Put","tags":["Track"],"security":[{"AuthToken":[]},{"RefreshTokenCookie":[]}],"description":"Update the track whose id you provided.
Please remember that ids can't be changed."},"delete":{"operationId":"TrackController.remove","parameters":[{"in":"path","name":"id","required":true,"schema":{"type":"number"}},{"in":"query","name":"force","required":false,"schema":{"type":"boolean"}}],"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ResponseTrack"}}},"description":""},"204":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ResponseEmpty"}}},"description":""}},"summary":"Remove","tags":["Track"],"security":[{"AuthToken":[]},{"RefreshTokenCookie":[]}],"description":"Delete the track whose id you provided.
If no track with this id exists it will just return 204(no content)."}},"/api/users":{"get":{"operationId":"UserController.getAll","responses":{"200":{"content":{"application/json":{"schema":{"items":{"$ref":"#/components/schemas/ResponseUser"},"type":"array"}}},"description":""}},"summary":"Get all","tags":["User"],"security":[{"AuthToken":[]},{"RefreshTokenCookie":[]}],"description":"Lists all users.
This includes their groups and permissions granted to them."},"post":{"operationId":"UserController.post","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/CreateUser"}}},"description":"CreateUser","required":false},"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ResponseUser"}}},"description":""},"404":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/UserGroupNotFoundError"}}},"description":""},"406":{"content":{"application/json":{"schema":{"oneOf":[{"$ref":"#/components/schemas/UsernameContainsIllegalCharacterError"},{"$ref":"#/components/schemas/PasswordMustContainUppercaseLetterError"},{"$ref":"#/components/schemas/PasswordMustContainLowercaseLetterError"},{"$ref":"#/components/schemas/PasswordMustContainNumberError"},{"$ref":"#/components/schemas/PasswordTooShortError"}]}}},"description":""}},"summary":"Post","tags":["User"],"security":[{"AuthToken":[]},{"RefreshTokenCookie":[]}],"description":"Create a new user.
If you want to grant permissions to the user you have to create them seperately by posting to /api/permissions after creating the user."}},"/api/users/{id}":{"get":{"operationId":"UserController.getOne","parameters":[{"in":"path","name":"id","required":true,"schema":{"type":"number"}}],"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ResponseUser"}}},"description":""},"404":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/UserNotFoundError"}}},"description":""}},"summary":"Get one","tags":["User"],"security":[{"AuthToken":[]},{"RefreshTokenCookie":[]}],"description":"Lists all information about the user whose id got provided.
Please remember that all permissions granted to the user will show up here."},"put":{"operationId":"UserController.put","parameters":[{"in":"path","name":"id","required":true,"schema":{"type":"number"}}],"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/UpdateUser"}}},"description":"UpdateUser","required":false},"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ResponseUser"}}},"description":""},"404":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/UserNotFoundError"}}},"description":""},"406":{"content":{"application/json":{"schema":{"oneOf":[{"$ref":"#/components/schemas/UserIdsNotMatchingError"},{"$ref":"#/components/schemas/UsernameContainsIllegalCharacterError"},{"$ref":"#/components/schemas/PasswordMustContainUppercaseLetterError"},{"$ref":"#/components/schemas/PasswordMustContainLowercaseLetterError"},{"$ref":"#/components/schemas/PasswordMustContainNumberError"},{"$ref":"#/components/schemas/PasswordTooShortError"}]}}},"description":""}},"summary":"Put","tags":["User"],"security":[{"AuthToken":[]},{"RefreshTokenCookie":[]}],"description":"Update the user whose id you provided.
To change the permissions directly granted to the user please use /api/permissions instead.
Please remember that ids can't be changed."},"delete":{"operationId":"UserController.remove","parameters":[{"in":"path","name":"id","required":true,"schema":{"type":"number"}},{"in":"query","name":"force","required":false,"schema":{"type":"boolean"}}],"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ResponseUser"}}},"description":""},"204":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ResponseEmpty"}}},"description":""},"406":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/UserDeletionNotConfirmedError"}}},"description":""}},"summary":"Remove","tags":["User"],"security":[{"AuthToken":[]},{"RefreshTokenCookie":[]}],"description":"Delete the user whose id you provided.
You have to confirm your decision by providing the ?force=true query param.
If there are any permissions directly granted to the user they will get deleted as well.
If no user with this id exists it will just return 204(no content)."}},"/api/users/{id}/permissions":{"get":{"operationId":"UserController.getPermissions","parameters":[{"in":"path","name":"id","required":true,"schema":{"type":"number"}}],"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ResponseUser"}}},"description":""},"404":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/UserNotFoundError"}}},"description":""}},"summary":"Get permissions","tags":["User"],"security":[{"AuthToken":[]},{"RefreshTokenCookie":[]}],"description":"Lists all permissions granted to the user sorted into directly granted and inherited as permission response objects."}},"/api/usergroups":{"get":{"operationId":"UserGroupController.getAll","responses":{"200":{"content":{"application/json":{"schema":{"items":{"$ref":"#/components/schemas/ResponseUserGroup"},"type":"array"}}},"description":""}},"summary":"Get all","tags":["User Group"],"security":[{"AuthToken":[]},{"RefreshTokenCookie":[]}],"description":"Lists all groups.
The information provided might change while the project continues to evolve."},"post":{"operationId":"UserGroupController.post","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/CreateUserGroup"}}},"description":"CreateUserGroup","required":false},"responses":{"200":{"content":{"application/json":{"schema":{"oneOf":[{"$ref":"#/components/schemas/UserGroup"},{"$ref":"#/components/schemas/UserGroupNotFoundError"}]}}},"description":""}},"summary":"Post","tags":["User Group"],"security":[{"AuthToken":[]},{"RefreshTokenCookie":[]}],"description":"Create a new group.
If you want to grant permissions to the group you have to create them seperately by posting to /api/permissions after creating the group."}},"/api/usergroups/{id}":{"get":{"operationId":"UserGroupController.getOne","parameters":[{"in":"path","name":"id","required":true,"schema":{"type":"number"}}],"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ResponseUserGroup"}}},"description":""},"404":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/UserGroupNotFoundError"}}},"description":""}},"summary":"Get one","tags":["User Group"],"security":[{"AuthToken":[]},{"RefreshTokenCookie":[]}],"description":"Lists all information about the group whose id got provided.
The information provided might change while the project continues to evolve."},"put":{"operationId":"UserGroupController.put","parameters":[{"in":"path","name":"id","required":true,"schema":{"type":"number"}}],"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/UpdateUserGroup"}}},"description":"UpdateUserGroup","required":false},"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/UserGroup"}}},"description":""},"404":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/UserGroupNotFoundError"}}},"description":""},"406":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/UserGroupIdsNotMatchingError"}}},"description":""}},"summary":"Put","tags":["User Group"],"security":[{"AuthToken":[]},{"RefreshTokenCookie":[]}],"description":"Update the group whose id you provided.
To change the permissions granted to the group please use /api/permissions instead.
Please remember that ids can't be changed."},"delete":{"operationId":"UserGroupController.remove","parameters":[{"in":"path","name":"id","required":true,"schema":{"type":"number"}},{"in":"query","name":"force","required":false,"schema":{"type":"boolean"}}],"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ResponseUserGroup"}}},"description":""},"204":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ResponseEmpty"}}},"description":""}},"summary":"Remove","tags":["User Group"],"security":[{"AuthToken":[]},{"RefreshTokenCookie":[]}],"description":"Delete the group whose id you provided.
If there are any permissions directly granted to the group they will get deleted as well.
Users associated with this group won't get deleted - just deassociated.
If no group with this id exists it will just return 204(no content)."}},"/api/usergroups/{id}/permissions":{"get":{"operationId":"UserGroupController.getPermissions","parameters":[{"in":"path","name":"id","required":true,"schema":{"type":"number"}}],"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ResponseUserGroupPermissions"}}},"description":""},"404":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/UserGroupNotFoundError"}}},"description":""}},"summary":"Get permissions","tags":["User Group"],"security":[{"AuthToken":[]},{"RefreshTokenCookie":[]}],"description":"Lists all permissions granted to the group as permission response objects."}}}} \ No newline at end of file +{"components":{"schemas":{"IllegalJWTError":{"properties":{"name":{"type":"string"},"message":{"type":"string"}},"type":"object","required":["name","message"]},"UserNonexistantOrRefreshtokenInvalidError":{"properties":{"name":{"type":"string"},"message":{"type":"string"}},"type":"object","required":["name","message"]},"InvalidCredentialsError":{"properties":{"name":{"type":"string"},"message":{"type":"string"}},"type":"object","required":["name","message"]},"NoPermissionError":{"properties":{"name":{"type":"string"},"message":{"type":"string"}},"type":"object","required":["name","message"]},"UsernameOrEmailNeededError":{"properties":{"name":{"type":"string"},"message":{"type":"string"}},"type":"object","required":["name","message"]},"PasswordNeededError":{"properties":{"name":{"type":"string"},"message":{"type":"string"}},"type":"object","required":["name","message"]},"UserNotFoundError":{"properties":{"name":{"type":"string"},"message":{"type":"string"}},"type":"object","required":["name","message"]},"JwtNotProvidedError":{"properties":{"name":{"type":"string"},"message":{"type":"string"}},"type":"object","required":["name","message"]},"UserNotFoundOrRefreshTokenCountInvalidError":{"properties":{"name":{"type":"string"},"message":{"type":"string"}},"type":"object","required":["name","message"]},"RefreshTokenCountInvalidError":{"properties":{"name":{"type":"string"},"message":{"type":"string"}},"type":"object","required":["name","message"]},"ResetAlreadyRequestedError":{"properties":{"name":{"type":"string"},"message":{"type":"string"}},"type":"object","required":["name","message"]},"UserDisabledError":{"properties":{"name":{"type":"string"},"message":{"type":"string"}},"type":"object","required":["name","message"]},"JwtUser":{"properties":{"id":{"type":"integer"},"uuid":{"format":"uuid","type":"string"},"email":{"format":"email","type":"string"},"username":{"type":"string"},"firstname":{"minLength":1,"type":"string"},"middlename":{"type":"string"},"lastname":{"minLength":1,"type":"string"},"enabled":{"type":"boolean"},"refreshTokenCount":{"minLength":1,"type":"integer"},"profilePic":{"type":"string"}},"type":"object","required":["id","uuid","firstname","lastname","enabled","refreshTokenCount"]},"ResponsePrincipal":{"properties":{"id":{"type":"integer"}},"type":"object","required":["id"]},"ResponseUser":{"properties":{"firstname":{"type":"string"},"middlename":{"type":"string"},"lastname":{"type":"string"},"phone":{"type":"string"},"email":{"type":"string"},"username":{"type":"string"},"enabled":{"type":"boolean"},"profilePic":{"type":"string"},"groups":{"items":{},"type":"array"},"permissions":{"items":{},"type":"array"},"id":{"type":"integer"}},"type":"object","required":["firstname","middlename","lastname","phone","email","username","enabled","profilePic","id"]},"ResponsePermission":{"properties":{"id":{"type":"integer"},"principal":{"minLength":1,"type":"object"},"target":{"enum":["RUNNER","ORGANIZATION","TEAM","TRACK","USER","USERGROUP","PERMISSION","STATSCLIENT","DONOR","SCAN","STATION","CARD","DONATION","CONTACT","MAIL"],"type":"string","minLength":1},"action":{"enum":["GET","CREATE","UPDATE","DELETE","IMPORT"],"type":"string","minLength":1}},"type":"object","required":["id","principal","target","action"]},"Permission":{"properties":{"id":{"type":"integer"},"target":{"enum":["RUNNER","ORGANIZATION","TEAM","TRACK","USER","USERGROUP","PERMISSION","STATSCLIENT","DONOR","SCAN","STATION","CARD","DONATION","CONTACT","MAIL"],"type":"string","minLength":1},"action":{"enum":["GET","CREATE","UPDATE","DELETE","IMPORT"],"type":"string"}},"type":"object","required":["id","target","action"]},"Principal":{"properties":{"id":{"type":"integer"}},"type":"object","required":["id"]},"UserAction":{"properties":{"id":{"type":"integer"},"target":{"type":"string","minLength":1},"action":{"enum":["GET","CREATE","UPDATE","DELETE","IMPORT"],"type":"string"},"changed":{"type":"string"}},"type":"object","required":["id","target","action"]},"ResponseUserGroup":{"properties":{"name":{"type":"string","minLength":1},"description":{"type":"string"},"permissions":{"items":{},"type":"array"},"id":{"type":"integer"}},"type":"object","required":["name","id"]},"UserGroup":{"properties":{"name":{"type":"string","minLength":1},"description":{"type":"string"},"id":{"type":"integer"}},"type":"object","required":["name","id"]},"User":{"properties":{"uuid":{"format":"uuid","type":"string"},"email":{"minLength":1,"type":"string","format":"email"},"phone":{"type":"string"},"username":{"type":"string"},"firstname":{"minLength":1,"type":"string"},"middlename":{"type":"string"},"lastname":{"minLength":1,"type":"string"},"password":{"minLength":1,"type":"string"},"groups":{},"enabled":{"type":"boolean"},"refreshTokenCount":{"type":"integer"},"profilePic":{"format":"url","type":"string"},"resetRequestedTimestamp":{"type":"string"},"actions":{},"id":{"type":"integer"}},"type":"object","required":["uuid","email","username","firstname","lastname","password","enabled","refreshTokenCount","profilePic","id"]},"MailSendingError":{"properties":{"name":{"type":"string"},"message":{"type":"string"}},"type":"object","required":["name","message"]},"UsernameContainsIllegalCharacterError":{"properties":{"name":{"type":"string"},"message":{"type":"string"}},"type":"object","required":["name","message"]},"UserEmailNeededError":{"properties":{"name":{"type":"string"},"message":{"type":"string"}},"type":"object","required":["name","message"]},"UserIdsNotMatchingError":{"properties":{"name":{"type":"string"},"message":{"type":"string"}},"type":"object","required":["name","message"]},"UserDeletionNotConfirmedError":{"properties":{"name":{"type":"string"},"message":{"type":"string"}},"type":"object","required":["name","message"]},"PasswordMustContainUppercaseLetterError":{"properties":{"name":{"type":"string"},"message":{"type":"string"}},"type":"object","required":["name","message"]},"PasswordMustContainLowercaseLetterError":{"properties":{"name":{"type":"string"},"message":{"type":"string"}},"type":"object","required":["name","message"]},"PasswordMustContainNumberError":{"properties":{"name":{"type":"string"},"message":{"type":"string"}},"type":"object","required":["name","message"]},"PasswordTooShortError":{"properties":{"name":{"type":"string"},"message":{"type":"string"}},"type":"object","required":["name","message"]},"ResponseAuth":{"properties":{"access_token":{"type":"string"},"refresh_token":{"type":"string"},"access_token_expires_at":{"type":"integer"},"refresh_token_expires_at":{"type":"integer"}},"type":"object","required":["access_token","refresh_token","access_token_expires_at","refresh_token_expires_at"]},"CreateAuth":{"properties":{"username":{"type":"string"},"email":{"type":"string","format":"email"},"password":{"type":"string","minLength":1}},"type":"object","required":["password"]},"CreateResetToken":{"properties":{"email":{"type":"string","format":"email","minLength":1}},"type":"object","required":["email"]},"Logout":{"properties":{"timestamp":{"type":"string"}},"type":"object","required":["timestamp"]},"HandleLogout":{"properties":{"token":{"type":"string"}},"type":"object"},"RefreshAuth":{"properties":{"token":{"type":"string"}},"type":"object"},"ResetPassword":{"properties":{"resetToken":{"type":"string"},"password":{"type":"string","minLength":1}},"type":"object","required":["password"]},"ResponseEmpty":{"properties":{"response":{"type":"string"}},"type":"object","required":["response"]},"DonationNotFoundError":{"properties":{"name":{"type":"string"},"message":{"type":"string"}},"type":"object","required":["name","message"]},"DonationIdsNotMatchingError":{"properties":{"name":{"type":"string"},"message":{"type":"string"}},"type":"object","required":["name","message"]},"DonorNotFoundError":{"properties":{"name":{"type":"string"},"message":{"type":"string"}},"type":"object","required":["name","message"]},"DonorIdsNotMatchingError":{"properties":{"name":{"type":"string"},"message":{"type":"string"}},"type":"object","required":["name","message"]},"DonorReceiptAddressNeededError":{"properties":{"name":{"type":"string"},"message":{"type":"string"}},"type":"object","required":["name","message"]},"DonorHasDonationsError":{"properties":{"name":{"type":"string"},"message":{"type":"string"}},"type":"object","required":["name","message"]},"RunnerNotFoundError":{"properties":{"name":{"type":"string"},"message":{"type":"string"}},"type":"object","required":["name","message"]},"RunnerIdsNotMatchingError":{"properties":{"name":{"type":"string"},"message":{"type":"string"}},"type":"object","required":["name","message"]},"RunnerGroupNeededError":{"properties":{"name":{"type":"string"},"message":{"type":"string"}},"type":"object","required":["name","message"]},"RunnerEmailNeededError":{"properties":{"name":{"type":"string"},"message":{"type":"string"}},"type":"object","required":["name","message"]},"RunnerSelfserviceTimeoutError":{"properties":{"name":{"type":"string"},"message":{"type":"string"}},"type":"object","required":["name","message"]},"RunnerHasDistanceDonationsError":{"properties":{"name":{"type":"string"},"message":{"type":"string"}},"type":"object","required":["name","message"]},"AddressPostalCodeInvalidError":{"properties":{"name":{"type":"string"},"message":{"type":"string"}},"type":"object","required":["name","message"]},"AddressFirstLineEmptyError":{"properties":{"name":{"type":"string"},"message":{"type":"string"}},"type":"object","required":["name","message"]},"AddressPostalCodeEmptyError":{"properties":{"name":{"type":"string"},"message":{"type":"string"}},"type":"object","required":["name","message"]},"AddressCityEmptyError":{"properties":{"name":{"type":"string"},"message":{"type":"string"}},"type":"object","required":["name","message"]},"AddressCountryEmptyError":{"properties":{"name":{"type":"string"},"message":{"type":"string"}},"type":"object","required":["name","message"]},"Address":{"properties":{"address1":{"type":"string"},"address2":{"type":"string"},"postalcode":{"type":"string"},"city":{"type":"string"},"country":{"type":"string"}},"type":"object","required":["address1","address2","postalcode","city","country"]},"ResponseParticipant":{"properties":{"id":{"type":"integer"},"firstname":{"type":"string"},"middlename":{"type":"string"},"lastname":{"type":"string"},"phone":{"type":"string"},"email":{"type":"string"},"address":{"type":"object"}},"type":"object","required":["id","firstname","middlename","lastname","phone","email"]},"ResponseDonor":{"properties":{"receiptNeeded":{"type":"boolean"},"donationAmount":{"type":"integer"},"paidDonationAmount":{"type":"integer"},"id":{"type":"integer"},"firstname":{"type":"string"},"middlename":{"type":"string"},"lastname":{"type":"string"},"phone":{"type":"string"},"email":{"type":"string"},"address":{"type":"object"}},"type":"object","required":["receiptNeeded","donationAmount","paidDonationAmount","id","firstname","middlename","lastname","phone","email"]},"ResponseDonation":{"properties":{"id":{"exclusiveMinimum":true,"minimum":0,"type":"integer"},"donor":{"minLength":1,"type":"string"},"amount":{"type":"integer"},"paidAmount":{"type":"integer"}},"type":"object","required":["id","donor","amount","paidAmount"]},"ResponseGroupContact":{"properties":{"id":{"type":"integer"},"firstname":{"type":"string"},"middlename":{"type":"string"},"lastname":{"type":"string"},"phone":{"type":"string"},"email":{"type":"string"},"groups":{"type":"object"},"address":{"type":"object"}},"type":"object","required":["id","firstname","middlename","lastname","phone","email","groups","address"]},"ResponseRunnerGroup":{"properties":{"id":{"minLength":1,"type":"integer"},"name":{"minLength":1,"type":"string"},"contact":{"type":"object"}},"type":"object","required":["id","name"]},"ResponseRunner":{"properties":{"distance":{"type":"integer"},"group":{"type":"object"},"id":{"type":"integer"},"firstname":{"type":"string"},"middlename":{"type":"string"},"lastname":{"type":"string"},"phone":{"type":"string"},"email":{"type":"string"},"address":{"type":"object"}},"type":"object","required":["distance","group","id","firstname","middlename","lastname","phone","email"]},"ResponseDistanceDonation":{"properties":{"runner":{"type":"object"},"amountPerDistance":{"exclusiveMinimum":true,"minimum":0,"type":"integer"},"id":{"exclusiveMinimum":true,"minimum":0,"type":"integer"},"donor":{"minLength":1,"type":"string"},"amount":{"type":"integer"},"paidAmount":{"type":"integer"}},"type":"object","required":["runner","amountPerDistance","id","donor","amount","paidAmount"]},"Participant":{"properties":{"id":{"type":"integer"},"firstname":{"type":"string","minLength":1},"middlename":{"type":"string"},"lastname":{"type":"string","minLength":1},"phone":{"type":"string"},"email":{"format":"email","type":"string"}},"type":"object","required":["id","firstname","lastname"]},"Donor":{"properties":{"receiptNeeded":{"type":"boolean"},"donationAmount":{"type":"integer"},"paidDonationAmount":{"type":"integer"},"id":{"type":"integer"},"firstname":{"type":"string","minLength":1},"middlename":{"type":"string"},"lastname":{"type":"string","minLength":1},"phone":{"type":"string"},"email":{"format":"email","type":"string"}},"type":"object","required":["receiptNeeded","donationAmount","paidDonationAmount","id","firstname","lastname"]},"Donation":{"properties":{"id":{"type":"integer"},"donor":{"minLength":1,"type":"string"},"paidAmount":{"type":"integer"}},"type":"object","required":["id","donor","paidAmount"]},"RunnerCardNotFoundError":{"properties":{"name":{"type":"string"},"message":{"type":"string"}},"type":"object","required":["name","message"]},"RunnerCardIdsNotMatchingError":{"properties":{"name":{"type":"string"},"message":{"type":"string"}},"type":"object","required":["name","message"]},"RunnerCardHasScansError":{"properties":{"name":{"type":"string"},"message":{"type":"string"}},"type":"object","required":["name","message"]},"RunnerCardIdOutOfRangeError":{"properties":{"name":{"type":"string"},"message":{"type":"string"}},"type":"object","required":["name","message"]},"ResponseRunnerCard":{"properties":{"id":{"type":"integer"},"runner":{"type":"object"},"code":{"minLength":1,"type":"string"},"enabled":{"type":"boolean"}},"type":"object","required":["id","runner","code","enabled"]},"ResponseScan":{"properties":{"id":{"type":"integer"},"runner":{"minLength":1,"type":"string"},"valid":{"type":"boolean"},"distance":{"exclusiveMinimum":true,"minimum":0,"type":"integer"}},"type":"object","required":["id","runner","valid","distance"]},"TrackNotFoundError":{"properties":{"name":{"type":"string"},"message":{"type":"string"}},"type":"object","required":["name","message"]},"TrackIdsNotMatchingError":{"properties":{"name":{"type":"string"},"message":{"type":"string"}},"type":"object","required":["name","message"]},"TrackLapTimeCantBeNegativeError":{"properties":{"name":{"type":"string"},"message":{"type":"string"}},"type":"object","required":["name","message"]},"TrackHasScanStationsError":{"properties":{"name":{"type":"string"},"message":{"type":"string"}},"type":"object","required":["name","message"]},"ResponseTrack":{"properties":{"id":{"type":"integer"},"name":{"type":"string"},"distance":{"type":"integer"},"minimumLapTime":{"type":"integer"}},"type":"object","required":["id","name","distance"]},"ResponseScanStation":{"properties":{"id":{"type":"integer"},"description":{"type":"string"},"key":{"type":"string"},"prefix":{"minLength":1,"type":"string"},"track":{"minLength":1,"type":"object"},"enabled":{"type":"boolean"}},"type":"object","required":["id","prefix","track","enabled"]},"ResponseTrackScan":{"properties":{"track":{"minLength":1,"type":"string"},"card":{"minLength":1,"type":"string"},"station":{"minLength":1,"type":"string"},"timestamp":{"minLength":1,"type":"string","pattern":"d{4}-[01]d-[0-3]dT[0-2]d:[0-5]d:[0-5]d.d+Z?"},"lapTime":{"type":"number"},"id":{"type":"integer"},"runner":{"minLength":1,"type":"string"},"valid":{"type":"boolean"},"distance":{"exclusiveMinimum":true,"minimum":0,"type":"integer"}},"type":"object","required":["track","card","station","timestamp","lapTime","id","runner","valid","distance"]},"Scan":{"properties":{"id":{"type":"integer"},"runner":{"minLength":1,"type":"string"},"valid":{"type":"boolean"},"_distance":{"type":"integer"},"distance":{"exclusiveMinimum":true,"minimum":0,"type":"integer"}},"type":"object","required":["id","runner","valid","_distance","distance"]},"Track":{"properties":{"id":{"type":"integer"},"name":{"minLength":1,"type":"string"},"distance":{"exclusiveMinimum":true,"minimum":0,"type":"integer"},"minimumLapTime":{"type":"integer"}},"type":"object","required":["id","name","distance"]},"ScanStation":{"properties":{"id":{"type":"integer"},"description":{"type":"string"},"track":{"minLength":1,"type":"string"},"prefix":{"type":"string"},"key":{"type":"string","minLength":1},"cleartextkey":{"type":"string"},"enabled":{"type":"boolean"}},"type":"object","required":["id","track","prefix","key","enabled"]},"TrackScan":{"properties":{"track":{"minLength":1,"type":"string"},"card":{"minLength":1,"type":"string"},"station":{"minLength":1,"type":"string"},"distance":{"exclusiveMinimum":true,"minimum":0,"type":"integer"},"timestamp":{"type":"integer"},"lapTime":{"type":"number"},"id":{"type":"integer"},"runner":{"minLength":1,"type":"string"},"valid":{"type":"boolean"},"_distance":{"type":"integer"}},"type":"object","required":["track","card","station","distance","timestamp","lapTime","id","runner","valid","_distance"]},"RunnerCard":{"properties":{"id":{"type":"integer"},"runner":{},"enabled":{"type":"boolean"}},"type":"object","required":["id","enabled"]},"GroupContact":{"properties":{"id":{"type":"integer"},"firstname":{"type":"string","minLength":1},"middlename":{"type":"string"},"lastname":{"type":"string","minLength":1},"phone":{"type":"string"},"email":{"format":"email","type":"string"}},"type":"object","required":["id","firstname","lastname"]},"RunnerGroup":{"properties":{"id":{"type":"integer"},"name":{"type":"string","minLength":1},"contact":{},"distance":{"type":"integer"},"distanceDonationAmount":{"type":"integer"}},"type":"object","required":["id","name","distance","distanceDonationAmount"]},"Runner":{"properties":{"group":{"minLength":1,"type":"string"},"resetRequestedTimestamp":{"type":"string"},"distance":{"type":"integer"},"distanceDonationAmount":{"type":"integer"},"id":{"type":"integer"},"firstname":{"type":"string","minLength":1},"middlename":{"type":"string"},"lastname":{"type":"string","minLength":1},"phone":{"type":"string"},"email":{"format":"email","type":"string"}},"type":"object","required":["group","distance","distanceDonationAmount","id","firstname","lastname"]},"DistanceDonation":{"properties":{"runner":{"minLength":1,"type":"string"},"amountPerDistance":{"exclusiveMinimum":true,"minimum":0,"type":"integer"},"id":{"type":"integer"},"donor":{"minLength":1,"type":"string"},"paidAmount":{"type":"integer"}},"type":"object","required":["runner","amountPerDistance","id","donor","paidAmount"]},"CreateDonation":{"properties":{"donor":{"exclusiveMinimum":true,"minimum":0,"type":"integer"},"paidAmount":{"type":"integer"}},"type":"object","required":["donor"]},"CreateDistanceDonation":{"properties":{"runner":{"exclusiveMinimum":true,"minimum":0,"type":"integer"},"amountPerDistance":{"exclusiveMinimum":true,"minimum":0,"type":"integer"},"donor":{"exclusiveMinimum":true,"minimum":0,"type":"integer"},"paidAmount":{"type":"integer"}},"type":"object","required":["runner","amountPerDistance","donor"]},"FixedDonation":{"properties":{"_amount":{"exclusiveMinimum":true,"minimum":0,"type":"integer"},"amount":{"exclusiveMinimum":true,"minimum":0,"type":"integer"},"id":{"type":"integer"},"donor":{"minLength":1,"type":"string"},"paidAmount":{"type":"integer"}},"type":"object","required":["_amount","amount","id","donor","paidAmount"]},"CreateFixedDonation":{"properties":{"amount":{"exclusiveMinimum":true,"minimum":0,"type":"integer"},"donor":{"exclusiveMinimum":true,"minimum":0,"type":"integer"},"paidAmount":{"type":"integer"}},"type":"object","required":["amount","donor"]},"UpdateDonation":{"properties":{"id":{"type":"integer"},"donor":{"exclusiveMinimum":true,"minimum":0,"type":"integer"},"paidAmount":{"type":"integer"}},"type":"object","required":["id","donor"]},"UpdateDistanceDonation":{"properties":{"runner":{"exclusiveMinimum":true,"minimum":0,"type":"integer"},"amountPerDistance":{"exclusiveMinimum":true,"minimum":0,"type":"integer"},"id":{"type":"integer"},"donor":{"exclusiveMinimum":true,"minimum":0,"type":"integer"},"paidAmount":{"type":"integer"}},"type":"object","required":["runner","amountPerDistance","id","donor"]},"UpdateFixedDonation":{"properties":{"amount":{"exclusiveMinimum":true,"minimum":0,"type":"integer"},"id":{"type":"integer"},"donor":{"exclusiveMinimum":true,"minimum":0,"type":"integer"},"paidAmount":{"type":"integer"}},"type":"object","required":["amount","id","donor"]},"CreateParticipant":{"properties":{"firstname":{"minLength":1,"type":"string"},"middlename":{"type":"string"},"lastname":{"minLength":1,"type":"string"},"phone":{"type":"string"},"email":{"format":"email","type":"string"},"address":{"type":"object"}},"type":"object","required":["firstname","lastname"]},"CreateDonor":{"properties":{"receiptNeeded":{"type":"boolean"},"firstname":{"minLength":1,"type":"string"},"middlename":{"type":"string"},"lastname":{"minLength":1,"type":"string"},"phone":{"type":"string"},"email":{"format":"email","type":"string"},"address":{"type":"object"}},"type":"object","required":["firstname","lastname"]},"UpdateDonor":{"properties":{"id":{"type":"integer"},"receiptNeeded":{"type":"boolean"},"firstname":{"minLength":1,"type":"string"},"middlename":{"type":"string"},"lastname":{"minLength":1,"type":"string"},"phone":{"type":"string"},"email":{"format":"email","type":"string"},"address":{"type":"object"}},"type":"object","required":["id","firstname","lastname"]},"GroupContactNotFoundError":{"properties":{"name":{"type":"string"},"message":{"type":"string"}},"type":"object","required":["name","message"]},"GroupContactIdsNotMatchingError":{"properties":{"name":{"type":"string"},"message":{"type":"string"}},"type":"object","required":["name","message"]},"RunnerGroupNotFoundError":{"properties":{"name":{"type":"string"},"message":{"type":"string"}},"type":"object","required":["name","message"]},"CreateGroupContact":{"properties":{"firstname":{"type":"string","minLength":1},"middlename":{"type":"string"},"lastname":{"type":"string","minLength":1},"address":{"type":"object"},"phone":{"type":"string"},"email":{"format":"email","type":"string"},"groups":{}},"type":"object","required":["firstname","lastname"]},"UpdateGroupContact":{"properties":{"id":{"type":"integer"},"firstname":{"type":"string","minLength":1},"middlename":{"type":"string"},"lastname":{"type":"string","minLength":1},"address":{"type":"object"},"phone":{"type":"string"},"email":{"format":"email","type":"string"},"groups":{}},"type":"object","required":["id","firstname","lastname"]},"RunnerOrganizationNotFoundError":{"properties":{"name":{"type":"string"},"message":{"type":"string"}},"type":"object","required":["name","message"]},"RunnerOrganizationIdsNotMatchingError":{"properties":{"name":{"type":"string"},"message":{"type":"string"}},"type":"object","required":["name","message"]},"RunnerOrganizationHasRunnersError":{"properties":{"name":{"type":"string"},"message":{"type":"string"}},"type":"object","required":["name","message"]},"RunnerOrganizationHasTeamsError":{"properties":{"name":{"type":"string"},"message":{"type":"string"}},"type":"object","required":["name","message"]},"RunnerOrganizationWrongTypeError":{"properties":{"name":{"type":"string"},"message":{"type":"string"}},"type":"object","required":["name","message"]},"ResponseRunnerOrganization":{"properties":{"address":{"type":"object"},"teams":{"items":{},"type":"array"},"registrationKey":{"format":"base64","type":"string"},"registrationEnabled":{"type":"boolean"},"id":{"minLength":1,"type":"integer"},"name":{"minLength":1,"type":"string"},"contact":{"type":"object"}},"type":"object","required":["teams","id","name"]},"ResponseRunnerTeam":{"properties":{"parentGroup":{"minLength":1,"type":"object"},"id":{"minLength":1,"type":"integer"},"name":{"minLength":1,"type":"string"},"contact":{"type":"object"}},"type":"object","required":["parentGroup","id","name"]},"RunnerTeam":{"properties":{"parentGroup":{"minLength":1,"type":"string"},"id":{"type":"integer"},"name":{"type":"string","minLength":1},"contact":{},"distance":{"type":"integer"},"distanceDonationAmount":{"type":"integer"}},"type":"object","required":["parentGroup","id","name","distance","distanceDonationAmount"]},"RunnerOrganization":{"properties":{"address":{},"key":{"type":"string"},"distance":{"type":"integer"},"distanceDonationAmount":{"type":"integer"},"id":{"type":"integer"},"name":{"type":"string","minLength":1},"contact":{}},"type":"object","required":["distance","distanceDonationAmount","id","name"]},"RunnerTeamNotFoundError":{"properties":{"name":{"type":"string"},"message":{"type":"string"}},"type":"object","required":["name","message"]},"RunnerTeamIdsNotMatchingError":{"properties":{"name":{"type":"string"},"message":{"type":"string"}},"type":"object","required":["name","message"]},"RunnerTeamHasRunnersError":{"properties":{"name":{"type":"string"},"message":{"type":"string"}},"type":"object","required":["name","message"]},"RunnerTeamNeedsParentError":{"properties":{"name":{"type":"string"},"message":{"type":"string"}},"type":"object","required":["name","message"]},"CreateRunner":{"properties":{"group":{"type":"integer"},"firstname":{"minLength":1,"type":"string"},"middlename":{"type":"string"},"lastname":{"minLength":1,"type":"string"},"phone":{"type":"string"},"email":{"format":"email","type":"string"},"address":{"type":"object"}},"type":"object","required":["group","firstname","lastname"]},"ImportRunner":{"properties":{"firstname":{"minLength":1,"type":"string"},"middlename":{"type":"string"},"lastname":{"minLength":1,"type":"string"},"team":{"type":"string"},"class":{"type":"string"}},"type":"object","required":["firstname","lastname"]},"UpdateRunner":{"properties":{"id":{"type":"integer"},"group":{"exclusiveMinimum":true,"minimum":0,"type":"integer"},"firstname":{"minLength":1,"type":"string"},"middlename":{"type":"string"},"lastname":{"minLength":1,"type":"string"},"phone":{"type":"string"},"email":{"format":"email","type":"string"},"address":{"type":"object"}},"type":"object","required":["id","group","firstname","lastname"]},"CreateRunnerCard":{"properties":{"runner":{"type":"integer"},"enabled":{"type":"boolean"}},"type":"object","required":["enabled"]},"UpdateRunnerCard":{"properties":{"id":{"exclusiveMinimum":true,"minimum":0,"type":"integer"},"runner":{"type":"integer"},"enabled":{"type":"boolean"}},"type":"object","required":["id","enabled"]},"ScanNotFoundError":{"properties":{"name":{"type":"string"},"message":{"type":"string"}},"type":"object","required":["name","message"]},"ScanIdsNotMatchingError":{"properties":{"name":{"type":"string"},"message":{"type":"string"}},"type":"object","required":["name","message"]},"ScanStationNotFoundError":{"properties":{"name":{"type":"string"},"message":{"type":"string"}},"type":"object","required":["name","message"]},"ScanStationIdsNotMatchingError":{"properties":{"name":{"type":"string"},"message":{"type":"string"}},"type":"object","required":["name","message"]},"ScanStationHasScansError":{"properties":{"name":{"type":"string"},"message":{"type":"string"}},"type":"object","required":["name","message"]},"CreateScan":{"properties":{"runner":{"exclusiveMinimum":true,"minimum":0,"type":"integer"},"valid":{"type":"boolean"},"distance":{"exclusiveMinimum":true,"minimum":0,"type":"integer"}},"type":"object","required":["runner","distance"]},"CreateTrackScan":{"properties":{"card":{"exclusiveMinimum":true,"minimum":0,"type":"integer"},"station":{"exclusiveMinimum":true,"minimum":0,"type":"integer"}},"type":"object","required":["card"]},"UpdateScan":{"properties":{"id":{"type":"integer"},"runner":{"exclusiveMinimum":true,"minimum":0,"type":"integer"},"valid":{"type":"boolean"},"distance":{"exclusiveMinimum":true,"minimum":0,"type":"integer"}},"type":"object","required":["id","runner","distance"]},"UpdateTrackScan":{"properties":{"id":{"type":"integer"},"runner":{"exclusiveMinimum":true,"minimum":0,"type":"integer"},"valid":{"type":"boolean"},"track":{"exclusiveMinimum":true,"minimum":0,"type":"integer"}},"type":"object","required":["id","runner","track"]},"GroupNameNeededError":{"properties":{"name":{"type":"string"},"message":{"type":"string"}},"type":"object","required":["name","message"]},"UserGroupNotFoundError":{"properties":{"name":{"type":"string"},"message":{"type":"string"}},"type":"object","required":["name","message"]},"UserGroupIdsNotMatchingError":{"properties":{"name":{"type":"string"},"message":{"type":"string"}},"type":"object","required":["name","message"]},"UpdateUser":{"properties":{"id":{"type":"integer"},"firstname":{"type":"string"},"middlename":{"type":"string"},"lastname":{"type":"string"},"username":{"type":"string"},"email":{"minLength":1,"type":"string","format":"email"},"phone":{"type":"string"},"password":{"type":"string"},"enabled":{"type":"boolean"},"groups":{},"profilePic":{"format":"url","type":"string"}},"type":"object","required":["id","firstname","lastname","email"]},"ResponseUserPermissions":{"properties":{"directlyGranted":{"items":{},"type":"array"},"inherited":{"items":{},"type":"array"}},"type":"object"},"PermissionNotFoundError":{"properties":{"name":{"type":"string"},"message":{"type":"string"}},"type":"object","required":["name","message"]},"PermissionIdsNotMatchingError":{"properties":{"name":{"type":"string"},"message":{"type":"string"}},"type":"object","required":["name","message"]},"PermissionNeedsPrincipalError":{"properties":{"name":{"type":"string"},"message":{"type":"string"}},"type":"object","required":["name","message"]},"PrincipalNotFoundError":{"properties":{"name":{"type":"string"},"message":{"type":"string"}},"type":"object","required":["name","message"]},"PrincipalWrongTypeError":{"properties":{"name":{"type":"string"},"message":{"type":"string"}},"type":"object","required":["name","message"]},"CreatePermission":{"properties":{"principal":{"minLength":1,"type":"integer"},"target":{"enum":["RUNNER","ORGANIZATION","TEAM","TRACK","USER","USERGROUP","PERMISSION","STATSCLIENT","DONOR","SCAN","STATION","CARD","DONATION","CONTACT","MAIL"],"type":"string","minLength":1},"action":{"enum":["GET","CREATE","UPDATE","DELETE","IMPORT"],"type":"string","minLength":1}},"type":"object","required":["principal","target","action"]},"UpdatePermission":{"properties":{"id":{"type":"integer"},"principal":{"exclusiveMinimum":true,"minimum":0,"type":"integer"},"target":{"minLength":1,"type":"string"},"action":{"minLength":1,"type":"string"}},"type":"object","required":["id","principal","target","action"]},"CreateRunnerGroup":{"properties":{"name":{"type":"string","minLength":1},"contact":{"type":"integer"}},"type":"object","required":["name"]},"CreateRunnerOrganization":{"properties":{"address":{"type":"object"},"registrationEnabled":{"type":"boolean"},"name":{"type":"string","minLength":1},"contact":{"type":"integer"}},"type":"object","required":["name"]},"UpdateRunnerOrganization":{"properties":{"id":{"type":"integer"},"address":{"type":"object"},"registrationEnabled":{"type":"boolean"},"name":{"type":"string","minLength":1},"contact":{"type":"integer"}},"type":"object","required":["id","name"]},"CreateRunnerTeam":{"properties":{"parentGroup":{"minLength":1,"type":"integer"},"name":{"type":"string","minLength":1},"contact":{"type":"integer"}},"type":"object","required":["parentGroup","name"]},"UpdateRunnerTeam":{"properties":{"id":{"type":"integer"},"parentGroup":{"exclusiveMinimum":true,"minimum":0,"type":"integer"},"name":{"type":"string","minLength":1},"contact":{"type":"integer"}},"type":"object","required":["id","parentGroup","name"]},"CreateSelfServiceCitizenRunner":{"properties":{"email":{"format":"email","type":"string","minLength":1},"firstname":{"minLength":1,"type":"string"},"middlename":{"type":"string"},"lastname":{"minLength":1,"type":"string"},"phone":{"type":"string"},"address":{"type":"object"}},"type":"object","required":["firstname","lastname"]},"CreateSelfServiceRunner":{"properties":{"team":{"type":"integer"},"firstname":{"minLength":1,"type":"string"},"middlename":{"type":"string"},"lastname":{"minLength":1,"type":"string"},"phone":{"type":"string"},"email":{"format":"email","type":"string"},"address":{"type":"object"}},"type":"object","required":["firstname","lastname"]},"ResponseSelfServiceTeam":{"properties":{"name":{"type":"string","minLength":1},"id":{"exclusiveMinimum":true,"minimum":0,"type":"integer"}},"type":"object","required":["name","id"]},"ResponseSelfServiceOrganisation":{"properties":{"name":{"type":"string","minLength":1},"teams":{"items":{},"type":"array"}},"type":"object","required":["name","teams"]},"ResponseSelfServiceDonor":{"properties":{"id":{"type":"integer"},"firstname":{"type":"string"},"middlename":{"type":"string"},"lastname":{"type":"string"}},"type":"object","required":["id","firstname","middlename","lastname"]},"ResponseSelfServiceDonation":{"properties":{"donor":{"minLength":1,"type":"string"},"amount":{"type":"integer"},"amountPerDistance":{"exclusiveMinimum":true,"minimum":0,"type":"integer"}},"type":"object","required":["donor","amount","amountPerDistance"]},"ResponseSelfServiceRunner":{"properties":{"distance":{"type":"integer"},"donationAmount":{"type":"integer"},"group":{"type":"string"},"distanceDonations":{"type":"string"},"token":{"type":"string"},"id":{"type":"integer"},"firstname":{"type":"string"},"middlename":{"type":"string"},"lastname":{"type":"string"},"phone":{"type":"string"},"email":{"type":"string"},"address":{"type":"object"}},"type":"object","required":["distance","donationAmount","group","distanceDonations","id","firstname","middlename","lastname","phone","email"]},"ResponseSelfServiceScan":{"properties":{"id":{"type":"integer"},"valid":{"type":"boolean"},"distance":{"exclusiveMinimum":true,"minimum":0,"type":"integer"},"lapTime":{"minLength":1,"type":"integer"}},"type":"object","required":["id","valid","distance","lapTime"]},"CreateScanStation":{"properties":{"description":{"type":"string"},"track":{"exclusiveMinimum":true,"minimum":0,"type":"integer"},"enabled":{"type":"boolean"}},"type":"object","required":["track"]},"UpdateScanStation":{"properties":{"id":{"type":"integer"},"description":{"type":"string"},"enabled":{"type":"boolean"}},"type":"object","required":["id"]},"StatsClientNotFoundError":{"properties":{"name":{"type":"string"},"message":{"type":"string"}},"type":"object","required":["name","message"]},"StatsClientIdsNotMatchingError":{"properties":{"name":{"type":"string"},"message":{"type":"string"}},"type":"object","required":["name","message"]},"ResponseStatsClient":{"properties":{"id":{"type":"integer"},"description":{"type":"string"},"key":{"type":"string"},"prefix":{"minLength":1,"type":"string"}},"type":"object","required":["id","prefix"]},"StatsClient":{"properties":{"id":{"type":"integer"},"description":{"type":"string"},"prefix":{"type":"string"},"key":{"type":"string"},"cleartextkey":{"type":"string"}},"type":"object","required":["id","prefix","key"]},"CreateStatsClient":{"properties":{"description":{"type":"string"}},"type":"object"},"ResponseStats":{"properties":{"total_runners":{"type":"integer"},"total_teams":{"type":"integer"},"total_orgs":{"type":"integer"},"total_users":{"type":"integer"},"total_scans":{"type":"integer"},"total_distance":{"type":"integer"},"total_donation":{"type":"integer"},"average_distance":{"type":"integer"}},"type":"object","required":["total_runners","total_teams","total_orgs","total_users","total_scans","total_distance","total_donation","average_distance"]},"ResponseStatsOrgnisation":{"properties":{"id":{"type":"integer"},"name":{"type":"string"},"distance":{"type":"integer"},"donationAmount":{"type":"integer"}},"type":"object","required":["id","name","distance","donationAmount"]},"ResponseStatsRunner":{"properties":{"id":{"type":"integer"},"firstname":{"type":"string"},"middlename":{"type":"string"},"lastname":{"type":"string"},"distance":{"type":"integer"},"donationAmount":{"type":"integer"},"minLaptime":{"type":"integer"},"group":{"type":"object"}},"type":"object","required":["id","firstname","middlename","lastname","distance","donationAmount","group"]},"ResponseStatsTeam":{"properties":{"id":{"type":"integer"},"name":{"type":"string"},"distance":{"type":"integer"},"donationAmount":{"type":"integer"},"parent":{"type":"object"}},"type":"object","required":["id","name","distance","donationAmount","parent"]},"CreateTrack":{"properties":{"name":{"minLength":1,"type":"string"},"distance":{"exclusiveMinimum":true,"minimum":0,"type":"integer"},"minimumLapTime":{"type":"integer"}},"type":"object","required":["name","distance"]},"UpdateTrack":{"properties":{"id":{"type":"integer"},"name":{"minLength":1,"type":"string"},"distance":{"exclusiveMinimum":true,"minimum":0,"type":"integer"},"minimumLapTime":{"type":"integer"}},"type":"object","required":["id","name","distance"]},"CreateUser":{"properties":{"firstname":{"type":"string"},"middlename":{"type":"string"},"lastname":{"type":"string"},"username":{"type":"string"},"email":{"minLength":1,"type":"string","format":"email"},"phone":{"type":"string"},"password":{"type":"string"},"enabled":{"type":"boolean"},"groups":{},"profilePic":{"format":"url","type":"string"}},"type":"object","required":["firstname","lastname","email","password"]},"CreateUserGroup":{"properties":{"name":{"type":"string"},"description":{"type":"string"}},"type":"object","required":["name"]},"UpdateUserGroup":{"properties":{"id":{"type":"integer"},"name":{"type":"string"},"description":{"type":"string"}},"type":"object","required":["id","name"]},"ResponseUserGroupPermissions":{"properties":{"directlyGranted":{"items":{},"type":"array"},"inherited":{"items":{},"type":"array"}},"type":"object"}},"securitySchemes":{"AuthToken":{"type":"http","scheme":"bearer","bearerFormat":"JWT","description":"A JWT based access token. Use /api/auth/login or /api/auth/refresh to get one."},"RefreshTokenCookie":{"type":"apiKey","in":"cookie","name":"lfk_backend__refresh_token","description":"A cookie containing a JWT based refreh token. Attention: Doesn't work in swagger-ui. Use /api/auth/login or /api/auth/refresh to get one."},"StatsApiToken":{"type":"http","scheme":"bearer","description":"Api token that can be obtained by creating a new stats client (post to /api/statsclients). Only valid for obtaining stats."},"StationApiToken":{"type":"http","scheme":"bearer","description":"Api token that can be obtained by creating a new scan station (post to /api/stations). Only valid for creating scans."}}},"info":{"title":"LfK! Backend API","version":"0.12.0","description":"The the backend API for the LfK! runner system.
[Imprint](/imprint) & [Privacy](/privacy)"},"openapi":"3.0.0","paths":{"/api/auth/login":{"post":{"operationId":"AuthController.login","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/CreateAuth"}}},"description":"CreateAuth","required":false},"responses":{"200":{"content":{"application/json":{"schema":{"oneOf":[{"$ref":"#/components/schemas/ResponseAuth"},{"$ref":"#/components/schemas/InvalidCredentialsError"},{"$ref":"#/components/schemas/UserNotFoundError"},{"$ref":"#/components/schemas/UsernameOrEmailNeededError"},{"$ref":"#/components/schemas/PasswordNeededError"},{"$ref":"#/components/schemas/InvalidCredentialsError"}]}}},"description":""}},"summary":"Login","tags":["Auth"],"description":"Login with your username/email and password.
You will receive: \n * access token (use it as a bearer token) \n * refresh token (will also be sent as a cookie)"}},"/api/auth/logout":{"post":{"operationId":"AuthController.logout","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/HandleLogout"}}},"description":"HandleLogout","required":false},"responses":{"200":{"content":{"application/json":{"schema":{"oneOf":[{"$ref":"#/components/schemas/Logout"},{"$ref":"#/components/schemas/InvalidCredentialsError"},{"$ref":"#/components/schemas/UserNotFoundError"},{"$ref":"#/components/schemas/UsernameOrEmailNeededError"},{"$ref":"#/components/schemas/PasswordNeededError"},{"$ref":"#/components/schemas/InvalidCredentialsError"}]}}},"description":""}},"summary":"Logout","tags":["Auth"],"description":"Logout using your refresh token.
This instantly invalidates all your access and refresh tokens.","security":[{"RefreshTokenCookie":[]}]}},"/api/auth/refresh":{"post":{"operationId":"AuthController.refresh","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/RefreshAuth"}}},"description":"RefreshAuth","required":false},"responses":{"200":{"content":{"application/json":{"schema":{"oneOf":[{"$ref":"#/components/schemas/ResponseAuth"},{"$ref":"#/components/schemas/JwtNotProvidedError"},{"$ref":"#/components/schemas/IllegalJWTError"},{"$ref":"#/components/schemas/UserNotFoundError"},{"$ref":"#/components/schemas/RefreshTokenCountInvalidError"}]}}},"description":""}},"summary":"Refresh","tags":["Auth"],"description":"Refresh your access and refresh tokens using a valid refresh token.
You will receive: \n * access token (use it as a bearer token) \n * refresh token (will also be sent as a cookie)","security":[{"RefreshTokenCookie":[]}]}},"/api/auth/reset":{"post":{"operationId":"AuthController.getResetToken","parameters":[{"in":"query","name":"locale","required":false,"schema":{"type":"string"}}],"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/CreateResetToken"}}},"description":"CreateResetToken","required":false},"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ResponseEmpty"}}},"description":""},"404":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/UserNotFoundError"}}},"description":""},"406":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/UsernameOrEmailNeededError"}}},"description":""},"500":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/MailSendingError"}}},"description":""}},"summary":"Get reset token","tags":["Auth"],"description":"Request a password reset token.
This will provide you with a reset token that you can use by posting to /api/auth/reset/{token}."}},"/api/auth/reset/{token}":{"post":{"operationId":"AuthController.resetPassword","parameters":[{"in":"path","name":"token","required":true,"schema":{"type":"string"}}],"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ResetPassword"}}},"description":"ResetPassword","required":false},"responses":{"200":{"content":{"application/json":{"schema":{"oneOf":[{"$ref":"#/components/schemas/ResponseAuth"},{"$ref":"#/components/schemas/UserNotFoundError"},{"$ref":"#/components/schemas/UsernameOrEmailNeededError"}]}}},"description":""}},"summary":"Reset password","tags":["Auth"],"description":"Reset a user's utilising a valid password reset token.
This will set the user's password to the one you provided in the body.
To get a reset token post to /api/auth/reset with your username."}},"/api/donations":{"get":{"operationId":"DonationController.getAll","responses":{"200":{"content":{"application/json":{"schema":{"oneOf":[{"items":{"$ref":"#/components/schemas/ResponseDonation"},"type":"array"},{"items":{"$ref":"#/components/schemas/ResponseDistanceDonation"},"type":"array"}]}}},"description":""}},"summary":"Get all","tags":["Donation"],"security":[{"AuthToken":[]},{"RefreshTokenCookie":[]}],"description":"Lists all donations (fixed or distance based) from all donors.
This includes the donations's runner's distance ran(if distance donation)."}},"/api/donations/{id}":{"get":{"operationId":"DonationController.getOne","parameters":[{"in":"path","name":"id","required":true,"schema":{"type":"number"}}],"responses":{"200":{"content":{"application/json":{"schema":{"oneOf":[{"$ref":"#/components/schemas/ResponseDonation"},{"$ref":"#/components/schemas/ResponseDistanceDonation"}]}}},"description":""},"404":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/DonationNotFoundError"}}},"description":""}},"summary":"Get one","tags":["Donation"],"security":[{"AuthToken":[]},{"RefreshTokenCookie":[]}],"description":"Lists all information about the donation whose id got provided. This includes the donation's runner's distance ran (if distance donation)."},"delete":{"operationId":"DonationController.remove","parameters":[{"in":"path","name":"id","required":true,"schema":{"type":"number"}},{"in":"query","name":"force","required":false,"schema":{"type":"boolean"}}],"responses":{"200":{"content":{"application/json":{"schema":{"oneOf":[{"$ref":"#/components/schemas/ResponseDonation"},{"$ref":"#/components/schemas/ResponseDistanceDonation"}]}}},"description":""},"204":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ResponseEmpty"}}},"description":""}},"summary":"Remove","tags":["Donation"],"security":[{"AuthToken":[]},{"RefreshTokenCookie":[]}],"description":"Delete the donation whose id you provided.
If no donation with this id exists it will just return 204(no content)."}},"/api/donations/fixed":{"post":{"operationId":"DonationController.postFixed","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/CreateFixedDonation"}}},"description":"CreateFixedDonation","required":false},"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ResponseDonation"}}},"description":""},"404":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/DonorNotFoundError"}}},"description":""}},"summary":"Post fixed","tags":["Donation"],"security":[{"AuthToken":[]},{"RefreshTokenCookie":[]}],"description":"Create a fixed donation (not distance donation - use /donations/distance instead).
Please rmemember to provide the donation's donors's id and amount."}},"/api/donations/distance":{"post":{"operationId":"DonationController.postDistance","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/CreateDistanceDonation"}}},"description":"CreateDistanceDonation","required":false},"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ResponseDistanceDonation"}}},"description":""},"404":{"content":{"application/json":{"schema":{"oneOf":[{"$ref":"#/components/schemas/DonorNotFoundError"},{"$ref":"#/components/schemas/RunnerNotFoundError"}]}}},"description":""}},"summary":"Post distance","tags":["Donation"],"security":[{"AuthToken":[]},{"RefreshTokenCookie":[]}],"description":"Create a distance donation (not fixed donation - use /donations/fixed instead).
Please rmemember to provide the donation's donors's and runners ids and amount per distance (kilometer)."}},"/api/donations/fixed/{id}":{"put":{"operationId":"DonationController.putFixed","parameters":[{"in":"path","name":"id","required":true,"schema":{"type":"number"}}],"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/UpdateFixedDonation"}}},"description":"UpdateFixedDonation","required":false},"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ResponseDonation"}}},"description":""},"404":{"content":{"application/json":{"schema":{"oneOf":[{"$ref":"#/components/schemas/DonationNotFoundError"},{"$ref":"#/components/schemas/DonorNotFoundError"},{"$ref":"#/components/schemas/RunnerNotFoundError"}]}}},"description":""},"406":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/DonationIdsNotMatchingError"}}},"description":""}},"summary":"Put fixed","tags":["Donation"],"security":[{"AuthToken":[]},{"RefreshTokenCookie":[]}],"description":"Update the fixed donation (not distance donation - use /donations/distance instead) whose id you provided.
Please remember that ids can't be changed and amounts must be positive."}},"/api/donations/distance/{id}":{"put":{"operationId":"DonationController.putDistance","parameters":[{"in":"path","name":"id","required":true,"schema":{"type":"number"}}],"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/UpdateDistanceDonation"}}},"description":"UpdateDistanceDonation","required":false},"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ResponseDonation"}}},"description":""},"404":{"content":{"application/json":{"schema":{"oneOf":[{"$ref":"#/components/schemas/DonationNotFoundError"},{"$ref":"#/components/schemas/DonorNotFoundError"},{"$ref":"#/components/schemas/RunnerNotFoundError"}]}}},"description":""},"406":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/DonationIdsNotMatchingError"}}},"description":""}},"summary":"Put distance","tags":["Donation"],"security":[{"AuthToken":[]},{"RefreshTokenCookie":[]}],"description":"Update the distance donation (not fixed donation - use /donations/fixed instead) whose id you provided.
Please remember that ids can't be changed and amountPerDistance must be positive."}},"/api/donors":{"get":{"operationId":"DonorController.getAll","responses":{"200":{"content":{"application/json":{"schema":{"items":{"$ref":"#/components/schemas/ResponseDonor"},"type":"array"}}},"description":""}},"summary":"Get all","tags":["Donor"],"security":[{"AuthToken":[]},{"RefreshTokenCookie":[]}],"description":"Lists all donor.
This includes the donor's current donation amount."},"post":{"operationId":"DonorController.post","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/CreateDonor"}}},"description":"CreateDonor","required":false},"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ResponseDonor"}}},"description":""}},"summary":"Post","tags":["Donor"],"security":[{"AuthToken":[]},{"RefreshTokenCookie":[]}],"description":"Create a new donor."}},"/api/donors/{id}":{"get":{"operationId":"DonorController.getOne","parameters":[{"in":"path","name":"id","required":true,"schema":{"type":"number"}}],"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ResponseDonor"}}},"description":""},"404":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/DonorNotFoundError"}}},"description":""}},"summary":"Get one","tags":["Donor"],"security":[{"AuthToken":[]},{"RefreshTokenCookie":[]}],"description":"Lists all information about the donor whose id got provided.
This includes the donor's current donation amount."},"put":{"operationId":"DonorController.put","parameters":[{"in":"path","name":"id","required":true,"schema":{"type":"number"}}],"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/UpdateDonor"}}},"description":"UpdateDonor","required":false},"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ResponseDonor"}}},"description":""},"404":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/DonorNotFoundError"}}},"description":""},"406":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/DonorIdsNotMatchingError"}}},"description":""}},"summary":"Put","tags":["Donor"],"security":[{"AuthToken":[]},{"RefreshTokenCookie":[]}],"description":"Update the donor whose id you provided.
Please remember that ids can't be changed."},"delete":{"operationId":"DonorController.remove","parameters":[{"in":"path","name":"id","required":true,"schema":{"type":"number"}},{"in":"query","name":"force","required":false,"schema":{"type":"boolean"}}],"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ResponseDonor"}}},"description":""},"204":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ResponseEmpty"}}},"description":""}},"summary":"Remove","tags":["Donor"],"security":[{"AuthToken":[]},{"RefreshTokenCookie":[]}],"description":"Delete the donor whose id you provided.
If no donor with this id exists it will just return 204(no content).
If the donor still has donations associated this will fail, please provide the query param ?force=true to delete the donor with all associated donations."}},"/api/contacts":{"get":{"operationId":"GroupContactController.getAll","responses":{"200":{"content":{"application/json":{"schema":{"items":{"$ref":"#/components/schemas/ResponseGroupContact"},"type":"array"}}},"description":""}},"summary":"Get all","tags":["Group Contact"],"security":[{"AuthToken":[]},{"RefreshTokenCookie":[]}],"description":"Lists all contacts.
This includes the contact's associated groups."},"post":{"operationId":"GroupContactController.post","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/CreateGroupContact"}}},"description":"CreateGroupContact","required":false},"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ResponseGroupContact"}}},"description":""},"404":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/RunnerGroupNotFoundError"}}},"description":""}},"summary":"Post","tags":["Group Contact"],"security":[{"AuthToken":[]},{"RefreshTokenCookie":[]}],"description":"Create a new contact."}},"/api/contacts/{id}":{"get":{"operationId":"GroupContactController.getOne","parameters":[{"in":"path","name":"id","required":true,"schema":{"type":"number"}}],"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ResponseGroupContact"}}},"description":""},"404":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/GroupContactNotFoundError"}}},"description":""}},"summary":"Get one","tags":["Group Contact"],"security":[{"AuthToken":[]},{"RefreshTokenCookie":[]}],"description":"Lists all information about the contact whose id got provided.
This includes the contact's associated groups."},"put":{"operationId":"GroupContactController.put","parameters":[{"in":"path","name":"id","required":true,"schema":{"type":"number"}}],"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/UpdateGroupContact"}}},"description":"UpdateGroupContact","required":false},"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ResponseGroupContact"}}},"description":""},"404":{"content":{"application/json":{"schema":{"oneOf":[{"$ref":"#/components/schemas/GroupContactNotFoundError"},{"$ref":"#/components/schemas/RunnerGroupNotFoundError"}]}}},"description":""},"406":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/GroupContactIdsNotMatchingError"}}},"description":""}},"summary":"Put","tags":["Group Contact"],"security":[{"AuthToken":[]},{"RefreshTokenCookie":[]}],"description":"Update the contact whose id you provided.
Please remember that ids can't be changed."},"delete":{"operationId":"GroupContactController.remove","parameters":[{"in":"path","name":"id","required":true,"schema":{"type":"number"}},{"in":"query","name":"force","required":false,"schema":{"type":"boolean"}}],"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ResponseGroupContact"}}},"description":""},"204":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ResponseEmpty"}}},"description":""}},"summary":"Remove","tags":["Group Contact"],"security":[{"AuthToken":[]},{"RefreshTokenCookie":[]}],"description":"Delete the contact whose id you provided.
If no contact with this id exists it will just return 204(no content).
This won't delete any groups associated with the contact."}},"/api/scans":{"get":{"operationId":"ScanController.getAll","responses":{"200":{"content":{"application/json":{"schema":{"oneOf":[{"items":{"$ref":"#/components/schemas/ResponseScan"},"type":"array"},{"items":{"$ref":"#/components/schemas/ResponseTrackScan"},"type":"array"}]}}},"description":""}},"summary":"Get all","tags":["Scan"],"security":[{"AuthToken":[]},{"RefreshTokenCookie":[]}],"description":"Lists all scans (normal or track) from all runners.
This includes the scan's runner's distance ran."},"post":{"operationId":"ScanController.post","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/CreateScan"}}},"description":"CreateScan","required":false},"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ResponseScan"}}},"description":""},"404":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/RunnerNotFoundError"}}},"description":""}},"summary":"Post","tags":["Scan"],"security":[{"AuthToken":[],"StationApiToken":[]},{"RefreshTokenCookie":[],"AuthToken":[]},{"RefreshTokenCookie":[]}],"description":"Create a new scan (not track scan - use /scans/trackscans instead).
Please rmemember to provide the scan's runner's id and distance."}},"/api/scans/{id}":{"get":{"operationId":"ScanController.getOne","parameters":[{"in":"path","name":"id","required":true,"schema":{"type":"number"}}],"responses":{"200":{"content":{"application/json":{"schema":{"oneOf":[{"$ref":"#/components/schemas/ResponseScan"},{"$ref":"#/components/schemas/ResponseTrackScan"}]}}},"description":""},"404":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ScanNotFoundError"}}},"description":""}},"summary":"Get one","tags":["Scan"],"security":[{"AuthToken":[]},{"RefreshTokenCookie":[]}],"description":"Lists all information about the scan whose id got provided. This includes the scan's runner's distance ran."},"put":{"operationId":"ScanController.put","parameters":[{"in":"path","name":"id","required":true,"schema":{"type":"number"}}],"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/UpdateScan"}}},"description":"UpdateScan","required":false},"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ResponseScan"}}},"description":""},"404":{"content":{"application/json":{"schema":{"oneOf":[{"$ref":"#/components/schemas/ScanNotFoundError"},{"$ref":"#/components/schemas/RunnerNotFoundError"}]}}},"description":""},"406":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ScanIdsNotMatchingError"}}},"description":""}},"summary":"Put","tags":["Scan"],"security":[{"AuthToken":[]},{"RefreshTokenCookie":[]}],"description":"Update the scan (not track scan use /scans/trackscans/:id instead) whose id you provided.
Please remember that ids can't be changed and distances must be positive."},"delete":{"operationId":"ScanController.remove","parameters":[{"in":"path","name":"id","required":true,"schema":{"type":"number"}},{"in":"query","name":"force","required":false,"schema":{"type":"boolean"}}],"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ResponseScan"}}},"description":""},"204":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ResponseEmpty"}}},"description":""}},"summary":"Remove","tags":["Scan"],"security":[{"AuthToken":[]},{"RefreshTokenCookie":[]}],"description":"Delete the scan whose id you provided.
If no scan with this id exists it will just return 204(no content)."}},"/api/scans/trackscans":{"post":{"operationId":"ScanController.postTrackScans","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/CreateTrackScan"}}},"description":"CreateTrackScan","required":false},"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ResponseTrackScan"}}},"description":""},"404":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/RunnerNotFoundError"}}},"description":""}},"summary":"Post track scans","tags":["Scan"],"security":[{"AuthToken":[],"StationApiToken":[]},{"RefreshTokenCookie":[],"AuthToken":[]},{"RefreshTokenCookie":[]}],"description":"Create a new track scan (for \"normal\" scans use /scans instead).
Please remember that to provide the scan's card's station's id."}},"/api/scans/trackscans/{id}":{"put":{"operationId":"ScanController.putTrackScan","parameters":[{"in":"path","name":"id","required":true,"schema":{"type":"number"}}],"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/UpdateTrackScan"}}},"description":"UpdateTrackScan","required":false},"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ResponseTrackScan"}}},"description":""},"404":{"content":{"application/json":{"schema":{"oneOf":[{"$ref":"#/components/schemas/ScanNotFoundError"},{"$ref":"#/components/schemas/RunnerNotFoundError"},{"$ref":"#/components/schemas/ScanStationNotFoundError"}]}}},"description":""},"406":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ScanIdsNotMatchingError"}}},"description":""}},"summary":"Put track scan","tags":["Scan"],"security":[{"AuthToken":[]},{"RefreshTokenCookie":[]}],"description":"Update the track scan (not \"normal\" scan use /scans/trackscans/:id instead) whose id you provided.
Please remember that only the validity, runner and track can be changed."}},"/api/cards":{"get":{"operationId":"RunnerCardController.getAll","responses":{"200":{"content":{"application/json":{"schema":{"items":{"$ref":"#/components/schemas/ResponseRunnerCard"},"type":"array"}}},"description":""}},"summary":"Get all","tags":["Runner Card"],"security":[{"AuthToken":[]},{"RefreshTokenCookie":[]}],"description":"Lists all card."},"post":{"operationId":"RunnerCardController.post","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/CreateRunnerCard"}}},"description":"CreateRunnerCard","required":false},"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ResponseRunnerCard"}}},"description":""},"404":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/RunnerNotFoundError"}}},"description":""}},"summary":"Post","tags":["Runner Card"],"security":[{"AuthToken":[]},{"RefreshTokenCookie":[]}],"description":"Create a new card.
You can provide a associated runner by id but you don't have to."}},"/api/cards/{id}":{"get":{"operationId":"RunnerCardController.getOne","parameters":[{"in":"path","name":"id","required":true,"schema":{"type":"number"}}],"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ResponseRunnerCard"}}},"description":""},"404":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/RunnerCardNotFoundError"}}},"description":""}},"summary":"Get one","tags":["Runner Card"],"security":[{"AuthToken":[]},{"RefreshTokenCookie":[]}],"description":"Lists all information about the card whose id got provided."},"put":{"operationId":"RunnerCardController.put","parameters":[{"in":"path","name":"id","required":true,"schema":{"type":"number"}}],"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/UpdateRunnerCard"}}},"description":"UpdateRunnerCard","required":false},"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ResponseRunnerCard"}}},"description":""},"404":{"content":{"application/json":{"schema":{"oneOf":[{"$ref":"#/components/schemas/RunnerCardNotFoundError"},{"$ref":"#/components/schemas/RunnerNotFoundError"}]}}},"description":""},"406":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/RunnerCardIdsNotMatchingError"}}},"description":""}},"summary":"Put","tags":["Runner Card"],"security":[{"AuthToken":[]},{"RefreshTokenCookie":[]}],"description":"Update the card whose id you provided.
Scans created via this card will still be associated with the old runner.
Please remember that ids can't be changed."},"delete":{"operationId":"RunnerCardController.remove","parameters":[{"in":"path","name":"id","required":true,"schema":{"type":"number"}},{"in":"query","name":"force","required":false,"schema":{"type":"boolean"}}],"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ResponseRunnerCard"}}},"description":""},"204":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ResponseEmpty"}}},"description":""},"406":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/RunnerCardHasScansError"}}},"description":""}},"summary":"Remove","tags":["Runner Card"],"security":[{"AuthToken":[]},{"RefreshTokenCookie":[]}],"description":"Delete the card whose id you provided.
If no card with this id exists it will just return 204(no content).
If the card still has scans associated you have to provide the force=true query param (warning: this deletes all scans associated with by this card - please disable it instead or just remove the runner association)."}},"/api/cards/bulk":{"post":{"operationId":"RunnerCardController.postBlancoBulk","parameters":[{"in":"query","name":"count","required":false,"schema":{"type":"number"}},{"in":"query","name":"returnCards","required":false,"schema":{"type":"boolean"}}],"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ResponseEmpty"}}},"description":""}},"summary":"Post blanco bulk","tags":["Runner Card"],"security":[{"AuthToken":[]},{"RefreshTokenCookie":[]}],"description":"Create blank cards in bulk.
Just provide the count as a query param and wait for the 200 response.
You can provide the 'returnCards' query param if you want to receive the RESPONSERUNNERCARD objects in the response."}},"/api/runners":{"get":{"operationId":"RunnerController.getAll","responses":{"200":{"content":{"application/json":{"schema":{"items":{"$ref":"#/components/schemas/ResponseRunner"},"type":"array"}}},"description":""}},"summary":"Get all","tags":["Runner"],"security":[{"AuthToken":[]},{"RefreshTokenCookie":[]}],"description":"Lists all runners from all teams/orgs.
This includes the runner's group and distance ran."},"post":{"operationId":"RunnerController.post","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/CreateRunner"}}},"description":"CreateRunner","required":false},"responses":{"200":{"content":{"application/json":{"schema":{"oneOf":[{"$ref":"#/components/schemas/ResponseRunner"},{"$ref":"#/components/schemas/RunnerGroupNeededError"},{"$ref":"#/components/schemas/RunnerGroupNotFoundError"}]}}},"description":""}},"summary":"Post","tags":["Runner"],"security":[{"AuthToken":[]},{"RefreshTokenCookie":[]}],"description":"Create a new runner.
Please remeber to provide the runner's group's id."}},"/api/runners/{id}":{"get":{"operationId":"RunnerController.getOne","parameters":[{"in":"path","name":"id","required":true,"schema":{"type":"number"}}],"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ResponseRunner"}}},"description":""},"404":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/RunnerNotFoundError"}}},"description":""}},"summary":"Get one","tags":["Runner"],"security":[{"AuthToken":[]},{"RefreshTokenCookie":[]}],"description":"Lists all information about the runner whose id got provided."},"put":{"operationId":"RunnerController.put","parameters":[{"in":"path","name":"id","required":true,"schema":{"type":"number"}}],"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/UpdateRunner"}}},"description":"UpdateRunner","required":false},"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ResponseRunner"}}},"description":""},"404":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/RunnerNotFoundError"}}},"description":""},"406":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/RunnerIdsNotMatchingError"}}},"description":""}},"summary":"Put","tags":["Runner"],"security":[{"AuthToken":[]},{"RefreshTokenCookie":[]}],"description":"Update the runner whose id you provided.
Please remember that ids can't be changed."},"delete":{"operationId":"RunnerController.remove","parameters":[{"in":"path","name":"id","required":true,"schema":{"type":"number"}},{"in":"query","name":"force","required":false,"schema":{"type":"boolean"}}],"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ResponseRunner"}}},"description":""},"204":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ResponseEmpty"}}},"description":""},"406":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/RunnerHasDistanceDonationsError"}}},"description":""}},"summary":"Remove","tags":["Runner"],"security":[{"AuthToken":[]},{"RefreshTokenCookie":[]}],"description":"Delete the runner whose id you provided.
This will also delete all scans and cards associated with the runner.
If no runner with this id exists it will just return 204(no content)."}},"/api/runners/{id}/scans":{"get":{"operationId":"RunnerController.getScans","parameters":[{"in":"path","name":"id","required":true,"schema":{"type":"number"}}],"responses":{"200":{"content":{"application/json":{"schema":{"oneOf":[{"items":{"$ref":"#/components/schemas/ResponseScan"},"type":"array"},{"items":{"$ref":"#/components/schemas/ResponseTrackScan"},"type":"array"}]}}},"description":""},"404":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/RunnerNotFoundError"}}},"description":""}},"summary":"Get scans","tags":["Runner"],"security":[{"AuthToken":[]},{"RefreshTokenCookie":[]}],"description":"Lists all scans of the runner whose id got provided.
If you only want the valid scans just add the ?onlyValid=true query param."}},"/api/runners/import":{"post":{"operationId":"ImportController.postJSON","parameters":[{"in":"query","name":"group","required":false,"schema":{"type":"number"}}],"requestBody":{"content":{"application/json":{"schema":{"items":{"$ref":"#/components/schemas/ImportRunner"},"type":"array"}}},"description":"ImportRunner","required":false},"responses":{"200":{"content":{"application/json":{"schema":{"items":{"$ref":"#/components/schemas/ResponseRunner"},"type":"array"}}},"description":""},"404":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/RunnerGroupNotFoundError"}}},"description":""},"406":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/RunnerGroupNeededError"}}},"description":""}},"summary":"Post json","tags":["Import"],"security":[{"AuthToken":[]},{"RefreshTokenCookie":[]}],"description":"Create new runners from json and insert them into the provided group.
If teams/classes are provided alongside the runner's name they'll automaticly be created under the provided org and the runners will be inserted into the teams instead."}},"/api/organizations/{id}/import":{"post":{"operationId":"ImportController.postOrgsJSON","parameters":[{"in":"path","name":"id","required":true,"schema":{"type":"number"}}],"requestBody":{"content":{"application/json":{"schema":{"items":{"$ref":"#/components/schemas/ImportRunner"},"type":"array"}}},"description":"ImportRunner","required":false},"responses":{"200":{"content":{"application/json":{"schema":{"items":{"$ref":"#/components/schemas/ResponseRunner"},"type":"array"}}},"description":""},"404":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/RunnerGroupNotFoundError"}}},"description":""},"406":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/RunnerGroupNeededError"}}},"description":""}},"summary":"Post orgs json","tags":["Import"],"security":[{"AuthToken":[]},{"RefreshTokenCookie":[]}],"description":"Create new runners from json and insert them into the provided org.
If teams/classes are provided alongside the runner's name they'll automaticly be created under the provided org and the runners will be inserted into the teams instead."}},"/api/teams/{id}/import":{"post":{"operationId":"ImportController.postTeamsJSON","parameters":[{"in":"path","name":"id","required":true,"schema":{"type":"number"}}],"requestBody":{"content":{"application/json":{"schema":{"items":{"$ref":"#/components/schemas/ImportRunner"},"type":"array"}}},"description":"ImportRunner","required":false},"responses":{"200":{"content":{"application/json":{"schema":{"items":{"$ref":"#/components/schemas/ResponseRunner"},"type":"array"}}},"description":""},"404":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/RunnerGroupNotFoundError"}}},"description":""},"406":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/RunnerGroupNeededError"}}},"description":""}},"summary":"Post teams json","tags":["Import"],"security":[{"AuthToken":[]},{"RefreshTokenCookie":[]}],"description":"Create new runners from json and insert them into the provided team"}},"/api/runners/import/csv":{"post":{"operationId":"ImportController.postCSV","parameters":[{"in":"query","name":"group","required":false,"schema":{"type":"number"}}],"responses":{"200":{"content":{"application/json":{"schema":{"items":{"$ref":"#/components/schemas/ResponseRunner"},"type":"array"}}},"description":""},"404":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/RunnerGroupNotFoundError"}}},"description":""},"406":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/RunnerGroupNeededError"}}},"description":""}},"summary":"Post csv","tags":["Import"],"security":[{"AuthToken":[]},{"RefreshTokenCookie":[]}],"description":"Create new runners from csv and insert them into the provided group.
If teams/classes are provided alongside the runner's name they'll automaticly be created under the provided org and the runners will be inserted into the teams instead."}},"/api/organizations/{id}/import/csv":{"post":{"operationId":"ImportController.postOrgsCSV","parameters":[{"in":"path","name":"id","required":true,"schema":{"type":"number"}}],"responses":{"200":{"content":{"application/json":{"schema":{"items":{"$ref":"#/components/schemas/ResponseRunner"},"type":"array"}}},"description":""},"404":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/RunnerGroupNotFoundError"}}},"description":""},"406":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/RunnerGroupNeededError"}}},"description":""}},"summary":"Post orgs csv","tags":["Import"],"security":[{"AuthToken":[]},{"RefreshTokenCookie":[]}],"description":"Create new runners from csv and insert them into the provided org.
If teams/classes are provided alongside the runner's name they'll automaticly be created under the provided org and the runners will be inserted into the teams instead."}},"/api/teams/{id}/import/csv":{"post":{"operationId":"ImportController.postTeamsCSV","parameters":[{"in":"path","name":"id","required":true,"schema":{"type":"number"}}],"responses":{"200":{"content":{"application/json":{"schema":{"items":{"$ref":"#/components/schemas/ResponseRunner"},"type":"array"}}},"description":""},"404":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/RunnerGroupNotFoundError"}}},"description":""},"406":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/RunnerGroupNeededError"}}},"description":""}},"summary":"Post teams csv","tags":["Import"],"security":[{"AuthToken":[]},{"RefreshTokenCookie":[]}],"description":"Create new runners from csv and insert them into the provided team"}},"/api/permissions":{"get":{"operationId":"PermissionController.getAll","responses":{"200":{"content":{"application/json":{"schema":{"items":{"$ref":"#/components/schemas/ResponsePermission"},"type":"array"}}},"description":""}},"summary":"Get all","tags":["Permission"],"security":[{"AuthToken":[]},{"RefreshTokenCookie":[]}],"description":"Lists all permissions for all users and groups."},"post":{"operationId":"PermissionController.post","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/CreatePermission"}}},"description":"CreatePermission","required":false},"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ResponsePermission"}}},"description":""},"404":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/PrincipalNotFoundError"}}},"description":""}},"summary":"Post","tags":["Permission"],"security":[{"AuthToken":[]},{"RefreshTokenCookie":[]}],"description":"Create a new permission for a existing principal(user/group).
If a permission with this target, action and prinicpal already exists that permission will be returned instead of creating a new one."}},"/api/permissions/{id}":{"get":{"operationId":"PermissionController.getOne","parameters":[{"in":"path","name":"id","required":true,"schema":{"type":"number"}}],"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ResponsePermission"}}},"description":""},"404":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/PermissionNotFoundError"}}},"description":""}},"summary":"Get one","tags":["Permission"],"security":[{"AuthToken":[]},{"RefreshTokenCookie":[]}],"description":"Lists all information about the permission whose id got provided."},"put":{"operationId":"PermissionController.put","parameters":[{"in":"path","name":"id","required":true,"schema":{"type":"number"}}],"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/UpdatePermission"}}},"description":"UpdatePermission","required":false},"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ResponsePrincipal"}}},"description":""},"404":{"content":{"application/json":{"schema":{"oneOf":[{"$ref":"#/components/schemas/PermissionNotFoundError"},{"$ref":"#/components/schemas/PrincipalNotFoundError"}]}}},"description":""},"406":{"content":{"application/json":{"schema":{"oneOf":[{"$ref":"#/components/schemas/PermissionIdsNotMatchingError"},{"$ref":"#/components/schemas/PermissionNeedsPrincipalError"}]}}},"description":""}},"summary":"Put","tags":["Permission"],"security":[{"AuthToken":[]},{"RefreshTokenCookie":[]}],"description":"Update a permission object.
If updateing the permission object would result in duplicate permission (same target, action and principal) this permission will get deleted and the existing permission will be returned.
Please remember that ids can't be changed."},"delete":{"operationId":"PermissionController.remove","parameters":[{"in":"path","name":"id","required":true,"schema":{"type":"number"}},{"in":"query","name":"force","required":false,"schema":{"type":"boolean"}}],"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ResponsePermission"}}},"description":""},"204":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ResponseEmpty"}}},"description":""}},"summary":"Remove","tags":["Permission"],"security":[{"AuthToken":[]},{"RefreshTokenCookie":[]}],"description":"Deletes the permission whose id you provide.
If no permission with this id exists it will just return 204(no content)."}},"/api/users/me/":{"get":{"operationId":"MeController.get","responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ResponseUser"}}},"description":""},"404":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/UserNotFoundError"}}},"description":""}},"summary":"Get","tags":["Me"],"security":[{"AuthToken":[]},{"RefreshTokenCookie":[]}],"description":"Lists all information about yourself."},"put":{"operationId":"MeController.put","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/UpdateUser"}}},"description":"UpdateUser","required":false},"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ResponseUser"}}},"description":""},"404":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/UserNotFoundError"}}},"description":""},"406":{"content":{"application/json":{"schema":{"oneOf":[{"$ref":"#/components/schemas/UserIdsNotMatchingError"},{"$ref":"#/components/schemas/UsernameContainsIllegalCharacterError"},{"$ref":"#/components/schemas/PasswordMustContainUppercaseLetterError"},{"$ref":"#/components/schemas/PasswordMustContainLowercaseLetterError"},{"$ref":"#/components/schemas/PasswordMustContainNumberError"},{"$ref":"#/components/schemas/PasswordTooShortError"}]}}},"description":""}},"summary":"Put","tags":["Me"],"security":[{"AuthToken":[]},{"RefreshTokenCookie":[]}],"description":"Update the yourself.
You can't edit your own permissions or group memberships here - Please use the /api/users/:id enpoint instead.
Please remember that ids can't be changed."},"delete":{"operationId":"MeController.remove","parameters":[{"in":"query","name":"force","required":false,"schema":{"type":"boolean"}}],"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ResponseUser"}}},"description":""},"404":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/UserNotFoundError"}}},"description":""},"406":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/UserDeletionNotConfirmedError"}}},"description":""}},"summary":"Remove","tags":["Me"],"security":[{"AuthToken":[]},{"RefreshTokenCookie":[]}],"description":"Delete yourself.
You have to confirm your decision by providing the ?force=true query param.
If there are any permissions directly granted to you they will get deleted as well."}},"/api/users/me/permissions":{"get":{"operationId":"MeController.getPermissions","responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ResponseUserPermissions"}}},"description":""},"404":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/UserNotFoundError"}}},"description":""}},"summary":"Get permissions","tags":["Me"],"security":[{"AuthToken":[]},{"RefreshTokenCookie":[]}],"description":"Lists all permissions granted to the you sorted into directly granted and inherited as permission response objects."}},"/api/teams":{"get":{"operationId":"RunnerTeamController.getAll","responses":{"200":{"content":{"application/json":{"schema":{"items":{"$ref":"#/components/schemas/ResponseRunnerTeam"},"type":"array"}}},"description":""}},"summary":"Get all","tags":["Runner Team"],"security":[{"AuthToken":[]},{"RefreshTokenCookie":[]}],"description":"Lists all teams.
This includes their parent organization and contact (if existing/associated)."},"post":{"operationId":"RunnerTeamController.post","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/CreateRunnerTeam"}}},"description":"CreateRunnerTeam","required":false},"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ResponseRunnerTeam"}}},"description":""}},"summary":"Post","tags":["Runner Team"],"security":[{"AuthToken":[]},{"RefreshTokenCookie":[]}],"description":"Create a new organsisation.
Please remember to provide it's parent group's id."}},"/api/teams/{id}":{"get":{"operationId":"RunnerTeamController.getOne","parameters":[{"in":"path","name":"id","required":true,"schema":{"type":"number"}}],"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ResponseRunnerTeam"}}},"description":""},"404":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/RunnerTeamNotFoundError"}}},"description":""}},"summary":"Get one","tags":["Runner Team"],"security":[{"AuthToken":[]},{"RefreshTokenCookie":[]}],"description":"Lists all information about the team whose id got provided."},"put":{"operationId":"RunnerTeamController.put","parameters":[{"in":"path","name":"id","required":true,"schema":{"type":"number"}}],"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/UpdateRunnerTeam"}}},"description":"UpdateRunnerTeam","required":false},"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ResponseRunnerTeam"}}},"description":""},"404":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/RunnerTeamNotFoundError"}}},"description":""},"406":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/RunnerTeamIdsNotMatchingError"}}},"description":""}},"summary":"Put","tags":["Runner Team"],"security":[{"AuthToken":[]},{"RefreshTokenCookie":[]}],"description":"Update the team whose id you provided.
Please remember that ids can't be changed."},"delete":{"operationId":"RunnerTeamController.remove","parameters":[{"in":"path","name":"id","required":true,"schema":{"type":"number"}},{"in":"query","name":"force","required":false,"schema":{"type":"boolean"}}],"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ResponseRunnerTeam"}}},"description":""},"204":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ResponseEmpty"}}},"description":""},"406":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/RunnerTeamHasRunnersError"}}},"description":""}},"summary":"Remove","tags":["Runner Team"],"security":[{"AuthToken":[]},{"RefreshTokenCookie":[]}],"description":"Delete the team whose id you provided.
If the team still has runners associated this will fail.
To delete the team with all associated runners set the force QueryParam to true (cascading deletion might take a while).
This won't delete the associated contact.
If no team with this id exists it will just return 204(no content)."}},"/api/teams/{id}/runners":{"get":{"operationId":"RunnerTeamController.getRunners","parameters":[{"in":"path","name":"id","required":true,"schema":{"type":"number"}}],"responses":{"200":{"content":{"application/json":{"schema":{"items":{"$ref":"#/components/schemas/ResponseRunner"},"type":"array"}}},"description":""},"404":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/RunnerTeamNotFoundError"}}},"description":""}},"summary":"Get runners","tags":["Runner Team"],"security":[{"AuthToken":[]},{"RefreshTokenCookie":[]}],"description":"Lists all runners from this team.
This includes the runner's group and distance ran."}},"/api/organizations":{"get":{"operationId":"RunnerOrganizationController.getAll","responses":{"200":{"content":{"application/json":{"schema":{"items":{"$ref":"#/components/schemas/ResponseRunnerOrganization"},"type":"array"}}},"description":""}},"summary":"Get all","tags":["Runner Organization"],"security":[{"AuthToken":[]},{"RefreshTokenCookie":[]}],"description":"Lists all organizations.
This includes their address, contact and teams (if existing/associated)."},"post":{"operationId":"RunnerOrganizationController.post","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/CreateRunnerOrganization"}}},"description":"CreateRunnerOrganization","required":false},"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ResponseRunnerOrganization"}}},"description":""}},"summary":"Post","tags":["Runner Organization"],"security":[{"AuthToken":[]},{"RefreshTokenCookie":[]}],"description":"Create a new organsisation."}},"/api/organizations/{id}":{"get":{"operationId":"RunnerOrganizationController.getOne","parameters":[{"in":"path","name":"id","required":true,"schema":{"type":"number"}}],"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ResponseRunnerOrganization"}}},"description":""},"404":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/RunnerOrganizationNotFoundError"}}},"description":""}},"summary":"Get one","tags":["Runner Organization"],"security":[{"AuthToken":[]},{"RefreshTokenCookie":[]}],"description":"Lists all information about the organization whose id got provided."},"put":{"operationId":"RunnerOrganizationController.put","parameters":[{"in":"path","name":"id","required":true,"schema":{"type":"number"}}],"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/UpdateRunnerOrganization"}}},"description":"UpdateRunnerOrganization","required":false},"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ResponseRunnerOrganization"}}},"description":""},"404":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/RunnerOrganizationNotFoundError"}}},"description":""},"406":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/RunnerOrganizationIdsNotMatchingError"}}},"description":""}},"summary":"Put","tags":["Runner Organization"],"security":[{"AuthToken":[]},{"RefreshTokenCookie":[]}],"description":"Update the organization whose id you provided.
Please remember that ids can't be changed."},"delete":{"operationId":"RunnerOrganizationController.remove","parameters":[{"in":"path","name":"id","required":true,"schema":{"type":"number"}},{"in":"query","name":"force","required":false,"schema":{"type":"boolean"}}],"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ResponseRunnerOrganization"}}},"description":""},"204":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ResponseEmpty"}}},"description":""},"406":{"content":{"application/json":{"schema":{"oneOf":[{"$ref":"#/components/schemas/RunnerOrganizationHasTeamsError"},{"$ref":"#/components/schemas/RunnerOrganizationHasRunnersError"}]}}},"description":""}},"summary":"Remove","tags":["Runner Organization"],"security":[{"AuthToken":[]},{"RefreshTokenCookie":[]}],"description":"Delete the organsisation whose id you provided.
If the organization still has runners and/or teams associated this will fail.
To delete the organization with all associated runners and teams set the force QueryParam to true (cascading deletion might take a while).
This won't delete the associated contact.
If no organization with this id exists it will just return 204(no content)."}},"/api/organizations/{id}/runners":{"get":{"operationId":"RunnerOrganizationController.getRunners","parameters":[{"in":"path","name":"id","required":true,"schema":{"type":"number"}},{"in":"query","name":"onlyDirect","required":false,"schema":{"type":"boolean"}}],"responses":{"200":{"content":{"application/json":{"schema":{"items":{"$ref":"#/components/schemas/ResponseRunner"},"type":"array"}}},"description":""},"404":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/RunnerOrganizationNotFoundError"}}},"description":""}},"summary":"Get runners","tags":["Runner Organization"],"security":[{"AuthToken":[]},{"RefreshTokenCookie":[]}],"description":"Lists all runners from this org and it's teams (if you don't provide the ?onlyDirect=true param).
This includes the runner's group and distance ran."}},"/api/runners/me/{jwt}":{"get":{"operationId":"RunnerSelfServiceController.get","parameters":[{"in":"path","name":"jwt","required":true,"schema":{"type":"string"}}],"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ResponseSelfServiceRunner"}}},"description":""},"404":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/RunnerNotFoundError"}}},"description":""}},"summary":"Get","tags":["Runner Self Service"],"description":"Lists all information about yourself.
Please provide your runner jwt(that code we gave you during registration) for auth.
If you lost your jwt/personalized link please use the forgot endpoint."},"delete":{"operationId":"RunnerSelfServiceController.remove","parameters":[{"in":"path","name":"jwt","required":true,"schema":{"type":"string"}},{"in":"query","name":"force","required":false,"schema":{"type":"boolean"}}],"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ResponseSelfServiceRunner"}}},"description":""},"404":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/RunnerNotFoundError"}}},"description":""}},"summary":"Remove","tags":["Runner Self Service"],"description":"Deletes all information about yourself.
Please provide your runner jwt(that code we gave you during registration) for auth.
If you lost your jwt/personalized link please use the forgot endpoint."}},"/api/runners/me/{jwt}/scans":{"get":{"operationId":"RunnerSelfServiceController.getScans","parameters":[{"in":"path","name":"jwt","required":true,"schema":{"type":"string"}}],"responses":{"200":{"content":{"application/json":{"schema":{"items":{"$ref":"#/components/schemas/ResponseSelfServiceScan"},"type":"array"}}},"description":""},"404":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/RunnerNotFoundError"}}},"description":""}},"summary":"Get scans","tags":["Runner Self Service"],"description":"Lists all your (runner) scans.
Please provide your runner jwt(that code we gave you during registration) for auth.
If you lost your jwt/personalized link please contact support."}},"/api/stations/me":{"get":{"operationId":"RunnerSelfServiceController.getStationMe","responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ResponseScanStation"}}},"description":""},"404":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ScanStationNotFoundError"}}},"description":""}},"summary":"Get station me","tags":["Runner Self Service"],"description":"Lists basic information about the station whose token got provided.
This includes it's associated track.","security":[{"StationApiToken":[]}]}},"/api/runners/forgot":{"post":{"operationId":"RunnerSelfServiceController.requestNewToken","parameters":[{"in":"query","name":"mail","required":false,"schema":{"type":"string"}},{"in":"query","name":"locale","required":false,"schema":{"type":"string"}}],"responses":{"200":{"content":{"application/json":{}},"description":"Successful response"},"404":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/RunnerNotFoundError"}}},"description":""}},"summary":"Request new token","tags":["Runner Self Service"],"description":"Use this endpoint to reuqest a new selfservice token/link to be sent to your mail address (rate limited to one mail every 24hrs)."}},"/api/runners/register":{"post":{"operationId":"RunnerSelfServiceController.registerRunner","parameters":[{"in":"query","name":"locale","required":false,"schema":{"type":"string"}}],"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/CreateSelfServiceCitizenRunner"}}},"description":"CreateSelfServiceCitizenRunner","required":false},"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ResponseSelfServiceRunner"}}},"description":""},"406":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/RunnerEmailNeededError"}}},"description":""}},"summary":"Register runner","tags":["Runner Self Service"],"description":"Create a new selfservice runner in the citizen org.
This endpoint shoud be used to allow \"everyday citizen\" to register themselves.
You have to provide a mail address, b/c the future we'll implement email verification."}},"/api/runners/register/{token}":{"post":{"operationId":"RunnerSelfServiceController.registerOrganizationRunner","parameters":[{"in":"path","name":"token","required":true,"schema":{"type":"string"}},{"in":"query","name":"locale","required":false,"schema":{"type":"string"}}],"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/CreateSelfServiceRunner"}}},"description":"CreateSelfServiceRunner","required":false},"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ResponseSelfServiceRunner"}}},"description":""},"404":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/RunnerOrganizationNotFoundError"}}},"description":""}},"summary":"Register organization runner","tags":["Runner Self Service"],"description":"Create a new selfservice runner in a provided org.
The orgs get provided and authorized via api tokens that can be optained via the /organizations endpoint."}},"/api/organizations/selfservice/{token}":{"get":{"operationId":"RunnerSelfServiceController.getSelfserviceOrg","parameters":[{"in":"path","name":"token","required":true,"schema":{"type":"string"}}],"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ResponseSelfServiceOrganisation"}}},"description":""},"404":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/RunnerOrganizationNotFoundError"}}},"description":""}},"summary":"Get selfservice org","tags":["Runner Self Service"],"description":"Get the basic info and teams for a org."}},"/api/stations":{"get":{"operationId":"ScanStationController.getAll","responses":{"200":{"content":{"application/json":{"schema":{"items":{"$ref":"#/components/schemas/ResponseScanStation"},"type":"array"}}},"description":""}},"summary":"Get all","tags":["Scan Station"],"security":[{"AuthToken":[]},{"RefreshTokenCookie":[]}],"description":"Lists all stations.
This includes their associated tracks."},"post":{"operationId":"ScanStationController.post","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/CreateScanStation"}}},"description":"CreateScanStation","required":false},"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ResponseScanStation"}}},"description":""},"404":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/TrackNotFoundError"}}},"description":""}},"summary":"Post","tags":["Scan Station"],"security":[{"AuthToken":[]},{"RefreshTokenCookie":[]}],"description":"Create a new station.
Please remeber to provide the station's track's id.
Please also remember that the station key is only visibe on creation."}},"/api/stations/{id}":{"get":{"operationId":"ScanStationController.getOne","parameters":[{"in":"path","name":"id","required":true,"schema":{"type":"number"}}],"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ResponseScanStation"}}},"description":""},"404":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ScanStationNotFoundError"}}},"description":""}},"summary":"Get one","tags":["Scan Station"],"security":[{"AuthToken":[]},{"RefreshTokenCookie":[]}],"description":"Lists all information about the station whose id got provided.
This includes it's associated track."},"put":{"operationId":"ScanStationController.put","parameters":[{"in":"path","name":"id","required":true,"schema":{"type":"number"}}],"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/UpdateScanStation"}}},"description":"UpdateScanStation","required":false},"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ResponseScanStation"}}},"description":""},"404":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ScanStationNotFoundError"}}},"description":""},"406":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ScanStationIdsNotMatchingError"}}},"description":""}},"summary":"Put","tags":["Scan Station"],"security":[{"AuthToken":[]},{"RefreshTokenCookie":[]}],"description":"Update the station whose id you provided.
Please remember that only the description and enabled state can be changed."},"delete":{"operationId":"ScanStationController.remove","parameters":[{"in":"path","name":"id","required":true,"schema":{"type":"number"}},{"in":"query","name":"force","required":false,"schema":{"type":"boolean"}}],"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ResponseScanStation"}}},"description":""},"204":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ResponseEmpty"}}},"description":""},"406":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ScanStationHasScansError"}}},"description":""}},"summary":"Remove","tags":["Scan Station"],"security":[{"AuthToken":[]},{"RefreshTokenCookie":[]}],"description":"Delete the station whose id you provided.
If no station with this id exists it will just return 204(no content).
If the station still has scans associated you have to provide the force=true query param (warning: this deletes all scans associated with/created by this station - please disable it instead)."}},"/api/statsclients":{"get":{"operationId":"StatsClientController.getAll","responses":{"200":{"content":{"application/json":{"schema":{"items":{"$ref":"#/components/schemas/ResponseStatsClient"},"type":"array"}}},"description":""}},"summary":"Get all","tags":["Stats Client"],"security":[{"AuthToken":[]},{"RefreshTokenCookie":[]}],"description":"Lists all stats clients. Please remember that the key can only be viewed on creation."},"post":{"operationId":"StatsClientController.post","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/CreateStatsClient"}}},"description":"CreateStatsClient","required":false},"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ResponseStatsClient"}}},"description":""}},"summary":"Post","tags":["Stats Client"],"security":[{"AuthToken":[]},{"RefreshTokenCookie":[]}],"description":"Create a new stats client.
Please remember that the client's key will be generated automaticly and that it can only be viewed on creation."}},"/api/statsclients/{id}":{"get":{"operationId":"StatsClientController.getOne","parameters":[{"in":"path","name":"id","required":true,"schema":{"type":"number"}}],"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ResponseStatsClient"}}},"description":""},"404":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/StatsClientNotFoundError"}}},"description":""}},"summary":"Get one","tags":["Stats Client"],"security":[{"AuthToken":[]},{"RefreshTokenCookie":[]}],"description":"Lists all information about the stats client whose id got provided. Please remember that the key can only be viewed on creation."},"delete":{"operationId":"StatsClientController.remove","parameters":[{"in":"path","name":"id","required":true,"schema":{"type":"number"}},{"in":"query","name":"force","required":false,"schema":{"type":"boolean"}}],"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ResponseStatsClient"}}},"description":""},"204":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ResponseEmpty"}}},"description":""}},"summary":"Remove","tags":["Stats Client"],"security":[{"AuthToken":[]},{"RefreshTokenCookie":[]}],"description":"Delete the stats client whose id you provided.
If no client with this id exists it will just return 204(no content)."}},"/api/stats":{"get":{"operationId":"StatsController.get","responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ResponseStats"}}},"description":""}},"summary":"Get","tags":["Stats"],"description":"A very basic stats endpoint providing basic counters for a dashboard or simmilar"}},"/api/stats/runners/distance":{"get":{"operationId":"StatsController.getTopRunnersByDistance","responses":{"200":{"content":{"application/json":{"schema":{"items":{"$ref":"#/components/schemas/ResponseStatsRunner"},"type":"array"}}},"description":""}},"summary":"Get top runners by distance","tags":["Stats"],"description":"Returns the top ten runners by distance.","security":[{"StatsApiToken":[]},{"AuthToken":[]},{"RefreshTokenCookie":[]}]}},"/api/stats/runners/donations":{"get":{"operationId":"StatsController.getTopRunnersByDonations","responses":{"200":{"content":{"application/json":{"schema":{"items":{"$ref":"#/components/schemas/ResponseStatsRunner"},"type":"array"}}},"description":""}},"summary":"Get top runners by donations","tags":["Stats"],"description":"Returns the top ten runners by donations.","security":[{"StatsApiToken":[]},{"AuthToken":[]},{"RefreshTokenCookie":[]}]}},"/api/stats/runners/laptime":{"get":{"operationId":"StatsController.getTopRunnersByLaptime","parameters":[{"in":"query","name":"track","required":false,"schema":{"type":"number"}}],"responses":{"200":{"content":{"application/json":{"schema":{"items":{"$ref":"#/components/schemas/ResponseStatsRunner"},"type":"array"}}},"description":""}},"summary":"Get top runners by laptime","tags":["Stats"],"description":"Returns the top ten runners by fastest laptime on your selected track (track by id).","security":[{"StatsApiToken":[]},{"AuthToken":[]},{"RefreshTokenCookie":[]}]}},"/api/stats/scans":{"get":{"operationId":"StatsController.getTopRunnersByTrackTime","responses":{"200":{"content":{"application/json":{"schema":{"items":{"$ref":"#/components/schemas/ResponseStatsRunner"},"type":"array"}}},"description":""}},"summary":"Get top runners by track time","tags":["Stats"],"description":"Returns the top ten fastest track times (with their runner and the runner's group).","security":[{"StatsApiToken":[]},{"AuthToken":[]},{"RefreshTokenCookie":[]}]}},"/api/stats/teams/distance":{"get":{"operationId":"StatsController.getTopTeamsByDistance","responses":{"200":{"content":{"application/json":{"schema":{"items":{"$ref":"#/components/schemas/ResponseStatsTeam"},"type":"array"}}},"description":""}},"summary":"Get top teams by distance","tags":["Stats"],"description":"Returns the top ten teams by distance.","security":[{"StatsApiToken":[]},{"AuthToken":[]},{"RefreshTokenCookie":[]}]}},"/api/stats/teams/donations":{"get":{"operationId":"StatsController.getTopTeamsByDonations","responses":{"200":{"content":{"application/json":{"schema":{"items":{"$ref":"#/components/schemas/ResponseStatsTeam"},"type":"array"}}},"description":""}},"summary":"Get top teams by donations","tags":["Stats"],"description":"Returns the top ten teams by donations.","security":[{"StatsApiToken":[]},{"AuthToken":[]},{"RefreshTokenCookie":[]}]}},"/api/stats/organizations/distance":{"get":{"operationId":"StatsController.getTopOrgsByDistance","responses":{"200":{"content":{"application/json":{"schema":{"items":{"$ref":"#/components/schemas/ResponseStatsOrgnisation"},"type":"array"}}},"description":""}},"summary":"Get top orgs by distance","tags":["Stats"],"description":"Returns the top ten organizations by distance.","security":[{"StatsApiToken":[]},{"AuthToken":[]},{"RefreshTokenCookie":[]}]}},"/api/stats/organizations/donations":{"get":{"operationId":"StatsController.getTopOrgsByDonations","responses":{"200":{"content":{"application/json":{"schema":{"items":{"$ref":"#/components/schemas/ResponseStatsOrgnisation"},"type":"array"}}},"description":""}},"summary":"Get top orgs by donations","tags":["Stats"],"description":"Returns the top ten organizations by donations.","security":[{"StatsApiToken":[]},{"AuthToken":[]},{"RefreshTokenCookie":[]}]}},"/api/status":{"get":{"operationId":"StatusController.get","responses":{"200":{"content":{"application/json":{}},"description":"Successful response"}},"summary":"Get","tags":["Status"],"description":"A very basic status/health endpoint that just checks if the database connection is available.
The available information depth will be expanded later."}},"/api/version":{"get":{"operationId":"StatusController.getVersion","responses":{"200":{"content":{"application/json":{}},"description":"Successful response"}},"summary":"Get version","tags":["Status"],"description":"A very basic endpoint that just returns the curent package version."}},"/api/tracks":{"get":{"operationId":"TrackController.getAll","responses":{"200":{"content":{"application/json":{"schema":{"items":{"$ref":"#/components/schemas/ResponseTrack"},"type":"array"}}},"description":""}},"summary":"Get all","tags":["Track"],"security":[{"AuthToken":[]},{"RefreshTokenCookie":[]}],"description":"Lists all tracks."},"post":{"operationId":"TrackController.post","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/CreateTrack"}}},"description":"CreateTrack","required":false},"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ResponseTrack"}}},"description":""},"406":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/TrackLapTimeCantBeNegativeError"}}},"description":""}},"summary":"Post","tags":["Track"],"security":[{"AuthToken":[]},{"RefreshTokenCookie":[]}],"description":"Create a new track.
Please remember that the track's distance must be greater than 0."}},"/api/tracks/{id}":{"get":{"operationId":"TrackController.getOne","parameters":[{"in":"path","name":"id","required":true,"schema":{"type":"number"}}],"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ResponseTrack"}}},"description":""},"404":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/TrackNotFoundError"}}},"description":""}},"summary":"Get one","tags":["Track"],"security":[{"AuthToken":[]},{"RefreshTokenCookie":[]}],"description":"Lists all information about the track whose id got provided."},"put":{"operationId":"TrackController.put","parameters":[{"in":"path","name":"id","required":true,"schema":{"type":"number"}}],"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/UpdateTrack"}}},"description":"UpdateTrack","required":false},"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ResponseTrack"}}},"description":""},"404":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/TrackNotFoundError"}}},"description":""},"406":{"content":{"application/json":{"schema":{"oneOf":[{"$ref":"#/components/schemas/TrackIdsNotMatchingError"},{"$ref":"#/components/schemas/TrackLapTimeCantBeNegativeError"}]}}},"description":""}},"summary":"Put","tags":["Track"],"security":[{"AuthToken":[]},{"RefreshTokenCookie":[]}],"description":"Update the track whose id you provided.
Please remember that ids can't be changed."},"delete":{"operationId":"TrackController.remove","parameters":[{"in":"path","name":"id","required":true,"schema":{"type":"number"}},{"in":"query","name":"force","required":false,"schema":{"type":"boolean"}}],"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ResponseTrack"}}},"description":""},"204":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ResponseEmpty"}}},"description":""}},"summary":"Remove","tags":["Track"],"security":[{"AuthToken":[]},{"RefreshTokenCookie":[]}],"description":"Delete the track whose id you provided.
If no track with this id exists it will just return 204(no content)."}},"/api/users":{"get":{"operationId":"UserController.getAll","responses":{"200":{"content":{"application/json":{"schema":{"items":{"$ref":"#/components/schemas/ResponseUser"},"type":"array"}}},"description":""}},"summary":"Get all","tags":["User"],"security":[{"AuthToken":[]},{"RefreshTokenCookie":[]}],"description":"Lists all users.
This includes their groups and permissions granted to them."},"post":{"operationId":"UserController.post","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/CreateUser"}}},"description":"CreateUser","required":false},"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ResponseUser"}}},"description":""},"404":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/UserGroupNotFoundError"}}},"description":""},"406":{"content":{"application/json":{"schema":{"oneOf":[{"$ref":"#/components/schemas/UsernameContainsIllegalCharacterError"},{"$ref":"#/components/schemas/PasswordMustContainUppercaseLetterError"},{"$ref":"#/components/schemas/PasswordMustContainLowercaseLetterError"},{"$ref":"#/components/schemas/PasswordMustContainNumberError"},{"$ref":"#/components/schemas/PasswordTooShortError"}]}}},"description":""}},"summary":"Post","tags":["User"],"security":[{"AuthToken":[]},{"RefreshTokenCookie":[]}],"description":"Create a new user.
If you want to grant permissions to the user you have to create them seperately by posting to /api/permissions after creating the user."}},"/api/users/{id}":{"get":{"operationId":"UserController.getOne","parameters":[{"in":"path","name":"id","required":true,"schema":{"type":"number"}}],"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ResponseUser"}}},"description":""},"404":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/UserNotFoundError"}}},"description":""}},"summary":"Get one","tags":["User"],"security":[{"AuthToken":[]},{"RefreshTokenCookie":[]}],"description":"Lists all information about the user whose id got provided.
Please remember that all permissions granted to the user will show up here."},"put":{"operationId":"UserController.put","parameters":[{"in":"path","name":"id","required":true,"schema":{"type":"number"}}],"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/UpdateUser"}}},"description":"UpdateUser","required":false},"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ResponseUser"}}},"description":""},"404":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/UserNotFoundError"}}},"description":""},"406":{"content":{"application/json":{"schema":{"oneOf":[{"$ref":"#/components/schemas/UserIdsNotMatchingError"},{"$ref":"#/components/schemas/UsernameContainsIllegalCharacterError"},{"$ref":"#/components/schemas/PasswordMustContainUppercaseLetterError"},{"$ref":"#/components/schemas/PasswordMustContainLowercaseLetterError"},{"$ref":"#/components/schemas/PasswordMustContainNumberError"},{"$ref":"#/components/schemas/PasswordTooShortError"}]}}},"description":""}},"summary":"Put","tags":["User"],"security":[{"AuthToken":[]},{"RefreshTokenCookie":[]}],"description":"Update the user whose id you provided.
To change the permissions directly granted to the user please use /api/permissions instead.
Please remember that ids can't be changed."},"delete":{"operationId":"UserController.remove","parameters":[{"in":"path","name":"id","required":true,"schema":{"type":"number"}},{"in":"query","name":"force","required":false,"schema":{"type":"boolean"}}],"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ResponseUser"}}},"description":""},"204":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ResponseEmpty"}}},"description":""},"406":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/UserDeletionNotConfirmedError"}}},"description":""}},"summary":"Remove","tags":["User"],"security":[{"AuthToken":[]},{"RefreshTokenCookie":[]}],"description":"Delete the user whose id you provided.
You have to confirm your decision by providing the ?force=true query param.
If there are any permissions directly granted to the user they will get deleted as well.
If no user with this id exists it will just return 204(no content)."}},"/api/users/{id}/permissions":{"get":{"operationId":"UserController.getPermissions","parameters":[{"in":"path","name":"id","required":true,"schema":{"type":"number"}}],"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ResponseUser"}}},"description":""},"404":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/UserNotFoundError"}}},"description":""}},"summary":"Get permissions","tags":["User"],"security":[{"AuthToken":[]},{"RefreshTokenCookie":[]}],"description":"Lists all permissions granted to the user sorted into directly granted and inherited as permission response objects."}},"/api/usergroups":{"get":{"operationId":"UserGroupController.getAll","responses":{"200":{"content":{"application/json":{"schema":{"items":{"$ref":"#/components/schemas/ResponseUserGroup"},"type":"array"}}},"description":""}},"summary":"Get all","tags":["User Group"],"security":[{"AuthToken":[]},{"RefreshTokenCookie":[]}],"description":"Lists all groups.
The information provided might change while the project continues to evolve."},"post":{"operationId":"UserGroupController.post","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/CreateUserGroup"}}},"description":"CreateUserGroup","required":false},"responses":{"200":{"content":{"application/json":{"schema":{"oneOf":[{"$ref":"#/components/schemas/UserGroup"},{"$ref":"#/components/schemas/UserGroupNotFoundError"}]}}},"description":""}},"summary":"Post","tags":["User Group"],"security":[{"AuthToken":[]},{"RefreshTokenCookie":[]}],"description":"Create a new group.
If you want to grant permissions to the group you have to create them seperately by posting to /api/permissions after creating the group."}},"/api/usergroups/{id}":{"get":{"operationId":"UserGroupController.getOne","parameters":[{"in":"path","name":"id","required":true,"schema":{"type":"number"}}],"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ResponseUserGroup"}}},"description":""},"404":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/UserGroupNotFoundError"}}},"description":""}},"summary":"Get one","tags":["User Group"],"security":[{"AuthToken":[]},{"RefreshTokenCookie":[]}],"description":"Lists all information about the group whose id got provided.
The information provided might change while the project continues to evolve."},"put":{"operationId":"UserGroupController.put","parameters":[{"in":"path","name":"id","required":true,"schema":{"type":"number"}}],"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/UpdateUserGroup"}}},"description":"UpdateUserGroup","required":false},"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/UserGroup"}}},"description":""},"404":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/UserGroupNotFoundError"}}},"description":""},"406":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/UserGroupIdsNotMatchingError"}}},"description":""}},"summary":"Put","tags":["User Group"],"security":[{"AuthToken":[]},{"RefreshTokenCookie":[]}],"description":"Update the group whose id you provided.
To change the permissions granted to the group please use /api/permissions instead.
Please remember that ids can't be changed."},"delete":{"operationId":"UserGroupController.remove","parameters":[{"in":"path","name":"id","required":true,"schema":{"type":"number"}},{"in":"query","name":"force","required":false,"schema":{"type":"boolean"}}],"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ResponseUserGroup"}}},"description":""},"204":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ResponseEmpty"}}},"description":""}},"summary":"Remove","tags":["User Group"],"security":[{"AuthToken":[]},{"RefreshTokenCookie":[]}],"description":"Delete the group whose id you provided.
If there are any permissions directly granted to the group they will get deleted as well.
Users associated with this group won't get deleted - just deassociated.
If no group with this id exists it will just return 204(no content)."}},"/api/usergroups/{id}/permissions":{"get":{"operationId":"UserGroupController.getPermissions","parameters":[{"in":"path","name":"id","required":true,"schema":{"type":"number"}}],"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ResponseUserGroupPermissions"}}},"description":""},"404":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/UserGroupNotFoundError"}}},"description":""}},"summary":"Get permissions","tags":["User Group"],"security":[{"AuthToken":[]},{"RefreshTokenCookie":[]}],"description":"Lists all permissions granted to the group as permission response objects."}}}} \ No newline at end of file