PlayerManagement/Ui/src/app/services/vs-duel.service.ts
Tomasi - Developing 19182e7b36 - Implemented pagination for all tables to improve usability and navigation.
- Expanded the zombie siege table to display all waves survived by the entire alliance
2025-01-28 12:05:50 +01:00

43 lines
1.7 KiB
TypeScript

import {inject, Injectable} from '@angular/core';
import {environment} from "../../environments/environment";
import {HttpClient, HttpParams} from "@angular/common/http";
import {Observable} from "rxjs";
import {VsDuelDetailModel, VsDuelModel} from "../models/vsDuel.model";
import {PagedResponseModel} from "../models/pagedResponse.model";
@Injectable({
providedIn: 'root'
})
export class VsDuelService {
private readonly _serviceUrl = environment.apiBaseUrl + 'VsDuels/';
private readonly _httpClient: HttpClient = inject(HttpClient);
public getVsDuel(vsDuelId: string): Observable<VsDuelModel> {
return this._httpClient.get<VsDuelModel>(this._serviceUrl + vsDuelId);
}
public getAllianceVsDuels(allianceId: string, pageNumber: number, pageSize: number): Observable<PagedResponseModel<VsDuelModel>> {
let params = new HttpParams();
params = params.append('pageNumber', pageNumber);
params = params.append('pageSize', pageSize);
return this._httpClient.get<PagedResponseModel<VsDuelModel>>(this._serviceUrl + 'Alliance/' + allianceId, {params: params});
}
public getVsDuelDetail(vsDuelId: string): Observable<VsDuelDetailModel> {
return this._httpClient.get<VsDuelDetailModel>(this._serviceUrl + 'GetDetailVsDuel/' + vsDuelId);
}
public createVsDuel(vsDuel: VsDuelModel): Observable<VsDuelModel> {
return this._httpClient.post<VsDuelModel>(this._serviceUrl, vsDuel);
}
public updateVsDuel(vsDuelId: string, vsDuel: VsDuelModel): Observable<VsDuelModel> {
return this._httpClient.put<VsDuelModel>(this._serviceUrl + vsDuelId, vsDuel);
}
public deleteVsDuel(vsDuelId: string): Observable<boolean> {
return this._httpClient.delete<boolean>(this._serviceUrl + vsDuelId);
}
}