From f5489e1b1ecba8b2087464a389c4a54be4dda611 Mon Sep 17 00:00:00 2001 From: Nicolai Ort Date: Sun, 13 Dec 2020 08:11:57 +0000 Subject: [PATCH] new lib version [CI SKIP] --- dist/core/ApiError.ts | 20 ++ dist/core/ApiRequestOptions.ts | 14 ++ dist/core/ApiResult.ts | 10 + dist/core/OpenAPI.ts | 25 +++ dist/core/request.ts | 202 ++++++++++++++++++ dist/index.ts | 88 ++++++++ dist/models/Address.ts | 13 ++ dist/models/AddressNotFoundError.ts | 8 + dist/models/AddressWrongTypeError.ts | 8 + dist/models/Auth.ts | 10 + dist/models/CreateAuth.ts | 9 + dist/models/CreateParticipant.ts | 12 ++ dist/models/CreateRunner.ts | 13 ++ dist/models/CreateRunnerGroup.ts | 8 + dist/models/CreateRunnerOrganisation.ts | 9 + dist/models/CreateRunnerTeam.ts | 9 + dist/models/CreateTrack.ts | 8 + dist/models/CreateUser.ts | 14 ++ dist/models/CreateUserGroup.ts | 8 + dist/models/DistanceDonation.ts | 10 + dist/models/Donation.ts | 8 + dist/models/ExpiredJWTError.ts | 8 + dist/models/GroupContact.ts | 13 ++ dist/models/GroupContactNotFoundError.ts | 8 + dist/models/GroupContactWrongTypeError.ts | 8 + dist/models/GroupNameNeededError.ts | 8 + dist/models/HandleLogout.ts | 7 + dist/models/IllegalJWTError.ts | 8 + dist/models/InvalidCredentialsError.ts | 8 + dist/models/JwtNotProvidedError.ts | 8 + dist/models/Logout.ts | 7 + dist/models/NoPermissionError.ts | 8 + dist/models/Participant.ts | 12 ++ dist/models/PasswordNeededError.ts | 8 + dist/models/Permission.ts | 9 + dist/models/RefreshAuth.ts | 7 + dist/models/RefreshTokenCountInvalidError.ts | 8 + dist/models/ResponseEmpty.ts | 7 + dist/models/ResponseParticipant.ts | 12 ++ dist/models/ResponseRunner.ts | 16 ++ dist/models/ResponseRunnerGroup.ts | 11 + dist/models/ResponseRunnerOrganisation.ts | 14 ++ dist/models/ResponseRunnerTeam.ts | 13 ++ dist/models/ResponseTrack.ts | 9 + dist/models/Runner.ts | 14 ++ dist/models/RunnerCard.ts | 10 + dist/models/RunnerGroup.ts | 9 + dist/models/RunnerGroupNeededError.ts | 8 + dist/models/RunnerGroupNotFoundError.ts | 8 + dist/models/RunnerIdsNotMatchingError.ts | 8 + dist/models/RunnerNotFoundError.ts | 8 + dist/models/RunnerOrganisation.ts | 10 + .../RunnerOrganisationHasRunnersError.ts | 8 + .../models/RunnerOrganisationHasTeamsError.ts | 8 + .../RunnerOrganisationIdsNotMatchingError.ts | 8 + .../models/RunnerOrganisationNotFoundError.ts | 8 + .../RunnerOrganisationWrongTypeError.ts | 8 + dist/models/RunnerTeam.ts | 10 + dist/models/RunnerTeamHasRunnersError.ts | 8 + dist/models/RunnerTeamIdsNotMatchingError.ts | 8 + dist/models/RunnerTeamNeedsParentError.ts | 8 + dist/models/RunnerTeamNotFoundError.ts | 8 + dist/models/Scan.ts | 10 + dist/models/ScanStation.ts | 11 + dist/models/Track.ts | 9 + dist/models/TrackIdsNotMatchingError.ts | 8 + dist/models/TrackNotFoundError.ts | 8 + dist/models/TrackScan.ts | 14 ++ dist/models/UpdateRunner.ts | 16 ++ dist/models/UpdateRunnerTeam.ts | 12 ++ dist/models/User.ts | 21 ++ dist/models/UserAction.ts | 10 + dist/models/UserGroup.ts | 9 + dist/models/UserGroupIdsNotMatchingError.ts | 8 + dist/models/UserGroupNotFoundError.ts | 8 + dist/models/UserIdsNotMatchingError.ts | 8 + ...erNonexistantOrRefreshtokenInvalidError.ts | 8 + dist/models/UserNotFoundError.ts | 8 + ...NotFoundOrRefreshTokenCountInvalidError.ts | 8 + dist/models/UsernameOrEmailNeededError.ts | 8 + dist/services/AuthService.ts | 74 +++++++ dist/services/RunnerOrganisationService.ts | 104 +++++++++ dist/services/RunnerService.ts | 106 +++++++++ dist/services/RunnerTeamService.ts | 104 +++++++++ dist/services/TrackService.ts | 99 +++++++++ dist/services/UserGroupService.ts | 99 +++++++++ dist/services/UserService.ts | 99 +++++++++ openapi.json | 1 + 88 files changed, 1750 insertions(+) create mode 100644 dist/core/ApiError.ts create mode 100644 dist/core/ApiRequestOptions.ts create mode 100644 dist/core/ApiResult.ts create mode 100644 dist/core/OpenAPI.ts create mode 100644 dist/core/request.ts create mode 100644 dist/index.ts create mode 100644 dist/models/Address.ts create mode 100644 dist/models/AddressNotFoundError.ts create mode 100644 dist/models/AddressWrongTypeError.ts create mode 100644 dist/models/Auth.ts create mode 100644 dist/models/CreateAuth.ts create mode 100644 dist/models/CreateParticipant.ts create mode 100644 dist/models/CreateRunner.ts create mode 100644 dist/models/CreateRunnerGroup.ts create mode 100644 dist/models/CreateRunnerOrganisation.ts create mode 100644 dist/models/CreateRunnerTeam.ts create mode 100644 dist/models/CreateTrack.ts create mode 100644 dist/models/CreateUser.ts create mode 100644 dist/models/CreateUserGroup.ts create mode 100644 dist/models/DistanceDonation.ts create mode 100644 dist/models/Donation.ts create mode 100644 dist/models/ExpiredJWTError.ts create mode 100644 dist/models/GroupContact.ts create mode 100644 dist/models/GroupContactNotFoundError.ts create mode 100644 dist/models/GroupContactWrongTypeError.ts create mode 100644 dist/models/GroupNameNeededError.ts create mode 100644 dist/models/HandleLogout.ts create mode 100644 dist/models/IllegalJWTError.ts create mode 100644 dist/models/InvalidCredentialsError.ts create mode 100644 dist/models/JwtNotProvidedError.ts create mode 100644 dist/models/Logout.ts create mode 100644 dist/models/NoPermissionError.ts create mode 100644 dist/models/Participant.ts create mode 100644 dist/models/PasswordNeededError.ts create mode 100644 dist/models/Permission.ts create mode 100644 dist/models/RefreshAuth.ts create mode 100644 dist/models/RefreshTokenCountInvalidError.ts create mode 100644 dist/models/ResponseEmpty.ts create mode 100644 dist/models/ResponseParticipant.ts create mode 100644 dist/models/ResponseRunner.ts create mode 100644 dist/models/ResponseRunnerGroup.ts create mode 100644 dist/models/ResponseRunnerOrganisation.ts create mode 100644 dist/models/ResponseRunnerTeam.ts create mode 100644 dist/models/ResponseTrack.ts create mode 100644 dist/models/Runner.ts create mode 100644 dist/models/RunnerCard.ts create mode 100644 dist/models/RunnerGroup.ts create mode 100644 dist/models/RunnerGroupNeededError.ts create mode 100644 dist/models/RunnerGroupNotFoundError.ts create mode 100644 dist/models/RunnerIdsNotMatchingError.ts create mode 100644 dist/models/RunnerNotFoundError.ts create mode 100644 dist/models/RunnerOrganisation.ts create mode 100644 dist/models/RunnerOrganisationHasRunnersError.ts create mode 100644 dist/models/RunnerOrganisationHasTeamsError.ts create mode 100644 dist/models/RunnerOrganisationIdsNotMatchingError.ts create mode 100644 dist/models/RunnerOrganisationNotFoundError.ts create mode 100644 dist/models/RunnerOrganisationWrongTypeError.ts create mode 100644 dist/models/RunnerTeam.ts create mode 100644 dist/models/RunnerTeamHasRunnersError.ts create mode 100644 dist/models/RunnerTeamIdsNotMatchingError.ts create mode 100644 dist/models/RunnerTeamNeedsParentError.ts create mode 100644 dist/models/RunnerTeamNotFoundError.ts create mode 100644 dist/models/Scan.ts create mode 100644 dist/models/ScanStation.ts create mode 100644 dist/models/Track.ts create mode 100644 dist/models/TrackIdsNotMatchingError.ts create mode 100644 dist/models/TrackNotFoundError.ts create mode 100644 dist/models/TrackScan.ts create mode 100644 dist/models/UpdateRunner.ts create mode 100644 dist/models/UpdateRunnerTeam.ts create mode 100644 dist/models/User.ts create mode 100644 dist/models/UserAction.ts create mode 100644 dist/models/UserGroup.ts create mode 100644 dist/models/UserGroupIdsNotMatchingError.ts create mode 100644 dist/models/UserGroupNotFoundError.ts create mode 100644 dist/models/UserIdsNotMatchingError.ts create mode 100644 dist/models/UserNonexistantOrRefreshtokenInvalidError.ts create mode 100644 dist/models/UserNotFoundError.ts create mode 100644 dist/models/UserNotFoundOrRefreshTokenCountInvalidError.ts create mode 100644 dist/models/UsernameOrEmailNeededError.ts create mode 100644 dist/services/AuthService.ts create mode 100644 dist/services/RunnerOrganisationService.ts create mode 100644 dist/services/RunnerService.ts create mode 100644 dist/services/RunnerTeamService.ts create mode 100644 dist/services/TrackService.ts create mode 100644 dist/services/UserGroupService.ts create mode 100644 dist/services/UserService.ts create mode 100644 openapi.json diff --git a/dist/core/ApiError.ts b/dist/core/ApiError.ts new file mode 100644 index 0000000..f03cc40 --- /dev/null +++ b/dist/core/ApiError.ts @@ -0,0 +1,20 @@ +/* istanbul ignore file */ +/* tslint:disable */ +/* eslint-disable */ +import type { ApiResult } from './ApiResult'; + +export class ApiError extends Error { + public readonly url: string; + public readonly status: number; + public readonly statusText: string; + public readonly body: any; + + constructor(response: ApiResult, message: string) { + super(message); + + this.url = response.url; + this.status = response.status; + this.statusText = response.statusText; + this.body = response.body; + } +} \ No newline at end of file diff --git a/dist/core/ApiRequestOptions.ts b/dist/core/ApiRequestOptions.ts new file mode 100644 index 0000000..ee87d8f --- /dev/null +++ b/dist/core/ApiRequestOptions.ts @@ -0,0 +1,14 @@ +/* istanbul ignore file */ +/* tslint:disable */ +/* eslint-disable */ +export type ApiRequestOptions = { + readonly method: 'GET' | 'PUT' | 'POST' | 'DELETE' | 'OPTIONS' | 'HEAD' | 'PATCH'; + readonly path: string; + readonly cookies?: Record; + readonly headers?: Record; + readonly query?: Record; + readonly formData?: Record; + readonly body?: any; + readonly responseHeader?: string; + readonly errors?: Record; +} \ No newline at end of file diff --git a/dist/core/ApiResult.ts b/dist/core/ApiResult.ts new file mode 100644 index 0000000..7363469 --- /dev/null +++ b/dist/core/ApiResult.ts @@ -0,0 +1,10 @@ +/* istanbul ignore file */ +/* tslint:disable */ +/* eslint-disable */ +export type ApiResult = { + readonly url: string; + readonly ok: boolean; + readonly status: number; + readonly statusText: string; + readonly body: any; +} \ No newline at end of file diff --git a/dist/core/OpenAPI.ts b/dist/core/OpenAPI.ts new file mode 100644 index 0000000..afb76d7 --- /dev/null +++ b/dist/core/OpenAPI.ts @@ -0,0 +1,25 @@ +/* istanbul ignore file */ +/* tslint:disable */ +/* eslint-disable */ +type Resolver = () => Promise; +type Headers = Record; + +type Config = { + BASE: string; + VERSION: string; + WITH_CREDENTIALS: boolean; + TOKEN?: string | Resolver; + USERNAME?: string | Resolver; + PASSWORD?: string | Resolver; + HEADERS?: Headers | Resolver; +} + +export const OpenAPI: Config = { + BASE: '', + VERSION: '1.0.0', + WITH_CREDENTIALS: false, + TOKEN: undefined, + USERNAME: undefined, + PASSWORD: undefined, + HEADERS: undefined, +}; \ No newline at end of file diff --git a/dist/core/request.ts b/dist/core/request.ts new file mode 100644 index 0000000..31d189f --- /dev/null +++ b/dist/core/request.ts @@ -0,0 +1,202 @@ +/* istanbul ignore file */ +/* tslint:disable */ +/* eslint-disable */ +import { ApiError } from './ApiError'; +import type { ApiRequestOptions } from './ApiRequestOptions'; +import type { ApiResult } from './ApiResult'; +import { OpenAPI } from './OpenAPI'; + +function isDefined(value: T | null | undefined): value is Exclude { + return value !== undefined && value !== null; +} + +function isString(value: any): value is string { + return typeof value === 'string'; +} + +function isStringWithValue(value: any): value is string { + return isString(value) && value !== ''; +} + +function isBlob(value: any): value is Blob { + return value instanceof Blob; +} + +function getQueryString(params: Record): string { + const qs: string[] = []; + Object.keys(params).forEach(key => { + const value = params[key]; + if (isDefined(value)) { + if (Array.isArray(value)) { + value.forEach(value => { + qs.push(`${encodeURIComponent(key)}=${encodeURIComponent(String(value))}`); + }); + } else { + qs.push(`${encodeURIComponent(key)}=${encodeURIComponent(String(value))}`); + } + } + }); + if (qs.length > 0) { + return `?${qs.join('&')}`; + } + return ''; +} + +function getUrl(options: ApiRequestOptions): string { + const path = options.path.replace(/[:]/g, '_'); + const url = `${OpenAPI.BASE}${path}`; + + if (options.query) { + return `${url}${getQueryString(options.query)}`; + } + return url; +} + +function getFormData(params: Record): FormData { + const formData = new FormData(); + Object.keys(params).forEach(key => { + const value = params[key]; + if (isDefined(value)) { + formData.append(key, value); + } + }); + return formData; +} + +type Resolver = () => Promise; + +async function resolve(resolver?: T | Resolver): Promise { + if (typeof resolver === 'function') { + return (resolver as Resolver)(); + } + return resolver; +} + +async function getHeaders(options: ApiRequestOptions): Promise { + const headers = new Headers({ + Accept: 'application/json', + ...OpenAPI.HEADERS, + ...options.headers, + }); + + const token = await resolve(OpenAPI.TOKEN); + const username = await resolve(OpenAPI.USERNAME); + const password = await resolve(OpenAPI.PASSWORD); + + if (isStringWithValue(token)) { + headers.append('Authorization', `Bearer ${token}`); + } + + if (isStringWithValue(username) && isStringWithValue(password)) { + const credentials = btoa(`${username}:${password}`); + headers.append('Authorization', `Basic ${credentials}`); + } + + if (options.body) { + if (isBlob(options.body)) { + headers.append('Content-Type', options.body.type || 'application/octet-stream'); + } else if (isString(options.body)) { + headers.append('Content-Type', 'text/plain'); + } else { + headers.append('Content-Type', 'application/json'); + } + } + return headers; +} + +function getRequestBody(options: ApiRequestOptions): BodyInit | undefined { + if (options.formData) { + return getFormData(options.formData); + } + if (options.body) { + if (isString(options.body) || isBlob(options.body)) { + return options.body; + } else { + return JSON.stringify(options.body); + } + } + return undefined; +} + +async function sendRequest(options: ApiRequestOptions, url: string): Promise { + const request: RequestInit = { + method: options.method, + headers: await getHeaders(options), + body: getRequestBody(options), + }; + return await fetch(url, request); +} + +function getResponseHeader(response: Response, responseHeader?: string): string | null { + if (responseHeader) { + const content = response.headers.get(responseHeader); + if (isString(content)) { + return content; + } + } + return null; +} + +async function getResponseBody(response: Response): Promise { + try { + const contentType = response.headers.get('Content-Type'); + if (contentType) { + const isJSON = contentType.toLowerCase().startsWith('application/json'); + if (isJSON) { + return await response.json(); + } else { + return await response.text(); + } + } + } catch (error) { + console.error(error); + } + return null; +} + +function catchErrors(options: ApiRequestOptions, result: ApiResult): void { + const errors: Record = { + 400: 'Bad Request', + 401: 'Unauthorized', + 403: 'Forbidden', + 404: 'Not Found', + 500: 'Internal Server Error', + 502: 'Bad Gateway', + 503: 'Service Unavailable', + ...options.errors, + } + + const error = errors[result.status]; + if (error) { + throw new ApiError(result, error); + } + + if (!result.ok) { + throw new ApiError(result, 'Generic Error'); + } +} + +/** + * Request using fetch client + * @param options The request options from the the service + * @result ApiResult + * @throws ApiError + */ +export async function request(options: ApiRequestOptions): Promise { + const url = getUrl(options); + const response = await sendRequest(options, url); + const responseBody = await getResponseBody(response); + const responseHeader = getResponseHeader(response, options.responseHeader); + + const result: ApiResult = { + url, + ok: response.ok, + status: response.status, + statusText: response.statusText, + body: responseHeader || responseBody, + }; + + catchErrors(options, result); + return result; +} + diff --git a/dist/index.ts b/dist/index.ts new file mode 100644 index 0000000..1f2640d --- /dev/null +++ b/dist/index.ts @@ -0,0 +1,88 @@ +/* istanbul ignore file */ +/* tslint:disable */ +/* eslint-disable */ +export { ApiError } from './core/ApiError'; +export { OpenAPI } from './core/OpenAPI'; + +export type { Address } from './models/Address'; +export type { AddressNotFoundError } from './models/AddressNotFoundError'; +export type { AddressWrongTypeError } from './models/AddressWrongTypeError'; +export type { Auth } from './models/Auth'; +export type { CreateAuth } from './models/CreateAuth'; +export type { CreateParticipant } from './models/CreateParticipant'; +export type { CreateRunner } from './models/CreateRunner'; +export type { CreateRunnerGroup } from './models/CreateRunnerGroup'; +export type { CreateRunnerOrganisation } from './models/CreateRunnerOrganisation'; +export type { CreateRunnerTeam } from './models/CreateRunnerTeam'; +export type { CreateTrack } from './models/CreateTrack'; +export type { CreateUser } from './models/CreateUser'; +export type { CreateUserGroup } from './models/CreateUserGroup'; +export type { DistanceDonation } from './models/DistanceDonation'; +export type { Donation } from './models/Donation'; +export type { ExpiredJWTError } from './models/ExpiredJWTError'; +export type { GroupContact } from './models/GroupContact'; +export type { GroupContactNotFoundError } from './models/GroupContactNotFoundError'; +export type { GroupContactWrongTypeError } from './models/GroupContactWrongTypeError'; +export type { GroupNameNeededError } from './models/GroupNameNeededError'; +export type { HandleLogout } from './models/HandleLogout'; +export type { IllegalJWTError } from './models/IllegalJWTError'; +export type { InvalidCredentialsError } from './models/InvalidCredentialsError'; +export type { JwtNotProvidedError } from './models/JwtNotProvidedError'; +export type { Logout } from './models/Logout'; +export type { NoPermissionError } from './models/NoPermissionError'; +export type { Participant } from './models/Participant'; +export type { PasswordNeededError } from './models/PasswordNeededError'; +export type { Permission } from './models/Permission'; +export type { RefreshAuth } from './models/RefreshAuth'; +export type { RefreshTokenCountInvalidError } from './models/RefreshTokenCountInvalidError'; +export type { ResponseEmpty } from './models/ResponseEmpty'; +export type { ResponseParticipant } from './models/ResponseParticipant'; +export type { ResponseRunner } from './models/ResponseRunner'; +export type { ResponseRunnerGroup } from './models/ResponseRunnerGroup'; +export type { ResponseRunnerOrganisation } from './models/ResponseRunnerOrganisation'; +export type { ResponseRunnerTeam } from './models/ResponseRunnerTeam'; +export type { ResponseTrack } from './models/ResponseTrack'; +export type { Runner } from './models/Runner'; +export type { RunnerCard } from './models/RunnerCard'; +export type { RunnerGroup } from './models/RunnerGroup'; +export type { RunnerGroupNeededError } from './models/RunnerGroupNeededError'; +export type { RunnerGroupNotFoundError } from './models/RunnerGroupNotFoundError'; +export type { RunnerIdsNotMatchingError } from './models/RunnerIdsNotMatchingError'; +export type { RunnerNotFoundError } from './models/RunnerNotFoundError'; +export type { RunnerOrganisation } from './models/RunnerOrganisation'; +export type { RunnerOrganisationHasRunnersError } from './models/RunnerOrganisationHasRunnersError'; +export type { RunnerOrganisationHasTeamsError } from './models/RunnerOrganisationHasTeamsError'; +export type { RunnerOrganisationIdsNotMatchingError } from './models/RunnerOrganisationIdsNotMatchingError'; +export type { RunnerOrganisationNotFoundError } from './models/RunnerOrganisationNotFoundError'; +export type { RunnerOrganisationWrongTypeError } from './models/RunnerOrganisationWrongTypeError'; +export type { RunnerTeam } from './models/RunnerTeam'; +export type { RunnerTeamHasRunnersError } from './models/RunnerTeamHasRunnersError'; +export type { RunnerTeamIdsNotMatchingError } from './models/RunnerTeamIdsNotMatchingError'; +export type { RunnerTeamNeedsParentError } from './models/RunnerTeamNeedsParentError'; +export type { RunnerTeamNotFoundError } from './models/RunnerTeamNotFoundError'; +export type { Scan } from './models/Scan'; +export type { ScanStation } from './models/ScanStation'; +export type { Track } from './models/Track'; +export type { TrackIdsNotMatchingError } from './models/TrackIdsNotMatchingError'; +export type { TrackNotFoundError } from './models/TrackNotFoundError'; +export type { TrackScan } from './models/TrackScan'; +export type { UpdateRunner } from './models/UpdateRunner'; +export type { UpdateRunnerTeam } from './models/UpdateRunnerTeam'; +export type { User } from './models/User'; +export type { UserAction } from './models/UserAction'; +export type { UserGroup } from './models/UserGroup'; +export type { UserGroupIdsNotMatchingError } from './models/UserGroupIdsNotMatchingError'; +export type { UserGroupNotFoundError } from './models/UserGroupNotFoundError'; +export type { UserIdsNotMatchingError } from './models/UserIdsNotMatchingError'; +export type { UsernameOrEmailNeededError } from './models/UsernameOrEmailNeededError'; +export type { UserNonexistantOrRefreshtokenInvalidError } from './models/UserNonexistantOrRefreshtokenInvalidError'; +export type { UserNotFoundError } from './models/UserNotFoundError'; +export type { UserNotFoundOrRefreshTokenCountInvalidError } from './models/UserNotFoundOrRefreshTokenCountInvalidError'; + +export { AuthService } from './services/AuthService'; +export { RunnerOrganisationService } from './services/RunnerOrganisationService'; +export { RunnerService } from './services/RunnerService'; +export { RunnerTeamService } from './services/RunnerTeamService'; +export { TrackService } from './services/TrackService'; +export { UserGroupService } from './services/UserGroupService'; +export { UserService } from './services/UserService'; diff --git a/dist/models/Address.ts b/dist/models/Address.ts new file mode 100644 index 0000000..2f7b992 --- /dev/null +++ b/dist/models/Address.ts @@ -0,0 +1,13 @@ +/* istanbul ignore file */ +/* tslint:disable */ +/* eslint-disable */ + +export type Address = { + id: number; + description?: string; + address1: string; + address2?: string; + postalcode: string; + city: string; + country: string; +} diff --git a/dist/models/AddressNotFoundError.ts b/dist/models/AddressNotFoundError.ts new file mode 100644 index 0000000..ad6d7ec --- /dev/null +++ b/dist/models/AddressNotFoundError.ts @@ -0,0 +1,8 @@ +/* istanbul ignore file */ +/* tslint:disable */ +/* eslint-disable */ + +export type AddressNotFoundError = { + name: string; + message: string; +} diff --git a/dist/models/AddressWrongTypeError.ts b/dist/models/AddressWrongTypeError.ts new file mode 100644 index 0000000..15d3de6 --- /dev/null +++ b/dist/models/AddressWrongTypeError.ts @@ -0,0 +1,8 @@ +/* istanbul ignore file */ +/* tslint:disable */ +/* eslint-disable */ + +export type AddressWrongTypeError = { + name: string; + message: string; +} diff --git a/dist/models/Auth.ts b/dist/models/Auth.ts new file mode 100644 index 0000000..47ecc97 --- /dev/null +++ b/dist/models/Auth.ts @@ -0,0 +1,10 @@ +/* istanbul ignore file */ +/* tslint:disable */ +/* eslint-disable */ + +export type Auth = { + access_token: string; + refresh_token: string; + access_token_expires_at: number; + refresh_token_expires_at: number; +} diff --git a/dist/models/CreateAuth.ts b/dist/models/CreateAuth.ts new file mode 100644 index 0000000..fcf8781 --- /dev/null +++ b/dist/models/CreateAuth.ts @@ -0,0 +1,9 @@ +/* istanbul ignore file */ +/* tslint:disable */ +/* eslint-disable */ + +export type CreateAuth = { + username?: string; + password: string; + email?: string; +} diff --git a/dist/models/CreateParticipant.ts b/dist/models/CreateParticipant.ts new file mode 100644 index 0000000..bc42b95 --- /dev/null +++ b/dist/models/CreateParticipant.ts @@ -0,0 +1,12 @@ +/* istanbul ignore file */ +/* tslint:disable */ +/* eslint-disable */ + +export type CreateParticipant = { + firstname: string; + middlename?: string; + lastname: string; + phone?: string; + email?: string; + address?: number; +} diff --git a/dist/models/CreateRunner.ts b/dist/models/CreateRunner.ts new file mode 100644 index 0000000..625098f --- /dev/null +++ b/dist/models/CreateRunner.ts @@ -0,0 +1,13 @@ +/* istanbul ignore file */ +/* tslint:disable */ +/* eslint-disable */ + +export type CreateRunner = { + group: number; + firstname: string; + middlename?: string; + lastname: string; + phone?: string; + email?: string; + address?: number; +} diff --git a/dist/models/CreateRunnerGroup.ts b/dist/models/CreateRunnerGroup.ts new file mode 100644 index 0000000..4b635a8 --- /dev/null +++ b/dist/models/CreateRunnerGroup.ts @@ -0,0 +1,8 @@ +/* istanbul ignore file */ +/* tslint:disable */ +/* eslint-disable */ + +export type CreateRunnerGroup = { + name: string; + contact?: number; +} diff --git a/dist/models/CreateRunnerOrganisation.ts b/dist/models/CreateRunnerOrganisation.ts new file mode 100644 index 0000000..c7a9b9a --- /dev/null +++ b/dist/models/CreateRunnerOrganisation.ts @@ -0,0 +1,9 @@ +/* istanbul ignore file */ +/* tslint:disable */ +/* eslint-disable */ + +export type CreateRunnerOrganisation = { + address?: number; + name: string; + contact?: number; +} diff --git a/dist/models/CreateRunnerTeam.ts b/dist/models/CreateRunnerTeam.ts new file mode 100644 index 0000000..bdeba58 --- /dev/null +++ b/dist/models/CreateRunnerTeam.ts @@ -0,0 +1,9 @@ +/* istanbul ignore file */ +/* tslint:disable */ +/* eslint-disable */ + +export type CreateRunnerTeam = { + parentGroup: number; + name: string; + contact?: number; +} diff --git a/dist/models/CreateTrack.ts b/dist/models/CreateTrack.ts new file mode 100644 index 0000000..933c732 --- /dev/null +++ b/dist/models/CreateTrack.ts @@ -0,0 +1,8 @@ +/* istanbul ignore file */ +/* tslint:disable */ +/* eslint-disable */ + +export type CreateTrack = { + name: string; + distance: number; +} diff --git a/dist/models/CreateUser.ts b/dist/models/CreateUser.ts new file mode 100644 index 0000000..a4e4e70 --- /dev/null +++ b/dist/models/CreateUser.ts @@ -0,0 +1,14 @@ +/* istanbul ignore file */ +/* tslint:disable */ +/* eslint-disable */ + +export type CreateUser = { + firstname: string; + middlename?: string; + lastname: string; + username?: string; + email?: string; + phone?: string; + password: string; + groupId?: any; +} diff --git a/dist/models/CreateUserGroup.ts b/dist/models/CreateUserGroup.ts new file mode 100644 index 0000000..1fc75b3 --- /dev/null +++ b/dist/models/CreateUserGroup.ts @@ -0,0 +1,8 @@ +/* istanbul ignore file */ +/* tslint:disable */ +/* eslint-disable */ + +export type CreateUserGroup = { + name: string; + description?: string; +} diff --git a/dist/models/DistanceDonation.ts b/dist/models/DistanceDonation.ts new file mode 100644 index 0000000..da3363a --- /dev/null +++ b/dist/models/DistanceDonation.ts @@ -0,0 +1,10 @@ +/* istanbul ignore file */ +/* tslint:disable */ +/* eslint-disable */ + +export type DistanceDonation = { + runner: string; + amountPerDistance: number; + id: number; + donor: string; +} diff --git a/dist/models/Donation.ts b/dist/models/Donation.ts new file mode 100644 index 0000000..dc3970f --- /dev/null +++ b/dist/models/Donation.ts @@ -0,0 +1,8 @@ +/* istanbul ignore file */ +/* tslint:disable */ +/* eslint-disable */ + +export type Donation = { + id: number; + donor: string; +} diff --git a/dist/models/ExpiredJWTError.ts b/dist/models/ExpiredJWTError.ts new file mode 100644 index 0000000..152734a --- /dev/null +++ b/dist/models/ExpiredJWTError.ts @@ -0,0 +1,8 @@ +/* istanbul ignore file */ +/* tslint:disable */ +/* eslint-disable */ + +export type ExpiredJWTError = { + name: string; + message: string; +} diff --git a/dist/models/GroupContact.ts b/dist/models/GroupContact.ts new file mode 100644 index 0000000..fe8b8ce --- /dev/null +++ b/dist/models/GroupContact.ts @@ -0,0 +1,13 @@ +/* istanbul ignore file */ +/* tslint:disable */ +/* eslint-disable */ + +export type GroupContact = { + id: number; + firstname: string; + middlename?: string; + lastname: string; + address?: any; + phone?: string; + email?: string; +} diff --git a/dist/models/GroupContactNotFoundError.ts b/dist/models/GroupContactNotFoundError.ts new file mode 100644 index 0000000..0dd5391 --- /dev/null +++ b/dist/models/GroupContactNotFoundError.ts @@ -0,0 +1,8 @@ +/* istanbul ignore file */ +/* tslint:disable */ +/* eslint-disable */ + +export type GroupContactNotFoundError = { + name: string; + message: string; +} diff --git a/dist/models/GroupContactWrongTypeError.ts b/dist/models/GroupContactWrongTypeError.ts new file mode 100644 index 0000000..54b3063 --- /dev/null +++ b/dist/models/GroupContactWrongTypeError.ts @@ -0,0 +1,8 @@ +/* istanbul ignore file */ +/* tslint:disable */ +/* eslint-disable */ + +export type GroupContactWrongTypeError = { + name: string; + message: string; +} diff --git a/dist/models/GroupNameNeededError.ts b/dist/models/GroupNameNeededError.ts new file mode 100644 index 0000000..0169c55 --- /dev/null +++ b/dist/models/GroupNameNeededError.ts @@ -0,0 +1,8 @@ +/* istanbul ignore file */ +/* tslint:disable */ +/* eslint-disable */ + +export type GroupNameNeededError = { + name: string; + message: string; +} diff --git a/dist/models/HandleLogout.ts b/dist/models/HandleLogout.ts new file mode 100644 index 0000000..8b9081c --- /dev/null +++ b/dist/models/HandleLogout.ts @@ -0,0 +1,7 @@ +/* istanbul ignore file */ +/* tslint:disable */ +/* eslint-disable */ + +export type HandleLogout = { + token?: string; +} diff --git a/dist/models/IllegalJWTError.ts b/dist/models/IllegalJWTError.ts new file mode 100644 index 0000000..c833946 --- /dev/null +++ b/dist/models/IllegalJWTError.ts @@ -0,0 +1,8 @@ +/* istanbul ignore file */ +/* tslint:disable */ +/* eslint-disable */ + +export type IllegalJWTError = { + name: string; + message: string; +} diff --git a/dist/models/InvalidCredentialsError.ts b/dist/models/InvalidCredentialsError.ts new file mode 100644 index 0000000..0420576 --- /dev/null +++ b/dist/models/InvalidCredentialsError.ts @@ -0,0 +1,8 @@ +/* istanbul ignore file */ +/* tslint:disable */ +/* eslint-disable */ + +export type InvalidCredentialsError = { + name: string; + message: string; +} diff --git a/dist/models/JwtNotProvidedError.ts b/dist/models/JwtNotProvidedError.ts new file mode 100644 index 0000000..e9913c3 --- /dev/null +++ b/dist/models/JwtNotProvidedError.ts @@ -0,0 +1,8 @@ +/* istanbul ignore file */ +/* tslint:disable */ +/* eslint-disable */ + +export type JwtNotProvidedError = { + name: string; + message: string; +} diff --git a/dist/models/Logout.ts b/dist/models/Logout.ts new file mode 100644 index 0000000..e865509 --- /dev/null +++ b/dist/models/Logout.ts @@ -0,0 +1,7 @@ +/* istanbul ignore file */ +/* tslint:disable */ +/* eslint-disable */ + +export type Logout = { + timestamp: string; +} diff --git a/dist/models/NoPermissionError.ts b/dist/models/NoPermissionError.ts new file mode 100644 index 0000000..fbcf8fe --- /dev/null +++ b/dist/models/NoPermissionError.ts @@ -0,0 +1,8 @@ +/* istanbul ignore file */ +/* tslint:disable */ +/* eslint-disable */ + +export type NoPermissionError = { + name: string; + message: string; +} diff --git a/dist/models/Participant.ts b/dist/models/Participant.ts new file mode 100644 index 0000000..51fb6db --- /dev/null +++ b/dist/models/Participant.ts @@ -0,0 +1,12 @@ +/* istanbul ignore file */ +/* tslint:disable */ +/* eslint-disable */ + +export type Participant = { + id: number; + firstname: string; + middlename?: string; + lastname: string; + phone?: string; + email?: string; +} diff --git a/dist/models/PasswordNeededError.ts b/dist/models/PasswordNeededError.ts new file mode 100644 index 0000000..2a5717b --- /dev/null +++ b/dist/models/PasswordNeededError.ts @@ -0,0 +1,8 @@ +/* istanbul ignore file */ +/* tslint:disable */ +/* eslint-disable */ + +export type PasswordNeededError = { + name: string; + message: string; +} diff --git a/dist/models/Permission.ts b/dist/models/Permission.ts new file mode 100644 index 0000000..edcbbf9 --- /dev/null +++ b/dist/models/Permission.ts @@ -0,0 +1,9 @@ +/* istanbul ignore file */ +/* tslint:disable */ +/* eslint-disable */ + +export type Permission = { + id: number; + target: string; + action: string; +} diff --git a/dist/models/RefreshAuth.ts b/dist/models/RefreshAuth.ts new file mode 100644 index 0000000..8b73ce2 --- /dev/null +++ b/dist/models/RefreshAuth.ts @@ -0,0 +1,7 @@ +/* istanbul ignore file */ +/* tslint:disable */ +/* eslint-disable */ + +export type RefreshAuth = { + token?: string; +} diff --git a/dist/models/RefreshTokenCountInvalidError.ts b/dist/models/RefreshTokenCountInvalidError.ts new file mode 100644 index 0000000..043e446 --- /dev/null +++ b/dist/models/RefreshTokenCountInvalidError.ts @@ -0,0 +1,8 @@ +/* istanbul ignore file */ +/* tslint:disable */ +/* eslint-disable */ + +export type RefreshTokenCountInvalidError = { + name: string; + message: string; +} diff --git a/dist/models/ResponseEmpty.ts b/dist/models/ResponseEmpty.ts new file mode 100644 index 0000000..791aa60 --- /dev/null +++ b/dist/models/ResponseEmpty.ts @@ -0,0 +1,7 @@ +/* istanbul ignore file */ +/* tslint:disable */ +/* eslint-disable */ + +export type ResponseEmpty = { + response: string; +} diff --git a/dist/models/ResponseParticipant.ts b/dist/models/ResponseParticipant.ts new file mode 100644 index 0000000..894f07b --- /dev/null +++ b/dist/models/ResponseParticipant.ts @@ -0,0 +1,12 @@ +/* istanbul ignore file */ +/* tslint:disable */ +/* eslint-disable */ + +export type ResponseParticipant = { + id: number; + firstname: string; + middlename: string; + lastname: string; + phone: string; + email: string; +} diff --git a/dist/models/ResponseRunner.ts b/dist/models/ResponseRunner.ts new file mode 100644 index 0000000..832b0a7 --- /dev/null +++ b/dist/models/ResponseRunner.ts @@ -0,0 +1,16 @@ +/* istanbul ignore file */ +/* tslint:disable */ +/* eslint-disable */ + +import type { RunnerGroup } from './RunnerGroup'; + +export type ResponseRunner = { + distance: number; + group: RunnerGroup; + id: number; + firstname: string; + middlename: string; + lastname: string; + phone: string; + email: string; +} diff --git a/dist/models/ResponseRunnerGroup.ts b/dist/models/ResponseRunnerGroup.ts new file mode 100644 index 0000000..a981f21 --- /dev/null +++ b/dist/models/ResponseRunnerGroup.ts @@ -0,0 +1,11 @@ +/* istanbul ignore file */ +/* tslint:disable */ +/* eslint-disable */ + +import type { GroupContact } from './GroupContact'; + +export type ResponseRunnerGroup = { + id: number; + name: string; + contact?: GroupContact; +} diff --git a/dist/models/ResponseRunnerOrganisation.ts b/dist/models/ResponseRunnerOrganisation.ts new file mode 100644 index 0000000..19b382c --- /dev/null +++ b/dist/models/ResponseRunnerOrganisation.ts @@ -0,0 +1,14 @@ +/* istanbul ignore file */ +/* tslint:disable */ +/* eslint-disable */ + +import type { Address } from './Address'; +import type { GroupContact } from './GroupContact'; + +export type ResponseRunnerOrganisation = { + address: Address; + teams: Array; + id: number; + name: string; + contact?: GroupContact; +} diff --git a/dist/models/ResponseRunnerTeam.ts b/dist/models/ResponseRunnerTeam.ts new file mode 100644 index 0000000..6276747 --- /dev/null +++ b/dist/models/ResponseRunnerTeam.ts @@ -0,0 +1,13 @@ +/* istanbul ignore file */ +/* tslint:disable */ +/* eslint-disable */ + +import type { GroupContact } from './GroupContact'; +import type { RunnerOrganisation } from './RunnerOrganisation'; + +export type ResponseRunnerTeam = { + parentGroup: RunnerOrganisation; + id: number; + name: string; + contact?: GroupContact; +} diff --git a/dist/models/ResponseTrack.ts b/dist/models/ResponseTrack.ts new file mode 100644 index 0000000..83cb047 --- /dev/null +++ b/dist/models/ResponseTrack.ts @@ -0,0 +1,9 @@ +/* istanbul ignore file */ +/* tslint:disable */ +/* eslint-disable */ + +export type ResponseTrack = { + id: number; + name: string; + distance: number; +} diff --git a/dist/models/Runner.ts b/dist/models/Runner.ts new file mode 100644 index 0000000..408f8fc --- /dev/null +++ b/dist/models/Runner.ts @@ -0,0 +1,14 @@ +/* istanbul ignore file */ +/* tslint:disable */ +/* eslint-disable */ + +export type Runner = { + group: string; + distance: number; + id: number; + firstname: string; + middlename?: string; + lastname: string; + phone?: string; + email?: string; +} diff --git a/dist/models/RunnerCard.ts b/dist/models/RunnerCard.ts new file mode 100644 index 0000000..304749f --- /dev/null +++ b/dist/models/RunnerCard.ts @@ -0,0 +1,10 @@ +/* istanbul ignore file */ +/* tslint:disable */ +/* eslint-disable */ + +export type RunnerCard = { + id: number; + runner?: any; + code: string; + enabled: boolean; +} diff --git a/dist/models/RunnerGroup.ts b/dist/models/RunnerGroup.ts new file mode 100644 index 0000000..c5c3e1b --- /dev/null +++ b/dist/models/RunnerGroup.ts @@ -0,0 +1,9 @@ +/* istanbul ignore file */ +/* tslint:disable */ +/* eslint-disable */ + +export type RunnerGroup = { + id: number; + name: string; + contact?: any; +} diff --git a/dist/models/RunnerGroupNeededError.ts b/dist/models/RunnerGroupNeededError.ts new file mode 100644 index 0000000..2e4e641 --- /dev/null +++ b/dist/models/RunnerGroupNeededError.ts @@ -0,0 +1,8 @@ +/* istanbul ignore file */ +/* tslint:disable */ +/* eslint-disable */ + +export type RunnerGroupNeededError = { + name: string; + message: string; +} diff --git a/dist/models/RunnerGroupNotFoundError.ts b/dist/models/RunnerGroupNotFoundError.ts new file mode 100644 index 0000000..6caa7f4 --- /dev/null +++ b/dist/models/RunnerGroupNotFoundError.ts @@ -0,0 +1,8 @@ +/* istanbul ignore file */ +/* tslint:disable */ +/* eslint-disable */ + +export type RunnerGroupNotFoundError = { + name: string; + message: string; +} diff --git a/dist/models/RunnerIdsNotMatchingError.ts b/dist/models/RunnerIdsNotMatchingError.ts new file mode 100644 index 0000000..3776afb --- /dev/null +++ b/dist/models/RunnerIdsNotMatchingError.ts @@ -0,0 +1,8 @@ +/* istanbul ignore file */ +/* tslint:disable */ +/* eslint-disable */ + +export type RunnerIdsNotMatchingError = { + name: string; + message: string; +} diff --git a/dist/models/RunnerNotFoundError.ts b/dist/models/RunnerNotFoundError.ts new file mode 100644 index 0000000..c767c2c --- /dev/null +++ b/dist/models/RunnerNotFoundError.ts @@ -0,0 +1,8 @@ +/* istanbul ignore file */ +/* tslint:disable */ +/* eslint-disable */ + +export type RunnerNotFoundError = { + name: string; + message: string; +} diff --git a/dist/models/RunnerOrganisation.ts b/dist/models/RunnerOrganisation.ts new file mode 100644 index 0000000..286d1e6 --- /dev/null +++ b/dist/models/RunnerOrganisation.ts @@ -0,0 +1,10 @@ +/* istanbul ignore file */ +/* tslint:disable */ +/* eslint-disable */ + +export type RunnerOrganisation = { + address?: any; + id: number; + name: string; + contact?: any; +} diff --git a/dist/models/RunnerOrganisationHasRunnersError.ts b/dist/models/RunnerOrganisationHasRunnersError.ts new file mode 100644 index 0000000..405eda9 --- /dev/null +++ b/dist/models/RunnerOrganisationHasRunnersError.ts @@ -0,0 +1,8 @@ +/* istanbul ignore file */ +/* tslint:disable */ +/* eslint-disable */ + +export type RunnerOrganisationHasRunnersError = { + name: string; + message: string; +} diff --git a/dist/models/RunnerOrganisationHasTeamsError.ts b/dist/models/RunnerOrganisationHasTeamsError.ts new file mode 100644 index 0000000..f12da61 --- /dev/null +++ b/dist/models/RunnerOrganisationHasTeamsError.ts @@ -0,0 +1,8 @@ +/* istanbul ignore file */ +/* tslint:disable */ +/* eslint-disable */ + +export type RunnerOrganisationHasTeamsError = { + name: string; + message: string; +} diff --git a/dist/models/RunnerOrganisationIdsNotMatchingError.ts b/dist/models/RunnerOrganisationIdsNotMatchingError.ts new file mode 100644 index 0000000..f6bbcfd --- /dev/null +++ b/dist/models/RunnerOrganisationIdsNotMatchingError.ts @@ -0,0 +1,8 @@ +/* istanbul ignore file */ +/* tslint:disable */ +/* eslint-disable */ + +export type RunnerOrganisationIdsNotMatchingError = { + name: string; + message: string; +} diff --git a/dist/models/RunnerOrganisationNotFoundError.ts b/dist/models/RunnerOrganisationNotFoundError.ts new file mode 100644 index 0000000..e7a9e28 --- /dev/null +++ b/dist/models/RunnerOrganisationNotFoundError.ts @@ -0,0 +1,8 @@ +/* istanbul ignore file */ +/* tslint:disable */ +/* eslint-disable */ + +export type RunnerOrganisationNotFoundError = { + name: string; + message: string; +} diff --git a/dist/models/RunnerOrganisationWrongTypeError.ts b/dist/models/RunnerOrganisationWrongTypeError.ts new file mode 100644 index 0000000..55f85f5 --- /dev/null +++ b/dist/models/RunnerOrganisationWrongTypeError.ts @@ -0,0 +1,8 @@ +/* istanbul ignore file */ +/* tslint:disable */ +/* eslint-disable */ + +export type RunnerOrganisationWrongTypeError = { + name: string; + message: string; +} diff --git a/dist/models/RunnerTeam.ts b/dist/models/RunnerTeam.ts new file mode 100644 index 0000000..9fa5883 --- /dev/null +++ b/dist/models/RunnerTeam.ts @@ -0,0 +1,10 @@ +/* istanbul ignore file */ +/* tslint:disable */ +/* eslint-disable */ + +export type RunnerTeam = { + parentGroup: string; + id: number; + name: string; + contact?: any; +} diff --git a/dist/models/RunnerTeamHasRunnersError.ts b/dist/models/RunnerTeamHasRunnersError.ts new file mode 100644 index 0000000..2579d57 --- /dev/null +++ b/dist/models/RunnerTeamHasRunnersError.ts @@ -0,0 +1,8 @@ +/* istanbul ignore file */ +/* tslint:disable */ +/* eslint-disable */ + +export type RunnerTeamHasRunnersError = { + name: string; + message: string; +} diff --git a/dist/models/RunnerTeamIdsNotMatchingError.ts b/dist/models/RunnerTeamIdsNotMatchingError.ts new file mode 100644 index 0000000..1b70d94 --- /dev/null +++ b/dist/models/RunnerTeamIdsNotMatchingError.ts @@ -0,0 +1,8 @@ +/* istanbul ignore file */ +/* tslint:disable */ +/* eslint-disable */ + +export type RunnerTeamIdsNotMatchingError = { + name: string; + message: string; +} diff --git a/dist/models/RunnerTeamNeedsParentError.ts b/dist/models/RunnerTeamNeedsParentError.ts new file mode 100644 index 0000000..d384f35 --- /dev/null +++ b/dist/models/RunnerTeamNeedsParentError.ts @@ -0,0 +1,8 @@ +/* istanbul ignore file */ +/* tslint:disable */ +/* eslint-disable */ + +export type RunnerTeamNeedsParentError = { + name: string; + message: string; +} diff --git a/dist/models/RunnerTeamNotFoundError.ts b/dist/models/RunnerTeamNotFoundError.ts new file mode 100644 index 0000000..9e1e936 --- /dev/null +++ b/dist/models/RunnerTeamNotFoundError.ts @@ -0,0 +1,8 @@ +/* istanbul ignore file */ +/* tslint:disable */ +/* eslint-disable */ + +export type RunnerTeamNotFoundError = { + name: string; + message: string; +} diff --git a/dist/models/Scan.ts b/dist/models/Scan.ts new file mode 100644 index 0000000..9f32e30 --- /dev/null +++ b/dist/models/Scan.ts @@ -0,0 +1,10 @@ +/* istanbul ignore file */ +/* tslint:disable */ +/* eslint-disable */ + +export type Scan = { + id: number; + runner: string; + distance: number; + valid: boolean; +} diff --git a/dist/models/ScanStation.ts b/dist/models/ScanStation.ts new file mode 100644 index 0000000..3a5b0a4 --- /dev/null +++ b/dist/models/ScanStation.ts @@ -0,0 +1,11 @@ +/* istanbul ignore file */ +/* tslint:disable */ +/* eslint-disable */ + +export type ScanStation = { + id: number; + description?: string; + track: string; + key: string; + enabled: boolean; +} diff --git a/dist/models/Track.ts b/dist/models/Track.ts new file mode 100644 index 0000000..ab50204 --- /dev/null +++ b/dist/models/Track.ts @@ -0,0 +1,9 @@ +/* istanbul ignore file */ +/* tslint:disable */ +/* eslint-disable */ + +export type Track = { + id: number; + name: string; + distance: number; +} diff --git a/dist/models/TrackIdsNotMatchingError.ts b/dist/models/TrackIdsNotMatchingError.ts new file mode 100644 index 0000000..4ab7b11 --- /dev/null +++ b/dist/models/TrackIdsNotMatchingError.ts @@ -0,0 +1,8 @@ +/* istanbul ignore file */ +/* tslint:disable */ +/* eslint-disable */ + +export type TrackIdsNotMatchingError = { + name: string; + message: string; +} diff --git a/dist/models/TrackNotFoundError.ts b/dist/models/TrackNotFoundError.ts new file mode 100644 index 0000000..0823e6a --- /dev/null +++ b/dist/models/TrackNotFoundError.ts @@ -0,0 +1,8 @@ +/* istanbul ignore file */ +/* tslint:disable */ +/* eslint-disable */ + +export type TrackNotFoundError = { + name: string; + message: string; +} diff --git a/dist/models/TrackScan.ts b/dist/models/TrackScan.ts new file mode 100644 index 0000000..4db81dd --- /dev/null +++ b/dist/models/TrackScan.ts @@ -0,0 +1,14 @@ +/* istanbul ignore file */ +/* tslint:disable */ +/* eslint-disable */ + +export type TrackScan = { + track: string; + card: string; + station: string; + distance: number; + timestamp: string; + id: number; + runner: string; + valid: boolean; +} diff --git a/dist/models/UpdateRunner.ts b/dist/models/UpdateRunner.ts new file mode 100644 index 0000000..43b5f6e --- /dev/null +++ b/dist/models/UpdateRunner.ts @@ -0,0 +1,16 @@ +/* istanbul ignore file */ +/* tslint:disable */ +/* eslint-disable */ + +import type { RunnerGroup } from './RunnerGroup'; + +export type UpdateRunner = { + id: number; + group: RunnerGroup; + firstname: string; + middlename?: string; + lastname: string; + phone?: string; + email?: string; + address?: number; +} diff --git a/dist/models/UpdateRunnerTeam.ts b/dist/models/UpdateRunnerTeam.ts new file mode 100644 index 0000000..d235820 --- /dev/null +++ b/dist/models/UpdateRunnerTeam.ts @@ -0,0 +1,12 @@ +/* istanbul ignore file */ +/* tslint:disable */ +/* eslint-disable */ + +import type { RunnerOrganisation } from './RunnerOrganisation'; + +export type UpdateRunnerTeam = { + id: number; + parentGroup: RunnerOrganisation; + name: string; + contact?: number; +} diff --git a/dist/models/User.ts b/dist/models/User.ts new file mode 100644 index 0000000..975e6fe --- /dev/null +++ b/dist/models/User.ts @@ -0,0 +1,21 @@ +/* istanbul ignore file */ +/* tslint:disable */ +/* eslint-disable */ + +export type User = { + id: number; + uuid: string; + email: string; + phone?: string; + username: string; + firstname: string; + middlename?: string; + lastname: string; + password: string; + permissions?: any; + groups?: any; + enabled: boolean; + refreshTokenCount: number; + profilePic?: string; + actions?: any; +} diff --git a/dist/models/UserAction.ts b/dist/models/UserAction.ts new file mode 100644 index 0000000..f50bfe8 --- /dev/null +++ b/dist/models/UserAction.ts @@ -0,0 +1,10 @@ +/* istanbul ignore file */ +/* tslint:disable */ +/* eslint-disable */ + +export type UserAction = { + id: number; + target: string; + action: string; + changed?: string; +} diff --git a/dist/models/UserGroup.ts b/dist/models/UserGroup.ts new file mode 100644 index 0000000..7566319 --- /dev/null +++ b/dist/models/UserGroup.ts @@ -0,0 +1,9 @@ +/* istanbul ignore file */ +/* tslint:disable */ +/* eslint-disable */ + +export type UserGroup = { + id: number; + name: string; + description?: string; +} diff --git a/dist/models/UserGroupIdsNotMatchingError.ts b/dist/models/UserGroupIdsNotMatchingError.ts new file mode 100644 index 0000000..c064929 --- /dev/null +++ b/dist/models/UserGroupIdsNotMatchingError.ts @@ -0,0 +1,8 @@ +/* istanbul ignore file */ +/* tslint:disable */ +/* eslint-disable */ + +export type UserGroupIdsNotMatchingError = { + name: string; + message: string; +} diff --git a/dist/models/UserGroupNotFoundError.ts b/dist/models/UserGroupNotFoundError.ts new file mode 100644 index 0000000..65d8dfa --- /dev/null +++ b/dist/models/UserGroupNotFoundError.ts @@ -0,0 +1,8 @@ +/* istanbul ignore file */ +/* tslint:disable */ +/* eslint-disable */ + +export type UserGroupNotFoundError = { + name: string; + message: string; +} diff --git a/dist/models/UserIdsNotMatchingError.ts b/dist/models/UserIdsNotMatchingError.ts new file mode 100644 index 0000000..fe1d558 --- /dev/null +++ b/dist/models/UserIdsNotMatchingError.ts @@ -0,0 +1,8 @@ +/* istanbul ignore file */ +/* tslint:disable */ +/* eslint-disable */ + +export type UserIdsNotMatchingError = { + name: string; + message: string; +} diff --git a/dist/models/UserNonexistantOrRefreshtokenInvalidError.ts b/dist/models/UserNonexistantOrRefreshtokenInvalidError.ts new file mode 100644 index 0000000..4c14506 --- /dev/null +++ b/dist/models/UserNonexistantOrRefreshtokenInvalidError.ts @@ -0,0 +1,8 @@ +/* istanbul ignore file */ +/* tslint:disable */ +/* eslint-disable */ + +export type UserNonexistantOrRefreshtokenInvalidError = { + name: string; + message: string; +} diff --git a/dist/models/UserNotFoundError.ts b/dist/models/UserNotFoundError.ts new file mode 100644 index 0000000..a2ed1bb --- /dev/null +++ b/dist/models/UserNotFoundError.ts @@ -0,0 +1,8 @@ +/* istanbul ignore file */ +/* tslint:disable */ +/* eslint-disable */ + +export type UserNotFoundError = { + name: string; + message: string; +} diff --git a/dist/models/UserNotFoundOrRefreshTokenCountInvalidError.ts b/dist/models/UserNotFoundOrRefreshTokenCountInvalidError.ts new file mode 100644 index 0000000..4e479f7 --- /dev/null +++ b/dist/models/UserNotFoundOrRefreshTokenCountInvalidError.ts @@ -0,0 +1,8 @@ +/* istanbul ignore file */ +/* tslint:disable */ +/* eslint-disable */ + +export type UserNotFoundOrRefreshTokenCountInvalidError = { + name: string; + message: string; +} diff --git a/dist/models/UsernameOrEmailNeededError.ts b/dist/models/UsernameOrEmailNeededError.ts new file mode 100644 index 0000000..21e3a6b --- /dev/null +++ b/dist/models/UsernameOrEmailNeededError.ts @@ -0,0 +1,8 @@ +/* istanbul ignore file */ +/* tslint:disable */ +/* eslint-disable */ + +export type UsernameOrEmailNeededError = { + name: string; + message: string; +} diff --git a/dist/services/AuthService.ts b/dist/services/AuthService.ts new file mode 100644 index 0000000..5de70bb --- /dev/null +++ b/dist/services/AuthService.ts @@ -0,0 +1,74 @@ +/* istanbul ignore file */ +/* tslint:disable */ +/* eslint-disable */ +import type { Auth } from '../models/Auth'; +import type { CreateAuth } from '../models/CreateAuth'; +import type { HandleLogout } from '../models/HandleLogout'; +import type { IllegalJWTError } from '../models/IllegalJWTError'; +import type { InvalidCredentialsError } from '../models/InvalidCredentialsError'; +import type { JwtNotProvidedError } from '../models/JwtNotProvidedError'; +import type { Logout } from '../models/Logout'; +import type { PasswordNeededError } from '../models/PasswordNeededError'; +import type { RefreshAuth } from '../models/RefreshAuth'; +import type { RefreshTokenCountInvalidError } from '../models/RefreshTokenCountInvalidError'; +import type { UsernameOrEmailNeededError } from '../models/UsernameOrEmailNeededError'; +import type { UserNotFoundError } from '../models/UserNotFoundError'; +import { request as __request } from '../core/request'; + +export class AuthService { + + /** + * Login + * Create a new access token object + * @param requestBody CreateAuth + * @result any + * @throws ApiError + */ + public static async authControllerLogin( + requestBody?: CreateAuth, + ): Promise<(Auth | InvalidCredentialsError | UserNotFoundError | UsernameOrEmailNeededError | PasswordNeededError | InvalidCredentialsError)> { + const result = await __request({ + method: 'POST', + path: `/api/auth/login`, + body: requestBody, + }); + return result.body; + } + + /** + * Logout + * Create a new access token object + * @param requestBody HandleLogout + * @result any + * @throws ApiError + */ + public static async authControllerLogout( + requestBody?: HandleLogout, + ): Promise<(Logout | InvalidCredentialsError | UserNotFoundError | UsernameOrEmailNeededError | PasswordNeededError | InvalidCredentialsError)> { + const result = await __request({ + method: 'POST', + path: `/api/auth/logout`, + body: requestBody, + }); + return result.body; + } + + /** + * Refresh + * refresh a access token + * @param requestBody RefreshAuth + * @result any + * @throws ApiError + */ + public static async authControllerRefresh( + requestBody?: RefreshAuth, + ): Promise<(Auth | JwtNotProvidedError | IllegalJWTError | UserNotFoundError | RefreshTokenCountInvalidError)> { + const result = await __request({ + method: 'POST', + path: `/api/auth/refresh`, + body: requestBody, + }); + return result.body; + } + +} \ No newline at end of file diff --git a/dist/services/RunnerOrganisationService.ts b/dist/services/RunnerOrganisationService.ts new file mode 100644 index 0000000..8ffe98d --- /dev/null +++ b/dist/services/RunnerOrganisationService.ts @@ -0,0 +1,104 @@ +/* istanbul ignore file */ +/* tslint:disable */ +/* eslint-disable */ +import type { CreateRunnerOrganisation } from '../models/CreateRunnerOrganisation'; +import type { ResponseEmpty } from '../models/ResponseEmpty'; +import type { ResponseRunnerOrganisation } from '../models/ResponseRunnerOrganisation'; +import type { RunnerOrganisation } from '../models/RunnerOrganisation'; +import { request as __request } from '../core/request'; + +export class RunnerOrganisationService { + + /** + * Get all + * Lists all runnerOrganisations. + * @result ResponseRunnerOrganisation + * @throws ApiError + */ + public static async runnerOrganisationControllerGetAll(): Promise> { + const result = await __request({ + method: 'GET', + path: `/api/organisations`, + }); + return result.body; + } + + /** + * Post + * Create a new runnerOrganisation object (id will be generated automagicly). + * @param requestBody CreateRunnerOrganisation + * @result ResponseRunnerOrganisation + * @throws ApiError + */ + public static async runnerOrganisationControllerPost( + requestBody?: CreateRunnerOrganisation, + ): Promise { + const result = await __request({ + method: 'POST', + path: `/api/organisations`, + body: requestBody, + }); + return result.body; + } + + /** + * Get one + * Returns a runnerOrganisation of a specified id (if it exists) + * @param id + * @result ResponseRunnerOrganisation + * @throws ApiError + */ + public static async runnerOrganisationControllerGetOne( + id: number, + ): Promise { + const result = await __request({ + method: 'GET', + path: `/api/organisations/${id}`, + }); + return result.body; + } + + /** + * Put + * Update a runnerOrganisation object (id can't be changed). + * @param id + * @param requestBody RunnerOrganisation + * @result ResponseRunnerOrganisation + * @throws ApiError + */ + public static async runnerOrganisationControllerPut( + id: number, + requestBody?: RunnerOrganisation, + ): Promise { + const result = await __request({ + method: 'PUT', + path: `/api/organisations/${id}`, + body: requestBody, + }); + return result.body; + } + + /** + * Remove + * Delete a specified runnerOrganisation (if it exists). + * @param id + * @param force + * @result ResponseRunnerOrganisation + * @result ResponseEmpty + * @throws ApiError + */ + public static async runnerOrganisationControllerRemove( + id: number, + force?: boolean, + ): Promise { + const result = await __request({ + method: 'DELETE', + path: `/api/organisations/${id}`, + query: { + 'force': force, + }, + }); + return result.body; + } + +} \ No newline at end of file diff --git a/dist/services/RunnerService.ts b/dist/services/RunnerService.ts new file mode 100644 index 0000000..7e9ab9a --- /dev/null +++ b/dist/services/RunnerService.ts @@ -0,0 +1,106 @@ +/* istanbul ignore file */ +/* tslint:disable */ +/* eslint-disable */ +import type { CreateRunner } from '../models/CreateRunner'; +import type { ResponseEmpty } from '../models/ResponseEmpty'; +import type { ResponseRunner } from '../models/ResponseRunner'; +import type { RunnerGroupNeededError } from '../models/RunnerGroupNeededError'; +import type { RunnerGroupNotFoundError } from '../models/RunnerGroupNotFoundError'; +import type { UpdateRunner } from '../models/UpdateRunner'; +import { request as __request } from '../core/request'; + +export class RunnerService { + + /** + * Get all + * Lists all runners. + * @result ResponseRunner + * @throws ApiError + */ + public static async runnerControllerGetAll(): Promise> { + const result = await __request({ + method: 'GET', + path: `/api/runners`, + }); + return result.body; + } + + /** + * Post + * Create a new runner object (id will be generated automagicly). + * @param requestBody CreateRunner + * @result any + * @throws ApiError + */ + public static async runnerControllerPost( + requestBody?: CreateRunner, + ): Promise<(ResponseRunner | RunnerGroupNeededError | RunnerGroupNotFoundError)> { + const result = await __request({ + method: 'POST', + path: `/api/runners`, + body: requestBody, + }); + return result.body; + } + + /** + * Get one + * Returns a runner of a specified id (if it exists) + * @param id + * @result ResponseRunner + * @throws ApiError + */ + public static async runnerControllerGetOne( + id: number, + ): Promise { + const result = await __request({ + method: 'GET', + path: `/api/runners/${id}`, + }); + return result.body; + } + + /** + * Put + * Update a runner object (id can't be changed). + * @param id + * @param requestBody UpdateRunner + * @result ResponseRunner + * @throws ApiError + */ + public static async runnerControllerPut( + id: number, + requestBody?: UpdateRunner, + ): Promise { + const result = await __request({ + method: 'PUT', + path: `/api/runners/${id}`, + body: requestBody, + }); + return result.body; + } + + /** + * Remove + * Delete a specified runner (if it exists). + * @param id + * @param force + * @result ResponseRunner + * @result ResponseEmpty + * @throws ApiError + */ + public static async runnerControllerRemove( + id: number, + force?: boolean, + ): Promise { + const result = await __request({ + method: 'DELETE', + path: `/api/runners/${id}`, + query: { + 'force': force, + }, + }); + return result.body; + } + +} \ No newline at end of file diff --git a/dist/services/RunnerTeamService.ts b/dist/services/RunnerTeamService.ts new file mode 100644 index 0000000..a54c255 --- /dev/null +++ b/dist/services/RunnerTeamService.ts @@ -0,0 +1,104 @@ +/* istanbul ignore file */ +/* tslint:disable */ +/* eslint-disable */ +import type { CreateRunnerTeam } from '../models/CreateRunnerTeam'; +import type { ResponseEmpty } from '../models/ResponseEmpty'; +import type { ResponseRunnerTeam } from '../models/ResponseRunnerTeam'; +import type { UpdateRunnerTeam } from '../models/UpdateRunnerTeam'; +import { request as __request } from '../core/request'; + +export class RunnerTeamService { + + /** + * Get all + * Lists all runnerTeams. + * @result ResponseRunnerTeam + * @throws ApiError + */ + public static async runnerTeamControllerGetAll(): Promise> { + const result = await __request({ + method: 'GET', + path: `/api/teams`, + }); + return result.body; + } + + /** + * Post + * Create a new runnerTeam object (id will be generated automagicly). + * @param requestBody CreateRunnerTeam + * @result ResponseRunnerTeam + * @throws ApiError + */ + public static async runnerTeamControllerPost( + requestBody?: CreateRunnerTeam, + ): Promise { + const result = await __request({ + method: 'POST', + path: `/api/teams`, + body: requestBody, + }); + return result.body; + } + + /** + * Get one + * Returns a runnerTeam of a specified id (if it exists) + * @param id + * @result ResponseRunnerTeam + * @throws ApiError + */ + public static async runnerTeamControllerGetOne( + id: number, + ): Promise { + const result = await __request({ + method: 'GET', + path: `/api/teams/${id}`, + }); + return result.body; + } + + /** + * Put + * Update a runnerTeam object (id can't be changed). + * @param id + * @param requestBody UpdateRunnerTeam + * @result ResponseRunnerTeam + * @throws ApiError + */ + public static async runnerTeamControllerPut( + id: number, + requestBody?: UpdateRunnerTeam, + ): Promise { + const result = await __request({ + method: 'PUT', + path: `/api/teams/${id}`, + body: requestBody, + }); + return result.body; + } + + /** + * Remove + * Delete a specified runnerTeam (if it exists). + * @param id + * @param force + * @result ResponseRunnerTeam + * @result ResponseEmpty + * @throws ApiError + */ + public static async runnerTeamControllerRemove( + id: number, + force?: boolean, + ): Promise { + const result = await __request({ + method: 'DELETE', + path: `/api/teams/${id}`, + query: { + 'force': force, + }, + }); + return result.body; + } + +} \ No newline at end of file diff --git a/dist/services/TrackService.ts b/dist/services/TrackService.ts new file mode 100644 index 0000000..3bae73b --- /dev/null +++ b/dist/services/TrackService.ts @@ -0,0 +1,99 @@ +/* istanbul ignore file */ +/* tslint:disable */ +/* eslint-disable */ +import type { CreateTrack } from '../models/CreateTrack'; +import type { ResponseEmpty } from '../models/ResponseEmpty'; +import type { ResponseTrack } from '../models/ResponseTrack'; +import type { Track } from '../models/Track'; +import { request as __request } from '../core/request'; + +export class TrackService { + + /** + * Get all + * Lists all tracks. + * @result ResponseTrack + * @throws ApiError + */ + public static async trackControllerGetAll(): Promise> { + const result = await __request({ + method: 'GET', + path: `/api/tracks`, + }); + return result.body; + } + + /** + * Post + * Create a new track object (id will be generated automagicly). + * @param requestBody CreateTrack + * @result ResponseTrack + * @throws ApiError + */ + public static async trackControllerPost( + requestBody?: CreateTrack, + ): Promise { + const result = await __request({ + method: 'POST', + path: `/api/tracks`, + body: requestBody, + }); + return result.body; + } + + /** + * Get one + * Returns a track of a specified id (if it exists) + * @param id + * @result ResponseTrack + * @throws ApiError + */ + public static async trackControllerGetOne( + id: number, + ): Promise { + const result = await __request({ + method: 'GET', + path: `/api/tracks/${id}`, + }); + return result.body; + } + + /** + * Put + * Update a track object (id can't be changed). + * @param id + * @param requestBody Track + * @result ResponseTrack + * @throws ApiError + */ + public static async trackControllerPut( + id: number, + requestBody?: Track, + ): Promise { + const result = await __request({ + method: 'PUT', + path: `/api/tracks/${id}`, + body: requestBody, + }); + return result.body; + } + + /** + * Remove + * Delete a specified track (if it exists). + * @param id + * @result ResponseTrack + * @result ResponseEmpty + * @throws ApiError + */ + public static async trackControllerRemove( + id: number, + ): Promise { + const result = await __request({ + method: 'DELETE', + path: `/api/tracks/${id}`, + }); + return result.body; + } + +} \ No newline at end of file diff --git a/dist/services/UserGroupService.ts b/dist/services/UserGroupService.ts new file mode 100644 index 0000000..e86704d --- /dev/null +++ b/dist/services/UserGroupService.ts @@ -0,0 +1,99 @@ +/* istanbul ignore file */ +/* tslint:disable */ +/* eslint-disable */ +import type { CreateUserGroup } from '../models/CreateUserGroup'; +import type { ResponseEmpty } from '../models/ResponseEmpty'; +import type { UserGroup } from '../models/UserGroup'; +import type { UserGroupNotFoundError } from '../models/UserGroupNotFoundError'; +import { request as __request } from '../core/request'; + +export class UserGroupService { + + /** + * Get all + * Lists all usergroups. + * @result UserGroup + * @throws ApiError + */ + public static async userGroupControllerGetAll(): Promise> { + const result = await __request({ + method: 'GET', + path: `/api/usergroups`, + }); + return result.body; + } + + /** + * Post + * Create a new usergroup object (id will be generated automagicly). + * @param requestBody CreateUserGroup + * @result any + * @throws ApiError + */ + public static async userGroupControllerPost( + requestBody?: CreateUserGroup, + ): Promise<(UserGroup | UserGroupNotFoundError)> { + const result = await __request({ + method: 'POST', + path: `/api/usergroups`, + body: requestBody, + }); + return result.body; + } + + /** + * Get one + * Returns a usergroup of a specified id (if it exists) + * @param id + * @result UserGroup + * @throws ApiError + */ + public static async userGroupControllerGetOne( + id: number, + ): Promise { + const result = await __request({ + method: 'GET', + path: `/api/usergroups/${id}`, + }); + return result.body; + } + + /** + * Put + * Update a usergroup object (id can't be changed). + * @param id + * @param requestBody UserGroup + * @result UserGroup + * @throws ApiError + */ + public static async userGroupControllerPut( + id: number, + requestBody?: UserGroup, + ): Promise { + const result = await __request({ + method: 'PUT', + path: `/api/usergroups/${id}`, + body: requestBody, + }); + return result.body; + } + + /** + * Remove + * Delete a specified usergroup (if it exists). + * @param id + * @result UserGroup + * @result ResponseEmpty + * @throws ApiError + */ + public static async userGroupControllerRemove( + id: number, + ): Promise { + const result = await __request({ + method: 'DELETE', + path: `/api/usergroups/${id}`, + }); + return result.body; + } + +} \ No newline at end of file diff --git a/dist/services/UserService.ts b/dist/services/UserService.ts new file mode 100644 index 0000000..14c1b02 --- /dev/null +++ b/dist/services/UserService.ts @@ -0,0 +1,99 @@ +/* istanbul ignore file */ +/* tslint:disable */ +/* eslint-disable */ +import type { CreateUser } from '../models/CreateUser'; +import type { ResponseEmpty } from '../models/ResponseEmpty'; +import type { User } from '../models/User'; +import type { UserGroupNotFoundError } from '../models/UserGroupNotFoundError'; +import { request as __request } from '../core/request'; + +export class UserService { + + /** + * Get all + * Lists all users. + * @result User + * @throws ApiError + */ + public static async userControllerGetAll(): Promise> { + const result = await __request({ + method: 'GET', + path: `/api/users`, + }); + return result.body; + } + + /** + * Post + * Create a new user object (id will be generated automagicly). + * @param requestBody CreateUser + * @result any + * @throws ApiError + */ + public static async userControllerPost( + requestBody?: CreateUser, + ): Promise<(User | UserGroupNotFoundError)> { + const result = await __request({ + method: 'POST', + path: `/api/users`, + body: requestBody, + }); + return result.body; + } + + /** + * Get one + * Returns a user of a specified id (if it exists) + * @param id + * @result User + * @throws ApiError + */ + public static async userControllerGetOne( + id: number, + ): Promise { + const result = await __request({ + method: 'GET', + path: `/api/users/${id}`, + }); + return result.body; + } + + /** + * Put + * Update a user object (id can't be changed). + * @param id + * @param requestBody User + * @result User + * @throws ApiError + */ + public static async userControllerPut( + id: number, + requestBody?: User, + ): Promise { + const result = await __request({ + method: 'PUT', + path: `/api/users/${id}`, + body: requestBody, + }); + return result.body; + } + + /** + * Remove + * Delete a specified runner (if it exists). + * @param id + * @result User + * @result ResponseEmpty + * @throws ApiError + */ + public static async userControllerRemove( + id: number, + ): Promise { + const result = await __request({ + method: 'DELETE', + path: `/api/users/${id}`, + }); + return result.body; + } + +} \ No newline at end of file diff --git a/openapi.json b/openapi.json new file mode 100644 index 0000000..2052161 --- /dev/null +++ b/openapi.json @@ -0,0 +1 @@ +{"components":{"schemas":{"ExpiredJWTError":{"properties":{"name":{"type":"string"},"message":{"type":"string"}},"type":"object","required":["name","message"]},"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"]},"UserGroup":{"properties":{"id":{"type":"integer"},"name":{"type":"string","minLength":1},"description":{"type":"string"}},"type":"object","required":["id","name"]},"Permission":{"properties":{"id":{"type":"integer"},"target":{"type":"string","minLength":1},"action":{"type":"string","minLength":1}},"type":"object","required":["id","target","action"]},"UserAction":{"properties":{"id":{"type":"integer"},"target":{"type":"string","minLength":1},"action":{"type":"string","minLength":1},"changed":{"type":"string"}},"type":"object","required":["id","target","action"]},"User":{"properties":{"id":{"type":"integer"},"uuid":{"format":"uuid","type":"string"},"email":{"format":"email","type":"string"},"phone":{"type":"string"},"username":{"type":"string"},"firstname":{"minLength":1,"type":"string"},"middlename":{"type":"string"},"lastname":{"minLength":1,"type":"string"},"password":{"minLength":1,"type":"string"},"permissions":{},"groups":{},"enabled":{"type":"boolean"},"refreshTokenCount":{"type":"integer"},"profilePic":{"type":"string"},"actions":{}},"type":"object","required":["id","uuid","email","username","firstname","lastname","password","enabled","refreshTokenCount"]},"UserIdsNotMatchingError":{"properties":{"name":{"type":"string"},"message":{"type":"string"}},"type":"object","required":["name","message"]},"Auth":{"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"},"password":{"type":"string"},"email":{"type":"string","format":"email"}},"type":"object","required":["password"]},"Logout":{"properties":{"timestamp":{"type":"string"}},"type":"object","required":["timestamp"]},"HandleLogout":{"properties":{"token":{"type":"string"}},"type":"object"},"RefreshAuth":{"properties":{"token":{"type":"string"}},"type":"object"},"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"]},"RunnerGroupNotFoundError":{"properties":{"name":{"type":"string"},"message":{"type":"string"}},"type":"object","required":["name","message"]},"RunnerOrganisationNotFoundError":{"properties":{"name":{"type":"string"},"message":{"type":"string"}},"type":"object","required":["name","message"]},"RunnerOrganisationIdsNotMatchingError":{"properties":{"name":{"type":"string"},"message":{"type":"string"}},"type":"object","required":["name","message"]},"RunnerOrganisationHasRunnersError":{"properties":{"name":{"type":"string"},"message":{"type":"string"}},"type":"object","required":["name","message"]},"RunnerOrganisationHasTeamsError":{"properties":{"name":{"type":"string"},"message":{"type":"string"}},"type":"object","required":["name","message"]},"RunnerOrganisationWrongTypeError":{"properties":{"name":{"type":"string"},"message":{"type":"string"}},"type":"object","required":["name","message"]},"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"]},"GroupContact":{"properties":{"id":{"type":"integer"},"firstname":{"type":"string","minLength":1},"middlename":{"type":"string"},"lastname":{"type":"string","minLength":1},"address":{},"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":{}},"type":"object","required":["id","name"]},"RunnerTeam":{"properties":{"parentGroup":{"minLength":1,"type":"string"},"id":{"type":"integer"},"name":{"type":"string","minLength":1},"contact":{}},"type":"object","required":["parentGroup","id","name"]},"RunnerOrganisation":{"properties":{"address":{},"id":{"type":"integer"},"name":{"type":"string","minLength":1},"contact":{}},"type":"object","required":["id","name"]},"Address":{"properties":{"id":{"type":"integer"},"description":{"type":"string"},"address1":{"minLength":1,"type":"string"},"address2":{"type":"string"},"postalcode":{"type":"string","minLength":1},"city":{"minLength":1,"type":"string"},"country":{"minLength":1,"type":"string"}},"type":"object","required":["id","address1","postalcode","city","country"]},"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"]},"Donation":{"properties":{"id":{"type":"integer"},"donor":{"minLength":1,"type":"string"}},"type":"object","required":["id","donor"]},"DistanceDonation":{"properties":{"runner":{"minLength":1,"type":"string"},"amountPerDistance":{"exclusiveMinimum":true,"minimum":0,"type":"integer"},"id":{"type":"integer"},"donor":{"minLength":1,"type":"string"}},"type":"object","required":["runner","amountPerDistance","id","donor"]},"Scan":{"properties":{"id":{"type":"integer"},"runner":{"minLength":1,"type":"string"},"distance":{"exclusiveMinimum":true,"minimum":0,"type":"integer"},"valid":{"type":"boolean"}},"type":"object","required":["id","runner","distance","valid"]},"Track":{"properties":{"id":{"type":"integer"},"name":{"minLength":1,"type":"string"},"distance":{"exclusiveMinimum":true,"minimum":0,"type":"integer"}},"type":"object","required":["id","name","distance"]},"ScanStation":{"properties":{"id":{"type":"integer"},"description":{"type":"string"},"track":{"minLength":1,"type":"string"},"key":{"type":"string","minLength":1},"enabled":{"type":"boolean"}},"type":"object","required":["id","track","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":{"minLength":1,"type":"string","pattern":"d{4}-[01]d-[0-3]dT[0-2]d:[0-5]d:[0-5]d.d+Z?"},"id":{"type":"integer"},"runner":{"minLength":1,"type":"string"},"valid":{"type":"boolean"}},"type":"object","required":["track","card","station","distance","timestamp","id","runner","valid"]},"RunnerCard":{"properties":{"id":{"type":"integer"},"runner":{},"code":{"minLength":1,"type":"string"},"enabled":{"type":"boolean"}},"type":"object","required":["id","code","enabled"]},"Runner":{"properties":{"group":{"minLength":1,"type":"string"},"distance":{"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","id","firstname","lastname"]},"AddressWrongTypeError":{"properties":{"name":{"type":"string"},"message":{"type":"string"}},"type":"object","required":["name","message"]},"AddressNotFoundError":{"properties":{"name":{"type":"string"},"message":{"type":"string"}},"type":"object","required":["name","message"]},"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":"integer"}},"type":"object","required":["firstname","lastname"]},"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":"integer"}},"type":"object","required":["group","firstname","lastname"]},"UpdateRunner":{"properties":{"id":{"type":"integer"},"group":{"$ref":"#/components/schemas/RunnerGroup"},"firstname":{"minLength":1,"type":"string"},"middlename":{"type":"string"},"lastname":{"minLength":1,"type":"string"},"phone":{"type":"string"},"email":{"format":"email","type":"string"},"address":{"type":"integer"}},"type":"object","required":["id","group","firstname","lastname"]},"ResponseEmpty":{"properties":{"response":{"type":"string"}},"type":"object","required":["response"]},"ResponseParticipant":{"properties":{"id":{"type":"integer"},"firstname":{"type":"string"},"middlename":{"type":"string"},"lastname":{"type":"string"},"phone":{"type":"string"},"email":{"type":"string"}},"type":"object","required":["id","firstname","middlename","lastname","phone","email"]},"ResponseRunner":{"properties":{"distance":{"type":"integer"},"group":{"$ref":"#/components/schemas/RunnerGroup"},"id":{"type":"integer"},"firstname":{"type":"string"},"middlename":{"type":"string"},"lastname":{"type":"string"},"phone":{"type":"string"},"email":{"type":"string"}},"type":"object","required":["distance","group","id","firstname","middlename","lastname","phone","email"]},"GroupContactWrongTypeError":{"properties":{"name":{"type":"string"},"message":{"type":"string"}},"type":"object","required":["name","message"]},"GroupContactNotFoundError":{"properties":{"name":{"type":"string"},"message":{"type":"string"}},"type":"object","required":["name","message"]},"CreateRunnerGroup":{"properties":{"name":{"type":"string","minLength":1},"contact":{"type":"integer"}},"type":"object","required":["name"]},"CreateRunnerOrganisation":{"properties":{"address":{"type":"integer"},"name":{"type":"string","minLength":1},"contact":{"type":"integer"}},"type":"object","required":["name"]},"ResponseRunnerGroup":{"properties":{"id":{"minLength":1,"type":"integer"},"name":{"minLength":1,"type":"string"},"contact":{"$ref":"#/components/schemas/GroupContact"}},"type":"object","required":["id","name"]},"ResponseRunnerOrganisation":{"properties":{"address":{"minLength":1,"type":"string","$ref":"#/components/schemas/Address"},"teams":{"items":{},"type":"array"},"id":{"minLength":1,"type":"integer"},"name":{"minLength":1,"type":"string"},"contact":{"$ref":"#/components/schemas/GroupContact"}},"type":"object","required":["address","teams","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":{"minLength":1,"type":"string","$ref":"#/components/schemas/RunnerOrganisation"},"name":{"type":"string","minLength":1},"contact":{"type":"integer"}},"type":"object","required":["id","parentGroup","name"]},"ResponseRunnerTeam":{"properties":{"parentGroup":{"minLength":1,"type":"string","$ref":"#/components/schemas/RunnerOrganisation"},"id":{"minLength":1,"type":"integer"},"name":{"minLength":1,"type":"string"},"contact":{"$ref":"#/components/schemas/GroupContact"}},"type":"object","required":["parentGroup","id","name"]},"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"]},"CreateTrack":{"properties":{"name":{"minLength":1,"type":"string"},"distance":{"exclusiveMinimum":true,"minimum":0,"type":"integer"}},"type":"object","required":["name","distance"]},"ResponseTrack":{"properties":{"id":{"type":"integer"},"name":{"type":"string"},"distance":{"type":"integer"}},"type":"object","required":["id","name","distance"]},"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"]},"CreateUser":{"properties":{"firstname":{"type":"string"},"middlename":{"type":"string"},"lastname":{"type":"string"},"username":{"type":"string"},"email":{"type":"string","format":"email"},"phone":{"type":"string"},"password":{"type":"string"},"groupId":{}},"type":"object","required":["firstname","lastname","password"]},"CreateUserGroup":{"properties":{"name":{"type":"string"},"description":{"type":"string"}},"type":"object","required":["name"]}},"securitySchemes":{"AuthToken":{"type":"http","scheme":"bearer","bearerFormat":"JWT"}}},"info":{"title":"LfK! Backend API","version":"1.0.0","description":"The the backend API for the LfK! runner system."},"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/Auth"},{"$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":"Create a new access token object"}},"/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":"Create a new access token object"}},"/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/Auth"},{"$ref":"#/components/schemas/JwtNotProvidedError"},{"$ref":"#/components/schemas/IllegalJWTError"},{"$ref":"#/components/schemas/UserNotFoundError"},{"$ref":"#/components/schemas/RefreshTokenCountInvalidError"}]}}},"description":""}},"summary":"Refresh","tags":["Auth"],"description":"refresh a access token"}},"/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"],"description":"Lists all runners."},"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"],"description":"Create a new runner object (id will be generated automagicly)."}},"/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"],"description":"Returns a runner of a specified id (if it exists)"},"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"],"description":"Update a runner object (id 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":""}},"summary":"Remove","tags":["Runner"],"description":"Delete a specified runner (if it exists)."}},"/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"],"description":"Lists all runnerTeams."},"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"],"description":"Create a new runnerTeam object (id will be generated automagicly)."}},"/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"],"description":"Returns a runnerTeam of a specified id (if it exists)"},"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"],"description":"Update a runnerTeam object (id 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"],"description":"Delete a specified runnerTeam (if it exists)."}},"/api/organisations":{"get":{"operationId":"RunnerOrganisationController.getAll","responses":{"200":{"content":{"application/json":{"schema":{"items":{"$ref":"#/components/schemas/ResponseRunnerOrganisation"},"type":"array"}}},"description":""}},"summary":"Get all","tags":["Runner Organisation"],"description":"Lists all runnerOrganisations."},"post":{"operationId":"RunnerOrganisationController.post","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/CreateRunnerOrganisation"}}},"description":"CreateRunnerOrganisation","required":false},"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ResponseRunnerOrganisation"}}},"description":""}},"summary":"Post","tags":["Runner Organisation"],"description":"Create a new runnerOrganisation object (id will be generated automagicly)."}},"/api/organisations/{id}":{"get":{"operationId":"RunnerOrganisationController.getOne","parameters":[{"in":"path","name":"id","required":true,"schema":{"type":"number"}}],"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ResponseRunnerOrganisation"}}},"description":""},"404":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/RunnerOrganisationNotFoundError"}}},"description":""}},"summary":"Get one","tags":["Runner Organisation"],"description":"Returns a runnerOrganisation of a specified id (if it exists)"},"put":{"operationId":"RunnerOrganisationController.put","parameters":[{"in":"path","name":"id","required":true,"schema":{"type":"number"}}],"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/RunnerOrganisation"}}},"description":"RunnerOrganisation","required":false},"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ResponseRunnerOrganisation"}}},"description":""},"404":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/RunnerOrganisationNotFoundError"}}},"description":""},"406":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/RunnerOrganisationIdsNotMatchingError"}}},"description":""}},"summary":"Put","tags":["Runner Organisation"],"description":"Update a runnerOrganisation object (id can't be changed)."},"delete":{"operationId":"RunnerOrganisationController.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/ResponseRunnerOrganisation"}}},"description":""},"204":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ResponseEmpty"}}},"description":""},"406":{"content":{"application/json":{"schema":{"oneOf":[{"$ref":"#/components/schemas/RunnerOrganisationHasTeamsError"},{"$ref":"#/components/schemas/RunnerOrganisationHasRunnersError"}]}}},"description":""}},"summary":"Remove","tags":["Runner Organisation"],"description":"Delete a specified runnerOrganisation (if it exists)."}},"/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"],"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":""}},"summary":"Post","tags":["Track"],"description":"Create a new track object (id will be generated automagicly)."}},"/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"],"description":"Returns a track of a specified id (if it exists)"},"put":{"operationId":"TrackController.put","parameters":[{"in":"path","name":"id","required":true,"schema":{"type":"number"}}],"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Track"}}},"description":"Track","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":{"$ref":"#/components/schemas/TrackIdsNotMatchingError"}}},"description":""}},"summary":"Put","tags":["Track"],"description":"Update a track object (id can't be changed)."},"delete":{"operationId":"TrackController.remove","parameters":[{"in":"path","name":"id","required":true,"schema":{"type":"number"}}],"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"],"description":"Delete a specified track (if it exists)."}},"/api/users":{"get":{"operationId":"UserController.getAll","responses":{"200":{"content":{"application/json":{"schema":{"items":{"$ref":"#/components/schemas/User"},"type":"array"}}},"description":""}},"summary":"Get all","tags":["User"],"description":"Lists all users."},"post":{"operationId":"UserController.post","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/CreateUser"}}},"description":"CreateUser","required":false},"responses":{"200":{"content":{"application/json":{"schema":{"oneOf":[{"$ref":"#/components/schemas/User"},{"$ref":"#/components/schemas/UserGroupNotFoundError"}]}}},"description":""}},"summary":"Post","tags":["User"],"description":"Create a new user object (id will be generated automagicly)."}},"/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/User"}}},"description":""},"404":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/UserNotFoundError"}}},"description":""}},"summary":"Get one","tags":["User"],"description":"Returns a user of a specified id (if it exists)"},"put":{"operationId":"UserController.put","parameters":[{"in":"path","name":"id","required":true,"schema":{"type":"number"}}],"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/User"}}},"description":"User","required":false},"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/User"}}},"description":""},"404":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/UserNotFoundError"}}},"description":""},"406":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/UserIdsNotMatchingError"}}},"description":""}},"summary":"Put","tags":["User"],"description":"Update a user object (id can't be changed)."},"delete":{"operationId":"UserController.remove","parameters":[{"in":"path","name":"id","required":true,"schema":{"type":"number"}}],"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/User"}}},"description":""},"204":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ResponseEmpty"}}},"description":""}},"summary":"Remove","tags":["User"],"description":"Delete a specified runner (if it exists)."}},"/api/usergroups":{"get":{"operationId":"UserGroupController.getAll","responses":{"200":{"content":{"application/json":{"schema":{"items":{"$ref":"#/components/schemas/UserGroup"},"type":"array"}}},"description":""}},"summary":"Get all","tags":["User Group"],"description":"Lists all usergroups."},"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"],"description":"Create a new usergroup object (id will be generated automagicly)."}},"/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/UserGroup"}}},"description":""},"404":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/UserGroupNotFoundError"}}},"description":""}},"summary":"Get one","tags":["User Group"],"description":"Returns a usergroup of a specified id (if it exists)"},"put":{"operationId":"UserGroupController.put","parameters":[{"in":"path","name":"id","required":true,"schema":{"type":"number"}}],"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/UserGroup"}}},"description":"UserGroup","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"],"description":"Update a usergroup object (id can't be changed)."},"delete":{"operationId":"UserGroupController.remove","parameters":[{"in":"path","name":"id","required":true,"schema":{"type":"number"}}],"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/UserGroup"}}},"description":""},"204":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ResponseEmpty"}}},"description":""}},"summary":"Remove","tags":["User Group"],"description":"Delete a specified usergroup (if it exists)."}}}} \ No newline at end of file