battlemetrics-wrapper
Version:
a wrapper for the battlemetrics API based on GnomeSlayer's python version
74 lines (61 loc) • 1.7 kB
text/typescript
import Helpers from "./helpers.js";
export class GameInfo {
constructor(private helpers: Helpers) {}
// TODO: find proper type
async features(game: string): Promise<object> {
const data: { "page[size]": string; "filter[game]"?: string } = {
"page[size]": "100",
};
if (game) {
data["filter[game]"] = game;
}
return await this.helpers.makeRequest({
method: "GET",
path: "/game-features",
params: new URLSearchParams(data),
});
}
// TODO: find proper type
async featureOptions(
featureId: string,
sort: string = "players"
): Promise<object> {
const data: { "page[size]": string; sort?: string } = {
"page[size]": "100",
sort,
};
return await this.helpers.makeRequest({
method: "GET",
path: `/game-features/${featureId}/relationships/options`,
params: new URLSearchParams(data),
});
}
// TODO: find proper type
async list(game?: string): Promise<object> {
const data: { "page[size]": string; "fields[game]"?: string } = {
"page[size]": "100",
};
if (game) {
data["fields[game]"] = game;
}
return await this.helpers.makeRequest({
method: "GET",
path: "/games",
params: new URLSearchParams(data),
});
}
// TODO: find proper type
async info(gameId: string, game?: string): Promise<object> {
const data: { "page[size]": string; "fields[game]"?: string } = {
"page[size]": "100",
};
if (game) {
data["fields[game]"] = game;
}
return await this.helpers.makeRequest({
method: "GET",
path: `/games/${gameId}`,
params: new URLSearchParams(data),
});
}
}