diff --git a/src/api.ts b/src/api.ts index 0e94a38..d9604c2 100644 --- a/src/api.ts +++ b/src/api.ts @@ -215,7 +215,7 @@ export class TribufuApi { */ public async getGames(page: number = 1): Promise<any[]> { const headers = this.getHeaders(); - const responseBody = await this.http.get<any[]>(`/v1/packages?page=${page}`, headers); + const responseBody = await this.http.get<any[]>(`/v1/games?page=${page}`, headers); if (!responseBody) { return []; @@ -231,7 +231,7 @@ export class TribufuApi { */ public async getGameById(id: string): Promise<any | null> { const headers = this.getHeaders(); - const responseBody = await this.http.get<any>(`/v1/packages/${id}`, headers); + const responseBody = await this.http.get<any>(`/v1/games/${id}`, headers); if (!responseBody) { return null; @@ -291,8 +291,12 @@ export class TribufuApi { * @returns Server | null */ public async getServerByAddress(address: string): Promise<any> { + const parts = address.split(":"); + const hostOrAddress = parts[0]; + const queryPort = parts[1]; + const headers = this.getHeaders(); - const responseBody = await this.http.get(`/v1/servers/address/${address}`, headers); + const responseBody = await this.http.get(`/v1/servers/?address=${hostOrAddress}&query_port=${queryPort}`, headers); if (!responseBody) { return null; @@ -335,15 +339,6 @@ export class TribufuApi { return await this.getUserByKey("name", name); } - /** - * Get a user by email from the Tribufu API. - * @param uuid - * @returns User[] - */ - public async getUserByEmail(email: string): Promise<any[]> { - return await this.getUserByKey("email", email); - } - /** * Get a user by custom key from the Tribufu API. * @param key @@ -361,6 +356,54 @@ export class TribufuApi { return responseBody; } + /** + * Get all groups for a user from the Tribufu API. + * @param userId + * @returns Group[] + */ + public async getUserGroups(userId: string): Promise<any[]> { + const headers = this.getHeaders(); + const responseBody = await this.http.get<any[]>(`/v1/users/${userId}/groups`, headers); + + if (!responseBody) { + return []; + } + + return responseBody; + } + + /** + * Get all games for a user from the Tribufu API. + * @param userId + * @returns Game[] + */ + public async getUserGames(userId: string): Promise<any[]> { + const headers = this.getHeaders(); + const responseBody = await this.http.get<any[]>(`/v1/users/${userId}/games`, headers); + + if (!responseBody) { + return []; + } + + return responseBody; + } + + /** + * Get all punishments for a user from the Tribufu API. + * @param userId + * @returns Punishment[] + */ + public async getUserPunishments(userId: string): Promise<any[]> { + const headers = this.getHeaders(); + const responseBody = await this.http.get<any[]>(`/v1/users/${userId}/punishments`, headers); + + if (!responseBody) { + return []; + } + + return responseBody; + } + /** * Get all servers for a user from the Tribufu API. * @param userId @@ -394,13 +437,13 @@ export class TribufuApi { } /** - * Get files from the Tribufu API. + * Get packages from the Tribufu API. * @param page - * @returns File[] + * @returns Package[] */ - public async getFiles(page: number = 1): Promise<any[]> { + public async getPackages(page: number = 1): Promise<any[]> { const headers = this.getHeaders(); - const responseBody = await this.http.get<any[]>(`/v1/files?page=${page}`, headers); + const responseBody = await this.http.get<any[]>(`/v1/packages?page=${page}`, headers); if (!responseBody) { return []; @@ -410,13 +453,77 @@ export class TribufuApi { } /** - * Get a file by id from the Tribufu API. + * Get a package by id from the Tribufu API. * @param id - * @returns File | null + * @returns Package | null */ - public async getFileById(id: string): Promise<any> { + public async getPackageById(id: string): Promise<any> { const headers = this.getHeaders() - const responseBody = await this.http.get<any>(`/v1/files/${id}`, headers); + const responseBody = await this.http.get<any>(`/v1/packages/${id}`, headers); + + if (!responseBody) { + return null; + } + + return responseBody; + } + + /** + * Get clusters from the Tribufu API. + * @param page + * @returns Cluster[] + */ + public async getClusters(page: number = 1): Promise<any[]> { + const headers = this.getHeaders(); + const responseBody = await this.http.get<any[]>(`/v1/clusters?page=${page}`, headers); + + if (!responseBody) { + return []; + } + + return responseBody; + } + + /** + * Get a cluster by id from the Tribufu API. + * @param id + * @returns Cluster | null + */ + public async getClusterById(id: string): Promise<any> { + const headers = this.getHeaders() + const responseBody = await this.http.get<any>(`/v1/clusters/${id}`, headers); + + if (!responseBody) { + return null; + } + + return responseBody; + } + + /** + * Get subscriptions from the Tribufu API. + * @param page + * @returns Subscription[] + */ + public async getSubscriptions(page: number = 1): Promise<any[]> { + const headers = this.getHeaders(); + const responseBody = await this.http.get<any[]>(`/v1/subscriptions?page=${page}`, headers); + + if (!responseBody) { + return []; + } + + return responseBody; + } + + /** + * Get a subscription by id from the Tribufu API. + * @param id + * @returns Subscription | null + */ + public async getSubscriptionById(id: string): Promise<any> { + const headers = this.getHeaders() + const responseBody = await this.http.get<any>(`/v1/subscriptions/${id}`, headers); if (!responseBody) { return null;