poker-html-client
Version:
HTML client for online poker
105 lines (101 loc) • 5.27 kB
text/typescript
import { getDeleteRequestInit, getPostRequestInit, getPutRequestInit } from "./helper";
interface AddBalanceResponse extends StatusResponse {
Amount: number;
}
export class Game {
constructor(public host: string) {
}
public async getTables() {
const data = {};
const response = await fetch(this.host + "/api/tables");
const jsonData = await response.json() as ApiResult<LobbyTableItem[]>;
return jsonData;
}
public async getTableById(tableId: number) {
const data = {};
const response = await fetch(this.host + `/api/tables/${tableId}`);
const jsonData = await response.json() as ApiResult<GameTableModel>;
return jsonData;
}
public async getSitingTables() {
const response = await fetch(this.host + `/api/account/my/tables`);
const jsonData = await response.json() as ApiResult<number[]>;
return jsonData;
}
public async sit(tableId: number, seat: number, amount: number, ticketCode: string) {
const data = { Amount: amount, TicketCode: ticketCode };
const response = await fetch(this.host + `/api/tables/${tableId}/seats/${seat}/queue`, getPostRequestInit(data));
const jsonData = await response.json() as SitResponse;
return jsonData;
}
public async sitAnywhere(tableId, amount) {
const data = { Amount: amount };
const response = await fetch(this.host + `/api/tables/${tableId}/seats/queue`, getPostRequestInit(data));
const jsonData = await response.json() as SitResponse;
return jsonData;
}
public async standup(tableId: number) {
const response = await fetch(this.host + `/api/tables/${tableId}/seats/me`, getDeleteRequestInit());
const jsonData = await response.json() as StatusResponse;
return jsonData;
}
public async fold(tableId: number) {
const response = await fetch(this.host + `/api/tables/${tableId}/game/current/actions/fold`, getPostRequestInit());
const jsonData = await response.json() as StatusResponse;
return jsonData;
}
public async checkOrCall(tableId: number) {
const response = await fetch(this.host + `/api/tables/${tableId}/game/current/actions/check-call`, getPostRequestInit());
const jsonData = await response.json() as StatusResponse;
return jsonData;
}
public async betOrRaise(tableId, amount) {
const data = { Amount: amount };
const response = await fetch(this.host + `/api/tables/${tableId}/game/current/actions/bet-raise`, getPostRequestInit(data));
const jsonData = await response.json() as StatusResponse;
return jsonData;
}
public async changeWaitQueueSettings(tableId, waitBigBlind: boolean) {
const data = { WaitBigBlind: waitBigBlind };
const response = await fetch(this.host + `/api/tables/${tableId}/queue/settings`, getPostRequestInit(data));
const jsonData = await response.json() as StatusResponse;
return jsonData;
}
public async addBalance(tableId: number, amount: number, ticketCode: string) {
const data = { Amount: amount, TicketCode: ticketCode };
const response = await fetch(this.host + `/api/tables/${tableId}/balance`, getPostRequestInit(data));
const jsonData = await response.json() as AddBalanceResponse;
return jsonData;
}
public async sitOut(tableId: number) {
const response = await fetch(this.host + `/api/tables/${tableId}/status/sit-out`, getPutRequestInit());
const jsonData = await response.json() as StatusResponse;
return jsonData;
}
public async comeBack(tableId: number) {
const response = await fetch(this.host + `/api/tables/${tableId}/status/sit-out`, getDeleteRequestInit());
const jsonData = await response.json() as StatusResponse;
return jsonData;
}
public async muck(tableId: number) {
const response = await fetch(this.host + `/api/tables/${tableId}/game/current/hole-cards/both/visibility`, getDeleteRequestInit());
const jsonData = await response.json() as StatusResponse;
return jsonData;
}
public async showCards(tableId: number) {
const response = await fetch(this.host + `/api/tables/${tableId}/game/current/hole-cards/both/visibility`, getPutRequestInit());
const jsonData = await response.json() as StatusResponse;
return jsonData;
}
public async showHoleCard(tableId: number, cardPosition: number) {
const response = await fetch(this.host + `/api/tables/${tableId}/game/current/hole-cards/${cardPosition}/visibility`, getPutRequestInit());
const jsonData = await response.json() as StatusResponse;
return jsonData;
}
public async setTableParameters(tableId: number, openCardsAutomatically: boolean) {
const data = { OpenCardsAutomatically: openCardsAutomatically };
const response = await fetch(this.host + `/api/tables/${tableId}/settings`, getPutRequestInit(data));
const jsonData = await response.json() as StatusResponse;
return jsonData;
}
}