poker-server-api
Version:
HTML client for online poker
346 lines (298 loc) • 6.6 kB
TypeScript
// Interface
interface GameHubServer {
join(tableId: number);
leave(tableId: number);
subscribeLobby();
unsubscribeLobby();
subscribeTournamentLobby();
unsubscribeTournamentLobby();
subscribeTournament(tournamentId: number);
unsubscribeTournament(tournamentId: number);
}
interface StatusResponse {
Status: string;
}
interface ApiResult<T> {
Status: string;
Data: T;
}
/**
* Response for the RegisterGuest API call.
*/
interface AuthenticateResponse extends StatusResponse {
/**
* Id of the authorized user, or 0 otherwise.
*/
Id: number;
/**
* A value indicating whether this user is guest or not.
*/
IsGuest: boolean;
/**
* First name of the user.
*/
FirstName: string;
/**
* Last name of the user.
*/
LastName: string;
/**
* Patronymic name of the user.
*/
PatronymicName: string;
/**
* Login of the user.
*/
Login: string;
/**
* Money which player has in different currencies.
*/
Money: number[];
/**
* Email of the user.
*/
Email: string;
/**
* Country of the user.
*/
Country: string;
/**
* City of the user
*/
City: string;
/**
* Url of the image to display in the UI
*/
ImageUrl: string;
/**
* Gets or sets additional properties for the player.
*/
Properties: any;
}
/**
* Response for the RegisterGuest API call.
*/
interface RegisterGuestResponse extends StatusResponse {
UserId: number;
Login: string;
Password: string;
}
/**
* Response for the VersionCheck API call
*/
interface VersionCheckResponse {
/**
* Current version of server API.
*/
ServerApiVersion: number;
/**
* Minimum compatible version of client API.
*/
MinimumClientApiVersion: number;
}
interface PlayerStatusInfo {
PlayerId: number;
PlayerName: string;
PlayerUrl: string;
Money: number;
Seat: number;
Cards: string;
Bet: number;
Status: number;
Points: number;
Stars: number;
}
interface UserRating {
Id: number;
Login: string;
Points: number;
Stars: number;
}
interface GameWinnerModel {
PlayerId: number;
Pot: number;
CardsDescription: string;
Amount: number;
}
interface PlayerDefinitionProperties {
Language: string;
Points: string;
Stars: string;
}
interface PlayerDefinition {
Email: string;
FirstName: string;
LastName: string;
RealMoney: number;
GameMoney: number;
Points: number;
Properties: PlayerDefinitionProperties;
}
interface PersonalAccountData {
RealMoney: number;
RealMoneyReserve: number;
GameMoney: number;
GameMoneyReserve: number;
/**
* Amount of points
*/
Points: number;
LastIncomeDate: string;
LastIncomeAmount: number;
LastRequestNumber: number;
}
interface GameTableModel {
TableId: number;
TableName: string;
SmallBlind: number;
BigBlind: number;
AveragePotSize: number;
CurrencyId: number;
HandsPerHour: number;
IsAuthorized: boolean;
JoinedPlayers: number;
MaxPlayers: number;
PotLimitType: number;
TournamentId?: number;
}
interface BannerData {
/**
* Id of the banner
*/
Id: number;
/**
* Text representation of the banner
*/
Title: string;
/**
* URL which could be used to retrieve banner.
*/
Url: string;
/**
* URL which could be used to navigate when click on the banner.
*/
Link: string;
}
interface GamePlayerStartInformation {
/**
* Id of the player which participate in the game.
*/
PlayerId: number;
/**
* Money which player has on hand.
*/
Money: number;
}
interface GameActionStartInformation {
/**
* Id of the player which executed action in the game.
*/
PlayerId: number;
/**
* Type of executed action
*/
Type: number;
/**
* Amount of money which put in the pot
*/
Amount: number;
}
interface ChatHubServer {
join(tableId: number);
leave(tableId: number);
}
interface ChatHubClient {
ChatConnected: (tableId: number, lastMessageId: number) => void;
Message: (messageId: number, tableId: number, type: string, sender: string, message: string) => void;
MessageChanged: (messageId: number, tableId: number, type: string, sender: string, message: string) => void;
}
interface TournamentPrizeStructure {
MaxPlayer: number;
PrizeLevel: number[];
}
interface TournamentBetStructure {
Level: number;
SmallBlind: number;
BigBlind: number;
Ante: number;
}
/**
* Table information in the lobby.
*/
interface LobbyTableItem {
/**
* Unique id of the table.
*/
TableId: number;
/**
* Name of the table
*/
TableName: string;
/**
* A value indicating whether player is authorized play games on this table.
*/
IsAuthorized: boolean;
SmallBlind: number;
BigBlind: number;
JoinedPlayers: number;
MaxPlayers: number;
PotLimitType: number;
AveragePotSize: number;
HandsPerHour: number;
CurrencyId: number;
SeatMask: number;
}
/**
* DTO for the tournament player information.
*/
interface TournamentTablePlayerDefinition {
/**
* Gets or sets Id of the player
*/
PlayerId: number;
/**
* Gets or sets name of the player.
*/
PlayerName: string;
/**
* Gets or sets amount of money which player currently has.
*/
PlayerMoney: number;
}
/**
* DTO for the tournament table information.
*/
interface TournamentTableDefinition {
/**
* Gets or sets unique id of the table.
*/
TableId: number;
/**
* Gets or sets name of the table.
*/
TableName: string;
/**
* Gets or sets number of players which joins the game.
*/
JoinedPlayers: number;
/**
* Gets or sets a value indicating whether table is closed.
*/
IsClosed: boolean;
/**
* Gets or sets list of the players which is sitting on the table now.
*/
Players: TournamentTablePlayerDefinition[];
}
interface BaseRequest<T> {
Status: string;
Data: T;
}
interface OperationData {
Amount: number;
OperationDate: string;
Operation: number;
Comments: number;
BookingOffice: string;
Status: string;
}