UNPKG

@osu-tournament-rating/otr-api-client

Version:
1,245 lines (1,244 loc) 213 kB
"use strict"; //---------------------- // <auto-generated> // Generated using the NSwag toolchain v14.4.0.0 (NJsonSchema v11.3.2.0 (Newtonsoft.Json v13.0.0.0)) (http://NSwag.org) // </auto-generated> //---------------------- var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) { function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); } return new (P || (P = Promise))(function (resolve, reject) { function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } } function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } } function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); } step((generator = generator.apply(thisArg, _arguments || [])).next()); }); }; var __importDefault = (this && this.__importDefault) || function (mod) { return (mod && mod.__esModule) ? mod : { "default": mod }; }; Object.defineProperty(exports, "__esModule", { value: true }); exports.defaults = exports.OtrApiError = exports.OtrApiResponse = exports.VerificationStatus = exports.TournamentRejectionReason = exports.TournamentQuerySortType = exports.TeamType = exports.Team = exports.ScoringType = exports.ScoreRejectionReason = exports.ScoreGrade = exports.Ruleset = exports.Roles = exports.RatingAdjustmentType = exports.OperationType = exports.Mods = exports.MessagePriority = exports.MatchWarningFlags = exports.MatchRejectionReason = exports.MatchQuerySortType = exports.GameWarningFlags = exports.GameRejectionReason = exports.FilteringFailReason = exports.BeatmapRankedStatus = exports.AuthorizationPolicies = exports.AuditEntityType = exports.AuditActionType = exports.AdminNoteRouteTarget = exports.UsersWrapper = exports.TournamentsWrapper = exports.SearchWrapper = exports.PlayersWrapper = exports.PlatformStatsWrapper = exports.MeWrapper = exports.MatchesWrapper = exports.LeaderboardsWrapper = exports.GameScoresWrapper = exports.GamesWrapper = exports.FilteringWrapper = exports.ClientsWrapper = exports.BeatmapsWrapper = exports.AuthWrapper = exports.AuditWrapper = exports.AdminNotesWrapper = exports.OtrApiWrapperBase = void 0; const axios_1 = __importDefault(require("axios")); class OtrApiWrapperBase { constructor(configuration) { configuration !== null && configuration !== void 0 ? configuration : (configuration = exports.defaults); this.configuration = configuration; this.configuration.clientConfiguration = Object.assign(Object.assign(Object.assign({}, defaultAxiosClientConfiguration), this.configuration.clientConfiguration), { withCredentials: true }); } getBaseUrl(..._) { return this.configuration.baseUrl; } /** * Exposes the underlying axios client for configuration */ configureClient(configure) { return __awaiter(this, void 0, void 0, function* () { // @ts-expect-error return yield configure(this.instance); }); } } exports.OtrApiWrapperBase = OtrApiWrapperBase; class AdminNotesWrapper extends OtrApiWrapperBase { constructor(configuration) { super(configuration); this.jsonParseReviver = undefined; this.instance = axios_1.default.create(this.configuration.clientConfiguration); this.baseUrl = this.getBaseUrl(""); if (this.configuration.postConfigureClientMethod) { this.configuration.postConfigureClientMethod(this.instance); } } /** * Create an admin note for an entity * * Requires Authorization: * * Claim(s): admin * @param params Request parameters (see {@link AdminNotesCreateNoteRequestParams}) * @return Returns the created admin note */ createNote(params, cancelToken) { const { entityId, entity, body } = params; let url_ = this.baseUrl + "/api/v1/{entity}/{entityId}/notes"; if (entityId === undefined || entityId === null) throw new Error("The parameter 'entityId' must be defined."); url_ = url_.replace("{entityId}", encodeURIComponent("" + entityId)); if (entity === undefined || entity === null) throw new Error("The parameter 'entity' must be defined."); url_ = url_.replace("{entity}", encodeURIComponent("" + entity)); url_ = url_.replace(/[?&]$/, ""); const content_ = JSON.stringify(body); let options_ = { data: content_, method: "POST", url: url_, headers: { "Content-Type": "application/json-patch+json", "Accept": "text/plain" }, cancelToken, requiresAuthorization: true }; return this.instance.request(options_).catch((_error) => { if (isAxiosError(_error) && _error.response) { return _error.response; } else { throw _error; } }).then((_response) => { return this.processCreateNote(_response); }); } processCreateNote(response) { const status = response.status; let _headers = {}; if (response.headers && typeof response.headers === "object") { for (const k in response.headers) { if (response.headers.hasOwnProperty(k)) { _headers[k] = response.headers[k]; } } } if (status === 404) { const _responseText = response.data; let result404 = null; let resultData404 = _responseText; result404 = JSON.parse(resultData404); return throwException("An entity matching the given id does not exist", status, _responseText, _headers, result404); } else if (status === 400) { const _responseText = response.data; let result400 = null; let resultData400 = _responseText; result400 = JSON.parse(resultData400); return throwException("The authorized user does not exist", status, _responseText, _headers, result400); } else if (status === 201) { const _responseText = response.data; let result201 = null; let resultData201 = _responseText; result201 = JSON.parse(resultData201); return Promise.resolve(new OtrApiResponse(status, _headers, result201)); } else if (status !== 200 && status !== 204) { const _responseText = response.data; return throwException("An unexpected server error occurred.", status, _responseText, _headers); } return Promise.resolve(new OtrApiResponse(status, _headers, null)); } /** * List admin notes for an entity * * Requires Authorization: * * Policy: ApiKey * @param params Request parameters (see {@link AdminNotesListNotesRequestParams}) * @return Returns all admin notes for the entity */ listNotes(params, cancelToken) { const { entityId, entity } = params; let url_ = this.baseUrl + "/api/v1/{entity}/{entityId}/notes"; if (entityId === undefined || entityId === null) throw new Error("The parameter 'entityId' must be defined."); url_ = url_.replace("{entityId}", encodeURIComponent("" + entityId)); if (entity === undefined || entity === null) throw new Error("The parameter 'entity' must be defined."); url_ = url_.replace("{entity}", encodeURIComponent("" + entity)); url_ = url_.replace(/[?&]$/, ""); let options_ = { method: "GET", url: url_, headers: { "Accept": "text/plain" }, cancelToken, requiresAuthorization: true }; return this.instance.request(options_).catch((_error) => { if (isAxiosError(_error) && _error.response) { return _error.response; } else { throw _error; } }).then((_response) => { return this.processListNotes(_response); }); } processListNotes(response) { const status = response.status; let _headers = {}; if (response.headers && typeof response.headers === "object") { for (const k in response.headers) { if (response.headers.hasOwnProperty(k)) { _headers[k] = response.headers[k]; } } } if (status === 404) { const _responseText = response.data; let result404 = null; let resultData404 = _responseText; result404 = JSON.parse(resultData404); return throwException("An entity matching the given id does not exist", status, _responseText, _headers, result404); } else if (status === 200) { const _responseText = response.data; let result200 = null; let resultData200 = _responseText; result200 = JSON.parse(resultData200); return Promise.resolve(new OtrApiResponse(status, _headers, result200)); } else if (status !== 200 && status !== 204) { const _responseText = response.data; return throwException("An unexpected server error occurred.", status, _responseText, _headers); } return Promise.resolve(new OtrApiResponse(status, _headers, null)); } /** * Update an admin note * * Requires Authorization: * * Claim(s): admin * @param params Request parameters (see {@link AdminNotesUpdateNoteRequestParams}) * @return Returns the updated admin note */ updateNote(params, cancelToken) { const { noteId, entity, body } = params; let url_ = this.baseUrl + "/api/v1/{entity}/notes/{noteId}"; if (noteId === undefined || noteId === null) throw new Error("The parameter 'noteId' must be defined."); url_ = url_.replace("{noteId}", encodeURIComponent("" + noteId)); if (entity === undefined || entity === null) throw new Error("The parameter 'entity' must be defined."); url_ = url_.replace("{entity}", encodeURIComponent("" + entity)); url_ = url_.replace(/[?&]$/, ""); const content_ = JSON.stringify(body); let options_ = { data: content_, method: "PATCH", url: url_, headers: { "Content-Type": "application/json-patch+json", "Accept": "text/plain" }, cancelToken, requiresAuthorization: true }; return this.instance.request(options_).catch((_error) => { if (isAxiosError(_error) && _error.response) { return _error.response; } else { throw _error; } }).then((_response) => { return this.processUpdateNote(_response); }); } processUpdateNote(response) { const status = response.status; let _headers = {}; if (response.headers && typeof response.headers === "object") { for (const k in response.headers) { if (response.headers.hasOwnProperty(k)) { _headers[k] = response.headers[k]; } } } if (status === 404) { const _responseText = response.data; let result404 = null; let resultData404 = _responseText; result404 = JSON.parse(resultData404); return throwException("An admin note matching the given noteId does not exist", status, _responseText, _headers, result404); } else if (status === 403) { const _responseText = response.data; let result403 = null; let resultData403 = _responseText; result403 = JSON.parse(resultData403); return throwException("User is attempting to update a note which they do not own", status, _responseText, _headers, result403); } else if (status === 400) { const _responseText = response.data; let result400 = null; let resultData400 = _responseText; result400 = JSON.parse(resultData400); return throwException("The update was not successful", status, _responseText, _headers, result400); } else if (status === 200) { const _responseText = response.data; let result200 = null; let resultData200 = _responseText; result200 = JSON.parse(resultData200); return Promise.resolve(new OtrApiResponse(status, _headers, result200)); } else if (status !== 200 && status !== 204) { const _responseText = response.data; return throwException("An unexpected server error occurred.", status, _responseText, _headers); } return Promise.resolve(new OtrApiResponse(status, _headers, null)); } /** * Delete an admin note * * Requires Authorization: * * Claim(s): admin * @param params Request parameters (see {@link AdminNotesDeleteNoteRequestParams}) * @return The admin note was deleted */ deleteNote(params, cancelToken) { const { noteId, entity } = params; let url_ = this.baseUrl + "/api/v1/{entity}/notes/{noteId}"; if (noteId === undefined || noteId === null) throw new Error("The parameter 'noteId' must be defined."); url_ = url_.replace("{noteId}", encodeURIComponent("" + noteId)); if (entity === undefined || entity === null) throw new Error("The parameter 'entity' must be defined."); url_ = url_.replace("{entity}", encodeURIComponent("" + entity)); url_ = url_.replace(/[?&]$/, ""); let options_ = { method: "DELETE", url: url_, headers: {}, cancelToken, requiresAuthorization: true }; return this.instance.request(options_).catch((_error) => { if (isAxiosError(_error) && _error.response) { return _error.response; } else { throw _error; } }).then((_response) => { return this.processDeleteNote(_response); }); } processDeleteNote(response) { const status = response.status; let _headers = {}; if (response.headers && typeof response.headers === "object") { for (const k in response.headers) { if (response.headers.hasOwnProperty(k)) { _headers[k] = response.headers[k]; } } } if (status === 404) { const _responseText = response.data; let result404 = null; let resultData404 = _responseText; result404 = JSON.parse(resultData404); return throwException("An admin note matching the given noteId does not exist", status, _responseText, _headers, result404); } else if (status === 403) { const _responseText = response.data; let result403 = null; let resultData403 = _responseText; result403 = JSON.parse(resultData403); return throwException("User is attempting to delete a note which they do not own", status, _responseText, _headers, result403); } else if (status === 400) { const _responseText = response.data; let result400 = null; let resultData400 = _responseText; result400 = JSON.parse(resultData400); return throwException("The deletion was not successful", status, _responseText, _headers, result400); } else if (status === 204) { const _responseText = response.data; return Promise.resolve(new OtrApiResponse(status, _headers, null)); } else if (status !== 200 && status !== 204) { const _responseText = response.data; return throwException("An unexpected server error occurred.", status, _responseText, _headers); } return Promise.resolve(new OtrApiResponse(status, _headers, null)); } } exports.AdminNotesWrapper = AdminNotesWrapper; class AuditWrapper extends OtrApiWrapperBase { constructor(configuration) { super(configuration); this.jsonParseReviver = undefined; this.instance = axios_1.default.create(this.configuration.clientConfiguration); this.baseUrl = this.getBaseUrl(""); if (this.configuration.postConfigureClientMethod) { this.configuration.postConfigureClientMethod(this.instance); } } /** * Get audits for a specific entity * * Requires Authorization: * * Claim(s): admin * @param params Request parameters (see {@link AuditGetEntityAuditsRequestParams}) * @return Returns a list of audits for the specified entity */ getEntityAudits(params, cancelToken) { const { entityType, entityId } = params; let url_ = this.baseUrl + "/api/v1/audit/entity/{entityType}/{entityId}"; if (entityType === undefined || entityType === null) throw new Error("The parameter 'entityType' must be defined."); url_ = url_.replace("{entityType}", encodeURIComponent("" + entityType)); if (entityId === undefined || entityId === null) throw new Error("The parameter 'entityId' must be defined."); url_ = url_.replace("{entityId}", encodeURIComponent("" + entityId)); url_ = url_.replace(/[?&]$/, ""); let options_ = { method: "GET", url: url_, headers: { "Accept": "text/plain" }, cancelToken, requiresAuthorization: true }; return this.instance.request(options_).catch((_error) => { if (isAxiosError(_error) && _error.response) { return _error.response; } else { throw _error; } }).then((_response) => { return this.processGetEntityAudits(_response); }); } processGetEntityAudits(response) { const status = response.status; let _headers = {}; if (response.headers && typeof response.headers === "object") { for (const k in response.headers) { if (response.headers.hasOwnProperty(k)) { _headers[k] = response.headers[k]; } } } if (status === 200) { const _responseText = response.data; let result200 = null; let resultData200 = _responseText; result200 = JSON.parse(resultData200); return Promise.resolve(new OtrApiResponse(status, _headers, result200)); } else if (status !== 200 && status !== 204) { const _responseText = response.data; return throwException("An unexpected server error occurred.", status, _responseText, _headers); } return Promise.resolve(new OtrApiResponse(status, _headers, null)); } /** * Get audits performed by a specific user * * Requires Authorization: * * Claim(s): admin * @param params Request parameters (see {@link AuditGetUserAuditsRequestParams}) * @return Returns a list of audits performed by the specified user */ getUserAudits(params, cancelToken) { const { userId } = params; let url_ = this.baseUrl + "/api/v1/audit/user/{userId}"; if (userId === undefined || userId === null) throw new Error("The parameter 'userId' must be defined."); url_ = url_.replace("{userId}", encodeURIComponent("" + userId)); url_ = url_.replace(/[?&]$/, ""); let options_ = { method: "GET", url: url_, headers: { "Accept": "text/plain" }, cancelToken, requiresAuthorization: true }; return this.instance.request(options_).catch((_error) => { if (isAxiosError(_error) && _error.response) { return _error.response; } else { throw _error; } }).then((_response) => { return this.processGetUserAudits(_response); }); } processGetUserAudits(response) { const status = response.status; let _headers = {}; if (response.headers && typeof response.headers === "object") { for (const k in response.headers) { if (response.headers.hasOwnProperty(k)) { _headers[k] = response.headers[k]; } } } if (status === 200) { const _responseText = response.data; let result200 = null; let resultData200 = _responseText; result200 = JSON.parse(resultData200); return Promise.resolve(new OtrApiResponse(status, _headers, result200)); } else if (status !== 200 && status !== 204) { const _responseText = response.data; return throwException("An unexpected server error occurred.", status, _responseText, _headers); } return Promise.resolve(new OtrApiResponse(status, _headers, null)); } } exports.AuditWrapper = AuditWrapper; class AuthWrapper extends OtrApiWrapperBase { constructor(configuration) { super(configuration); this.jsonParseReviver = undefined; this.instance = axios_1.default.create(this.configuration.clientConfiguration); this.baseUrl = this.getBaseUrl(""); if (this.configuration.postConfigureClientMethod) { this.configuration.postConfigureClientMethod(this.instance); } } /** * Logs in to o!TR * @param params Request parameters (see {@link AuthLoginRequestParams}) * @return OK */ login(params, cancelToken) { const { redirectUri } = params; let url_ = this.baseUrl + "/api/v1/auth/login?"; if (redirectUri === null) throw new Error("The parameter 'redirectUri' cannot be null."); else if (redirectUri !== undefined) url_ += "redirectUri=" + encodeURIComponent("" + redirectUri) + "&"; url_ = url_.replace(/[?&]$/, ""); let options_ = { method: "GET", url: url_, headers: {}, cancelToken, requiresAuthorization: false }; return this.instance.request(options_).catch((_error) => { if (isAxiosError(_error) && _error.response) { return _error.response; } else { throw _error; } }).then((_response) => { return this.processLogin(_response); }); } processLogin(response) { const status = response.status; let _headers = {}; if (response.headers && typeof response.headers === "object") { for (const k in response.headers) { if (response.headers.hasOwnProperty(k)) { _headers[k] = response.headers[k]; } } } if (status === 200) { const _responseText = response.data; return Promise.resolve(new OtrApiResponse(status, _headers, null)); } else if (status !== 200 && status !== 204) { const _responseText = response.data; return throwException("An unexpected server error occurred.", status, _responseText, _headers); } return Promise.resolve(new OtrApiResponse(status, _headers, null)); } /** * Logs out from o!TR * @param params Request parameters (see {@link AuthLogoutRequestParams}) * @return OK */ logout(params, cancelToken) { const { redirectUri } = params; let url_ = this.baseUrl + "/api/v1/auth/logout?"; if (redirectUri === null) throw new Error("The parameter 'redirectUri' cannot be null."); else if (redirectUri !== undefined) url_ += "redirectUri=" + encodeURIComponent("" + redirectUri) + "&"; url_ = url_.replace(/[?&]$/, ""); let options_ = { method: "GET", url: url_, headers: {}, cancelToken, requiresAuthorization: false }; return this.instance.request(options_).catch((_error) => { if (isAxiosError(_error) && _error.response) { return _error.response; } else { throw _error; } }).then((_response) => { return this.processLogout(_response); }); } processLogout(response) { const status = response.status; let _headers = {}; if (response.headers && typeof response.headers === "object") { for (const k in response.headers) { if (response.headers.hasOwnProperty(k)) { _headers[k] = response.headers[k]; } } } if (status === 200) { const _responseText = response.data; return Promise.resolve(new OtrApiResponse(status, _headers, null)); } else if (status !== 200 && status !== 204) { const _responseText = response.data; return throwException("An unexpected server error occurred.", status, _responseText, _headers); } return Promise.resolve(new OtrApiResponse(status, _headers, null)); } /** * Authenticate using client credentials * @param params Request parameters (see {@link AuthAuthenticateClientRequestParams}) * @return Returns client access credentials */ authenticateClient(params, cancelToken) { const { clientId, clientSecret } = params; let url_ = this.baseUrl + "/api/v1/auth/token?"; if (clientId === undefined || clientId === null) throw new Error("The parameter 'clientId' must be defined and cannot be null."); else url_ += "clientId=" + encodeURIComponent("" + clientId) + "&"; if (clientSecret === undefined || clientSecret === null) throw new Error("The parameter 'clientSecret' must be defined and cannot be null."); else url_ += "clientSecret=" + encodeURIComponent("" + clientSecret) + "&"; url_ = url_.replace(/[?&]$/, ""); let options_ = { method: "POST", url: url_, headers: { "Accept": "text/plain" }, cancelToken, requiresAuthorization: false }; return this.instance.request(options_).catch((_error) => { if (isAxiosError(_error) && _error.response) { return _error.response; } else { throw _error; } }).then((_response) => { return this.processAuthenticateClient(_response); }); } processAuthenticateClient(response) { const status = response.status; let _headers = {}; if (response.headers && typeof response.headers === "object") { for (const k in response.headers) { if (response.headers.hasOwnProperty(k)) { _headers[k] = response.headers[k]; } } } if (status === 401) { const _responseText = response.data; let result401 = null; let resultData401 = _responseText; result401 = JSON.parse(resultData401); return throwException("Could not authenticate", status, _responseText, _headers, result401); } else if (status === 200) { const _responseText = response.data; let result200 = null; let resultData200 = _responseText; result200 = JSON.parse(resultData200); return Promise.resolve(new OtrApiResponse(status, _headers, result200)); } else if (status !== 200 && status !== 204) { const _responseText = response.data; return throwException("An unexpected server error occurred.", status, _responseText, _headers); } return Promise.resolve(new OtrApiResponse(status, _headers, null)); } } exports.AuthWrapper = AuthWrapper; class BeatmapsWrapper extends OtrApiWrapperBase { constructor(configuration) { super(configuration); this.jsonParseReviver = undefined; this.instance = axios_1.default.create(this.configuration.clientConfiguration); this.baseUrl = this.getBaseUrl(""); if (this.configuration.postConfigureClientMethod) { this.configuration.postConfigureClientMethod(this.instance); } } /** * List all beatmaps * * Requires Authorization: * * Claim(s): admin * @return Returns all beatmaps */ list(cancelToken) { let url_ = this.baseUrl + "/api/v1/beatmaps"; url_ = url_.replace(/[?&]$/, ""); let options_ = { method: "GET", url: url_, headers: { "Accept": "text/plain" }, cancelToken, requiresAuthorization: true }; return this.instance.request(options_).catch((_error) => { if (isAxiosError(_error) && _error.response) { return _error.response; } else { throw _error; } }).then((_response) => { return this.processList(_response); }); } processList(response) { const status = response.status; let _headers = {}; if (response.headers && typeof response.headers === "object") { for (const k in response.headers) { if (response.headers.hasOwnProperty(k)) { _headers[k] = response.headers[k]; } } } if (status === 200) { const _responseText = response.data; let result200 = null; let resultData200 = _responseText; result200 = JSON.parse(resultData200); return Promise.resolve(new OtrApiResponse(status, _headers, result200)); } else if (status !== 200 && status !== 204) { const _responseText = response.data; return throwException("An unexpected server error occurred.", status, _responseText, _headers); } return Promise.resolve(new OtrApiResponse(status, _headers, null)); } /** * Get a beatmap * * Get a beatmap searching first by id, then by osu! id * * Requires Authorization: * * Claim(s): admin * @param params Request parameters (see {@link BeatmapsGetRequestParams}) * @return Returns a beatmap */ get(params, cancelToken) { const { key } = params; let url_ = this.baseUrl + "/api/v1/beatmaps/{key}"; if (key === undefined || key === null) throw new Error("The parameter 'key' must be defined."); url_ = url_.replace("{key}", encodeURIComponent("" + key)); url_ = url_.replace(/[?&]$/, ""); let options_ = { method: "GET", url: url_, headers: { "Accept": "text/plain" }, cancelToken, requiresAuthorization: true }; return this.instance.request(options_).catch((_error) => { if (isAxiosError(_error) && _error.response) { return _error.response; } else { throw _error; } }).then((_response) => { return this.processGet(_response); }); } processGet(response) { const status = response.status; let _headers = {}; if (response.headers && typeof response.headers === "object") { for (const k in response.headers) { if (response.headers.hasOwnProperty(k)) { _headers[k] = response.headers[k]; } } } if (status === 404) { const _responseText = response.data; let result404 = null; let resultData404 = _responseText; result404 = JSON.parse(resultData404); return throwException("A beatmap matching the given key does not exist", status, _responseText, _headers, result404); } else if (status === 200) { const _responseText = response.data; let result200 = null; let resultData200 = _responseText; result200 = JSON.parse(resultData200); return Promise.resolve(new OtrApiResponse(status, _headers, result200)); } else if (status !== 200 && status !== 204) { const _responseText = response.data; return throwException("An unexpected server error occurred.", status, _responseText, _headers); } return Promise.resolve(new OtrApiResponse(status, _headers, null)); } /** * Enqueues a message to fetch beatmap data from the osu! API * * Requires Authorization: * * Claim(s): admin * @param params Request parameters (see {@link BeatmapsFetchRequestParams}) * @return The fetch request was accepted and queued for processing */ fetch(params, cancelToken) { const { id, priority } = params; let url_ = this.baseUrl + "/api/v1/beatmaps/{id}/fetch?"; if (id === undefined || id === null) throw new Error("The parameter 'id' must be defined."); url_ = url_.replace("{id}", encodeURIComponent("" + id)); if (priority === null) throw new Error("The parameter 'priority' cannot be null."); else if (priority !== undefined) url_ += "priority=" + encodeURIComponent("" + priority) + "&"; url_ = url_.replace(/[?&]$/, ""); let options_ = { method: "POST", url: url_, headers: { "Accept": "text/plain" }, cancelToken, requiresAuthorization: true }; return this.instance.request(options_).catch((_error) => { if (isAxiosError(_error) && _error.response) { return _error.response; } else { throw _error; } }).then((_response) => { return this.processFetch(_response); }); } processFetch(response) { const status = response.status; let _headers = {}; if (response.headers && typeof response.headers === "object") { for (const k in response.headers) { if (response.headers.hasOwnProperty(k)) { _headers[k] = response.headers[k]; } } } if (status === 202) { const _responseText = response.data; let result202 = null; let resultData202 = _responseText; result202 = JSON.parse(resultData202); return Promise.resolve(new OtrApiResponse(status, _headers, result202)); } else if (status === 400) { const _responseText = response.data; let result400 = null; let resultData400 = _responseText; result400 = JSON.parse(resultData400); return throwException("The provided beatmap ID is negative", status, _responseText, _headers, result400); } else if (status !== 200 && status !== 204) { const _responseText = response.data; return throwException("An unexpected server error occurred.", status, _responseText, _headers); } return Promise.resolve(new OtrApiResponse(status, _headers, null)); } } exports.BeatmapsWrapper = BeatmapsWrapper; class ClientsWrapper extends OtrApiWrapperBase { constructor(configuration) { super(configuration); this.jsonParseReviver = undefined; this.instance = axios_1.default.create(this.configuration.clientConfiguration); this.baseUrl = this.getBaseUrl(""); if (this.configuration.postConfigureClientMethod) { this.configuration.postConfigureClientMethod(this.instance); } } /** * Create a new OAuth client * * Client secret is only returned from creation. * The user will have to reset the secret if they lose access. * * Requires Authorization: * * Claim(s): user * @return Returns created client credentials */ create(cancelToken) { let url_ = this.baseUrl + "/api/v1/clients"; url_ = url_.replace(/[?&]$/, ""); let options_ = { method: "POST", url: url_, headers: { "Accept": "text/plain" }, cancelToken, requiresAuthorization: true }; return this.instance.request(options_).catch((_error) => { if (isAxiosError(_error) && _error.response) { return _error.response; } else { throw _error; } }).then((_response) => { return this.processCreate(_response); }); } processCreate(response) { const status = response.status; let _headers = {}; if (response.headers && typeof response.headers === "object") { for (const k in response.headers) { if (response.headers.hasOwnProperty(k)) { _headers[k] = response.headers[k]; } } } if (status === 200) { const _responseText = response.data; let result200 = null; let resultData200 = _responseText; result200 = JSON.parse(resultData200); return Promise.resolve(new OtrApiResponse(status, _headers, result200)); } else if (status !== 200 && status !== 204) { const _responseText = response.data; return throwException("An unexpected server error occurred.", status, _responseText, _headers); } return Promise.resolve(new OtrApiResponse(status, _headers, null)); } /** * Set the rate limit for a client * * Requires Authorization: * * Claim(s): admin * @param params Request parameters (see {@link ClientsPatchRateLimitRequestParams}) * @return Returns the updated client */ patchRateLimit(params, cancelToken) { const { id, body } = params; let url_ = this.baseUrl + "/api/v1/clients/{id}/ratelimit"; if (id === undefined || id === null) throw new Error("The parameter 'id' must be defined."); url_ = url_.replace("{id}", encodeURIComponent("" + id)); url_ = url_.replace(/[?&]$/, ""); const content_ = JSON.stringify(body); let options_ = { data: content_, method: "POST", url: url_, headers: { "Content-Type": "application/json-patch+json", "Accept": "text/plain" }, cancelToken, requiresAuthorization: true }; return this.instance.request(options_).catch((_error) => { if (isAxiosError(_error) && _error.response) { return _error.response; } else { throw _error; } }).then((_response) => { return this.processPatchRateLimit(_response); }); } processPatchRateLimit(response) { const status = response.status; let _headers = {}; if (response.headers && typeof response.headers === "object") { for (const k in response.headers) { if (response.headers.hasOwnProperty(k)) { _headers[k] = response.headers[k]; } } } if (status === 404) { const _responseText = response.data; let result404 = null; let resultData404 = _responseText; result404 = JSON.parse(resultData404); return throwException("A client matching the given id does not exist", status, _responseText, _headers, result404); } else if (status === 200) { const _responseText = response.data; let result200 = null; let resultData200 = _responseText; result200 = JSON.parse(resultData200); return Promise.resolve(new OtrApiResponse(status, _headers, result200)); } else if (status !== 200 && status !== 204) { const _responseText = response.data; return throwException("An unexpected server error occurred.", status, _responseText, _headers); } return Promise.resolve(new OtrApiResponse(status, _headers, null)); } } exports.ClientsWrapper = ClientsWrapper; class FilteringWrapper extends OtrApiWrapperBase { constructor(configuration) { super(configuration); this.jsonParseReviver = undefined; this.instance = axios_1.default.create(this.configuration.clientConfiguration); this.baseUrl = this.getBaseUrl(""); if (this.configuration.postConfigureClientMethod) { this.configuration.postConfigureClientMethod(this.instance); } } /** * Filter a list of users based on the criteria as described in * API.DTOs.FilteringResultDTO * * Requires Authorization: * * Claim(s): user, client * @param params Request parameters (see {@link FilteringFilterRequestParams}) * @return The filtering result */ filter(params, cancelToken) { const { body } = params; let url_ = this.baseUrl + "/api/v1/filtering"; url_ = url_.replace(/[?&]$/, ""); const content_ = JSON.stringify(body); let options_ = { data: content_, method: "POST", url: url_, headers: { "Content-Type": "application/json-patch+json", "Accept": "text/plain" }, cancelToken, requiresAuthorization: true }; return this.instance.request(options_).catch((_error) => { if (isAxiosError(_error) && _error.response) { return _error.response; } else { throw _error; } }).then((_response) => { return this.processFilter(_response); }); } processFilter(response) { const status = response.status; let _headers = {}; if (response.headers && typeof response.headers === "object") { for (const k in response.headers) { if (response.headers.hasOwnProperty(k)) { _headers[k] = response.headers[k]; } } } if (status === 400) { const _responseText = response.data; let result400 = null; let resultData400 = _responseText; result400 = JSON.parse(resultData400); return throwException("The request body is invalid", status, _responseText, _headers, result400); } else if (status === 200) { const _responseText = response.data; let result200 = null; let resultData200 = _responseText; result200 = JSON.parse(resultData200); return Promise.resolve(new OtrApiResponse(status, _headers, result200)); } else if (status !== 200 && status !== 204) { const _responseText = response.data; return throwException("An unexpected server error occurred.", status, _responseText, _headers); } return Promise.resolve(new OtrApiResponse(status, _headers, null)); } /** * Get a stored filter report by ID * * Requires Authorization: * * Policy: ApiKey * @param params Request parameters (see {@link FilteringGetFilterReportRequestParams}) * @return The filter report */ getFilterReport(params, cancelToken) { const { id } = params; let url_ = this.baseUrl + "/api/v1/filtering/{id}"; if (id === undefined || id === null) throw new Error("The parameter 'id' must be defined."); url_ = url_.replace("{id}", encodeURIComponent("" + id)); url_ = url_.replace(/[?&]$/, ""); let options_ = { method: "GET", url: url_, headers: { "Accept": "text/plain" }, cancelToken, requiresAuthorization: true }; return this.instance.request(options_).catch((_error) => { if (isAxiosError(_error) && _error.response) { return _error.response; } else { throw _error; } }).then((_response) => { return this.processGetFilterReport(_response); }); } processGetFilterReport(response) { const status = response.status; let _headers = {}; if (response.headers && typeof response.headers === "object") { for (const k in response.headers) { if (response.headers.hasOwnProperty(k)) { _headers[k] = response.headers[k]; } } } if (status === 404) { const _responseText = response.data; let result404 = null; let resultData404 = _responseText; result404 = JSON.parse(resultData404); return throwException("The filter report was not found", status, _responseText, _headers, result404); } else if (status === 200) { const _responseText = response.data; let result200 = null; let resultData200 = _responseText; result200 = JSON.parse(resultData200); return Promise.resolve(new OtrApiResponse(status, _headers, result200)); } else if (status !== 200 && status !== 204) { const _responseText = response.data; return throwException("An unexpected server error occurred.", status, _responseText, _headers); } return Promise.resolve(new OtrApiResponse(status, _headers, null)); } } exports.FilteringWrapper = FilteringWrapper; class GamesWrapper extends OtrApiWrapperBase { constructor(configuration) { super(configuration); this.jsonParseReviver = undefined; this.instance = axios_1.default.create(this.configuration.clientConfiguration); this.baseUrl = this.getBaseUrl(""); if (this.configuration.postConfigureClientMethod) { this.configuration.postConfigureClientMethod(this.instance); } } /** * Get a game * * Requires Authorization: * * Claim(s): user, client * @param params Request parameters (see {@link GamesGetRequestParams}) * @return Returns a game */ get(params, cancelToken) { const { id, verified } = params; let url_ = this.baseUrl + "/api/v1/games/{id}?"; if (id === undefined || id === null) throw new Error("The parameter 'id' must be defined."); url_ = url_.replace("{id}", encodeURIComponent("" + id)); if (verified === null) throw new Error("The parameter 'verified' cannot be null."); else if (verified !== undefined) url_ += "verified=" + encodeURIComponent("" + verified) + "&"; url_ = url_.replace(/[?&]$/, ""); let options_ = { method: "GET", url: url_, headers: { "Accept": "text/plain" }, cancelToken, requiresAuthorization: true }; return this.instance.request(options_).catch((_error) => { if (isAxiosError(_error) && _error.response) { return _error.response; } else { throw _error; } }).then((_response) => { return this.processGet(_response); }); } processGet(response) { const status = response.status; let _headers = {}; if (response.headers && typeof response.headers === "object") { for (const k in response.headers) { if (response.headers.hasOwnProperty(k)) { _headers[k] = response.headers[k]; } } } if (status === 404) { const _responseText = response.data; let result404 = null; let resultData404 = _responseText; result404 = JSON.parse(resultData404); return throwException("A game matching the given id does not exist", status, _responseText, _headers, result404); } else if (status === 200) { const _responseText = response.data; let result200 = null; let resultData200 = _responseText; result200 = JSON.parse(resultData200); return Promise.resolve(new OtrApiResponse(status, _headers, result200)); } else if (status !== 200 && status !== 204) { const _responseText = response.data; return throwException("An unexpected server error occurred.", status, _responseText, _headers); }