@osu-tournament-rating/otr-api-client
Version:
Client code for interacting with the o!TR API
1,245 lines (1,244 loc) • 212 kB
JavaScript
"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.TournamentProcessingStatus = exports.TeamType = exports.Team = exports.ScoringType = exports.ScoreRejectionReason = exports.ScoreProcessingStatus = exports.ScoreGrade = exports.Ruleset = exports.Roles = exports.RatingAdjustmentType = exports.OperationType = exports.Mods = exports.MatchWarningFlags = exports.MatchRejectionReason = exports.MatchQuerySortType = exports.MatchProcessingStatus = exports.GameWarningFlags = exports.GameRejectionReason = exports.GameProcessingStatus = 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.DiagnosticsWrapper = 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:
*
* Claim(s): user, client
* @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));
}
}
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 DiagnosticsWrapper 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);
}
}
/**
* Allows clients to determine if the server is running
* @return The server is running
*/
ping(cancelToken) {
let url_ = this.baseUrl + "/api/v1/diagnostics/ping";
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.processPing(_response);
});
}
processPing(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));
}
}
exports.DiagnosticsWrapper = DiagnosticsWrapper;
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
* @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: false
};
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);
}
return Promise.resolve(new OtrApiResponse(status, _headers, null));
}
/**
* Amend game data
*
* Requires Authorization:
*
* Claim(s): admin
* @param params Request parameters (see {@link GamesUpdateRequestParams})
* @return Returns the updated game
*/
update(params, cancelToken) {
const { id, body } = 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));