bb-api-platforma
Version:
API module for BetBooster Platform
1,134 lines (1,133 loc) • 53.4 kB
TypeScript
import { AxiosInstance } from 'axios';
import * as I from './Types.js';
import { api } from './Types.js';
export declare function routeNameId(id: number | string, text?: string): string;
export declare function clearPhone(draftPhoneNumber: number | string, prefix?: string, suffix?: string): string;
export declare class BetBoosterOfficeApi {
private _baseUrl;
private _srv_tag;
/**
* A clean superagent instance that can be used for http requests
*/
axi: AxiosInstance;
private _locale;
private _locales;
private _languageIdsRemote;
private EXIST_LANGUAGES;
private _languageId;
private _lang;
private _APIv1;
private _APIv2;
private _API_LBC;
private _ENDPOINT_DOMAIN;
private _TOKEN?;
private _USER_DATA;
private LANG_DEFAULT;
private LOCALE_DEFAULT;
private LANG_ID_DEFAULT;
private maxTimeExecutionMs;
liveTimestamp: string | number;
private _liveTimestampReset;
liveRecivedIsFullPackage?: boolean;
isNotActive?: boolean;
/**
* Represents the BetBoosterApi class.
* @constructor
* @param {AxiosInstance} axiosInstance - The Axios instance to be used for making HTTP requests. Aka axios.create()
* @param {string} baseUrl - The base URL of the API.
* @param {string} [lang='en'] - The language to be used for API requests. Defaults to 'en'.
* @param {number} [maxTimeExecutionMs=15000] - The maximum time allowed for API request execution in milliseconds. Defaults to 15000.
* @param {boolean} [isDev=false] - Indicates whether the API is running in development mode. Defaults to false.
*/
constructor(axiosInstance: AxiosInstance, baseUrl: string, lang?: string, maxTimeExecutionMs?: number, isDev?: boolean);
get locale(): string;
get isSinged(): boolean;
get user(): I.IUser;
set user(value: I.IUser);
get lang(): string;
get baseUrl(): string;
get languageId(): number;
get srvTag(): string | number;
set srvTag(value: string | number);
setServerTag(value: string | number): void;
get token(): string | undefined;
set token(value: string | undefined);
/**
* Обрабатывает данные ответа и возвращает объект с данными, ошибкой, статусом и текстом статуса.
*
* @template T - Тип данных, возвращаемых в поле `data`.
* @param {any} rawData - Сырые данные ответа.
* @param {number} status - HTTP статус ответа.
* @param {string} statusText - Текст статуса HTTP ответа.
* @returns {{ data: T, error: string | null, status: number, statusText: string }} Объект, содержащий данные ответа, ошибку, статус и текст статуса.
*/
responseHandlerData<T = any | null>(rawData: any, status: number, statusText: string): {
data: T | null;
error: string | null;
status: number;
statusText: string;
};
/**
* Processes the response data and returns an object with data, error, status and status text.
* Same as `this.responseHandlerData` only corrects the nesting of `Data.Data`
*
* @template T - Тип данных, возвращаемых в поле `data`.
* @param {any} rawData - Сырые данные ответа.
* @param {number} status - HTTP статус ответа.
* @param {string} statusText - Текст статуса HTTP ответа.
* @returns {{ data: T, error: string | null, status: number, statusText: string }} Объект, содержащий данные ответа, ошибку, статус и текст статуса.
*/
responseHandlerDataData<T = any | null>(rawData: any, status: number, statusText: string): {
data: T | null;
error: string | null;
status: number;
statusText: string;
};
setDevMode(devMode?: boolean | undefined): void;
checkLanguage(lang?: string): string;
setLanguage(lang?: string): string;
/**
* Устанавливает язык и локаль для удаленного API.
* @param lang Язык (по умолчанию 'en').
* @returns Возвращает true, если язык и локаль успешно установлены, в противном случае возвращает false.
*/
setLanguageRemoteLocale(lang?: string): Promise<boolean>;
private setBaseUrl;
private statusHandler;
/**
* Обработчик строки запроса. Заменяет значения
* * `null` на `'null'`
* * `false` на `'false'`
* * `true` на `'true'`
* * `undefined` на `''`
* @param queryStringData - queryString Record<string, any>
* @returns Обработанные данные строки запроса.
*/
private queryStringHandler;
private responseHandler;
/**
* Обработчик ошибок для Axios.
*
* @param error - Объект ошибки AxiosError.
* @returns Объект с данными об ошибке, включая статус и текст ошибки.
*/
private axiosErrorHandler;
/**
* Возвращает URL для указанного пути API и версии.
*
* @param apiPath - Путь API.
* @param apiVersion - Версия API.
* @returns URL для указанного пути API и версии.
*/
url(apiPath: string, apiVersion?: api): string;
/**
* Выполняет HTTP-запрос с заданными параметрами.
* @param url - URL-адрес для выполнения запроса.
* @returns Объект, содержащий методы для настройки запроса и выполнения запроса.
*/
request(url: string): {
/**
* Выполняет запрос с заданными параметрами.
* @param queryParams - Параметры запроса.
* @returns Экземпляр класса BetBoosterOfficeApi.
*/
query(queryParams?: Record<string, unknown> | object): any;
/**
* Устанавливает заголовки запроса.
* @param headers - Объект с заголовками запроса.
* @returns Экземпляр класса BetBoosterOfficeApi.
*/
headers(headers?: Record<string, string>): any;
deleteAllHeaders(): any;
setTimeout(timeout?: number): any;
/**
* Устанавливает метод запроса GET.
* @returns Экземпляр класса BetBoosterOfficeApi.
*/
GET(): any;
/**
* Устанавливает метод запроса POST.
* @param payload - Полезная нагрузка для запроса.
* @returns Экземпляр класса BetBoosterOfficeApi.
*/
POST(payload?: Record<string, unknown> | object): any;
/**
* Устанавливает метод запроса PUT и устанавливает тело запроса.
* @param payload - Данные, которые будут отправлены в теле запроса.
* @returns Экземпляр класса BetBoosterOfficeApi с установленным методом запроса PUT и телом запроса.
*/
PUT(payload?: Record<string, unknown> | object): any;
/**
* Устанавливает метод запроса PATCH и устанавливает тело запроса.
* @param payload - Данные, которые будут отправлены в теле запроса.
* @returns Экземпляр класса BetBoosterOfficeApi с установленным методом запроса PATCH и телом запроса.
*/
PATCH(payload?: Record<string, unknown> | object): any;
/**
* Устанавливает метод запроса DELETE.
* @param payload Данные запроса в формате объекта или записи.
* @returns Экземпляр класса BetBoosterOfficeApi.
*/
DELETE(payload?: Record<string, unknown> | object): any;
/**
* Выполняет запрос к API.
*
* @returns Объект, содержащий данные, статус и текст статуса ответа.
* ```
* { data, status, statusText }
* ```
*/
exec<T>(): Promise<I.IResponseData<T>>;
/**
* Получает значение.
* @returns Промис, который разрешается с данными.
*/
value<T>(): Promise<void>;
};
/**
* Sends a GET request to the specified endpoint with optional query parameters and options.
* @param url - The endpoint to send the GET request to.
* @param queryParams - The query parameters to include in the request URL. Defaults to an empty object.
* @param headers - The options to include in the request. Defaults to an empty object.
* @returns A Promise that resolves to the response body of the GET request.
*/
GET(url: string, queryParams?: Record<string, unknown> | object, headers?: Record<string, string>): Promise<any>;
POST(url: string, payload?: Record<string, unknown> | object, queryParams?: Record<string, unknown> | object, headers?: Record<string, string>): Promise<any>;
DELETE(url: string, payload?: Record<string, unknown> | object, queryParams?: Record<string, unknown> | object, headers?: Record<string, string>): Promise<any>;
PUT(url: string, payload?: Record<string, unknown> | object, queryParams?: Record<string, unknown> | object, headers?: Record<string, string>): Promise<any>;
/**
* Асинхронно выполняет вход в систему.
* @description Если логин успешен, сохраняет токен в свойстве класса token
* и сохраняет объект, представляющий пользователя в свойстве класса user
* в последствии эти свойства используем для обработки запроса
* @param login Логин пользователя.
* @param password Пароль пользователя.
* @returns Объект, представляющий пользователя, если вход выполнен успешно. В противном случае, возвращает пустой объект.
*/
login({ login, password }: {
login: string;
password: string;
}): Promise<I.IUser>;
/**
* Получает данные пользователя.
* @returns Данные пользователя или null, если пользователь не найден.
*/
getUserData(): Promise<any>;
getOfficeUserData(): Promise<any>;
/**
* Returns the list of prematch sports
*
* @param minutes The number of minutes to consider for the data retrieval. Defaults to 0.
* @returns {Promise<Array<any>>} A promise that resolves to an array of line sports data.
*/
getLineSports(minutes?: number): Promise<I.ISport[]>;
/**
* Получает список стран для указанного идентификатора спорта.
* @param sportId - Идентификатор спорта.
* @param minutes - Опциональный параметр, количество минут.
* @returns Промис, который разрешается в массив объектов типа ICountry.
*/
getCountriesList(sportId: number, minutes?: number): Promise<I.ICountry[]>;
/**
* Retrieves prematch tournaments based on the specified sport ID, country ID, and minutes.
* @param sportId - The ID of the sport.
* @param countryId - The ID of the country.
* @param minutes - The number of minutes ago for which data is to be retrieved.
* @returns A promise that resolves to an array of prematch tournaments.
*/
getPrematchTournaments(sportId: number, countryId: number, minutes?: number): Promise<I.GetPrematchTournament[]>;
/**
* Retrieves prematch events based on the specified parameters.
* @param sportId - The ID of the sport.
* @param countryId - The ID of the country.
* @param tournamentId - The ID of the tournament.
* @param minutes - The number of minutes ago for which data is to be retrieved.
* @returns A Promise that resolves to an array of prematch events.
*/
getPrematchEvents(sportId: number, countryId: number, tournamentId: number, minutes: number): Promise<any>;
/**
* Retrieves the hot prematch events
* @returns {Promise<Array<any>>} A promise that resolves to an array of hot events.
*/
getHotEvents(): Promise<any[]>;
/**
* Получает предматчевое событие по его ID.
* @param eventId - Идентификатор события.
* @returns Объект предматчевого события.
*/
getEventPrematch(eventId: number | string): Promise<any>;
/**
* Retrieves prematch tournaments based on the specified sport ID and minutes.
* @param sportId - The ID of the sport.
* @param minutes - The number of minutes ago for which data is to be retrieved.
* @returns A filtered list of prematch tournaments.
*/
getPrematchTournamentsByMinutes(sportId?: number, minutes?: number): Promise<any>;
/**
* Retrieves the headers of prematch tournaments based on the specified sport ID and minutes.
* @param sportId The ID of the sport. Defaults to 0 if not provided.
* @param minutes - The number of minutes ago for which data is to be retrieved.
* @returns A promise that resolves to an array of tournament headers.
*/
getPrematchTournamentsHeadersByMinutes(sportId?: number, minutes?: number): Promise<any>;
/**
* Sets or resets the live timestamp reset flag.
*
* @param value - Whether to enable live timestamp reset. Defaults to true.
*/
liveTimestampReset(value?: boolean): void;
/**
* Получает массив заголовков live событий с главными ставки.
* @description Для интервального выполнения запроса используется параметр ```this.liveTimestamp```
* который хранится в этом классе. После выполнения запроса, ```this.liveTimestamp```
* обновляется из ответа.
* @param requestFullEventsList - Флаг, указывающий, нужно ли запрашивать
* полный список событий или только изменения после предыдущего запроса.
* @param events - Массив ID live событий. В этом случае выбранные live события возвращаются со всеми ставками.
* @returns Промис, который разрешается в массив данных о live событиях.
*/
getLive(requestFullEventsList?: boolean, events?: (number | string)[]): Promise<I.ILiveDataResponce>;
/**
* Возвращает массив из одного полного лайв события со всеми ставками по ID .
* @param eventId - ID полного live события.
* @returns Массив с информацией о событии.
*/
getLiveEventsAndFullEvent(eventId: number | string): Promise<I.ILiveData[]>;
/**
* Возвращает полное лайв событие со всеми ставками по ID .
* @param eventId - ID полного live события.
* @returns Массив с информацией о событии.
*/
getLiveEventFull(eventId: number | string): Promise<I.ILiveData>;
/**
* Получает ограничения на ставку.
* @returns Объект с минимальным и максимальным значением ограничений на ставки.
*/
getBetsLimits(): Promise<any>;
/**
* Добавляет ставку в купон.
* @param basket - Корзина с информацией о ставке.
* @returns Результат операции добавления в бетслип или null, если операция не удалась.
*/
addToBetslip(basket: I.TAddBetslip): Promise<any>;
/**
* Добавляет бонус в купон.
* @param odd - Коэффициент, к которому добавляется бонус.
* @returns Результат операции или null, если результат не определен.
*/
addBonus(odd: number): Promise<any>;
/**
* Удаляет бонус из купона.
* @returns {Promise<boolean>} Возвращает true, если бонус успешно удален, в противном случае возвращает false.
*/
removeBonus(): Promise<boolean>;
/**
* Удаляет ставку из купона.
* @param basket - Объект, содержащий информацию о купоне.
* @returns Возвращает true, если элемент успешно удален, в противном случае возвращает false.
*/
removeFromBetslip(basket: I.TAddBetslip): Promise<any>;
/**
* Обновляет ставку в купоне.
* @param basket - Корзина с информацией о ставке.
* @returns Возвращает true, если ставка была успешно обновлена, в противном случае возвращает false.
*/
updateBet(basket: I.TAddBetslip): Promise<boolean>;
/**
* Получает информацию о билете.
* @description Требует авторизации.
* @returns {Promise<Betslip | null>} Объект с информацией о билете или null, если токен не установлен.
* @example
* ```typescript
{
BetslipType: 0,
Bets: [],
RecommendedAmount: 0,
bonuses: [
[ 'Koef', 9, 1.01 ],
[ 'Koef', 20, 1.02 ],
[ 'Koef', 50, 1.03 ],
[ 'Koef', 100, 1.04 ],
[ 'Koef', 200, 1.05 ],
[ 'Koef', 500, 1.06 ],
[ 'Kolvo', 5, 1.01 ],
[ 'Kolvo', 9, 1.02 ],
[ 'Kolvo', 22, 1.03 ],
[ 'Kolvo', 11, 1.04 ],
[ 'Kolvo', 13, 1.05 ],
[ 'Kolvo', 15, 1.06 ],
[ 'Perestavka', true, 1.03 ],
[ 'MinOdds', true, 1.02 ]
]
}
* ```
*/
getBetslip(): Promise<any>;
/**
* Очищает купон.
* @returns Промис, который разрешается в логическое значение, указывающее на успешность операции.
*/
clearBetslip(): Promise<boolean>;
/**
* Изменяет тип купона.
* @param betslipType - Тип купона.
* @returns Возвращает true, если тип купона успешно изменен, в противном случае возвращает false.
*/
changeBetslipType(betslipType: I.EBetslipType): Promise<boolean>;
/**
* Создает купон для размещения ставки.
* @param betslip - Массив с информацией о ставках.
* @param amount - Сумма ставки.
* @param acceptCahngeCoefs - Флаг, указывающий, принимать ли изменения коэффициентов.
* @param systemIndex - Размер системы (например, из 3-х событий по 2, значит передаем 2). Значение по умолчанию: -1 (если не система).
* @returns Созданный купон для размещения ставки.
*/
createCoupon(betslip: any[], amount: number, acceptCahngeCoefs: boolean, systemIndex?: number): I.TPlaceBetPayload;
/**
* Ставит ставку.
* @param payload - Параметры размещения ставки.
* @returns Результат размещения ставки.
*/
placeCoupon(payload: I.TPlaceBetPayload): Promise<any>;
/**
* Удаляет купон по указанному коду в течении 10 минут.
*
* @param {string} code - Код купона, который необходимо удалить.
* @returns {Promise<any | null>} Объект ответа или null, если пользователь не авторизован.
*/
deleteCoupon(code: string): Promise<{
data: boolean | null;
error: string | null;
status: number;
statusText: string;
}>;
/**
* Устанавливает настройки корзины ставок.
* @param betslipSettings - Настройки купона ставок.
* @returns Массив результатов или пустой массив, если пользователь не авторизован.
*/
setBetslipSettings(betslipSettings: I.TBetslipSettings): Promise<any>;
/**
* Получает список ставок пользователя, доступных для кэшаута.
* @returns Список ставок пользователя, доступных для кэшаута.
*/
getUserCashoutBets(): Promise<any>;
/**
* Метот делает попытку сделать CashOut для ставки
* @param betId - ID ставки.
* @returns Объект с ошибками, если возникли ошибки при выполнении запроса, или null, если запрос выполнен успешно.
*/
returnCashOutBet(betId: number): Promise<I.PutBetErrors | null>;
payBet(payload: I.TPayBetPayload): Promise<I.PutBetErrors | null>;
/**
* Retrieves the user's balance.
* @returns A promise that resolves to the user's balance.
*/
balance(): Promise<{
Amount: number;
} | {}>;
/**
*
* @returns
* item1 = Лимит кассы на постановку ставки
* item2 = Frozzen balanse
* ```
* { item1: 10000, currence1: '₴', item2: 2371, currence2: '₴' }
* ```
*/
balanceCashPoint(): Promise<I.IResponseData<I.ICashPointBalance | null>>;
/**
* Возвращает подробности ставки по номеру купона
* @param code
* @returns Объект, содержащий данные, статус и текст статуса ответа.
* ```
* { data, status, statusText }
*
* ```
*
*/
getBetByCoupon(code: number | string, locale?: I.ELocales): Promise<I.IResponseData<I.IBetCouponeResponse>>;
/**
* Выполняет погашение ставки.
* @param payload - Параметры для погашения ставки.
* ```
* {
* BetId: number;
* AmountOut: number;
* }
* ```
* @returns Результат выполнения погашения ставки.
*/
redeemTheBet(payload: I.IRedeemTheBetPayload): Promise<I.IResponseData<boolean>>;
getLimitForPoint(): Promise<any>;
/**
* Выполняет выход пользователя из системы.
* @returns Объект, содержащий информацию об успешности выхода и статусе авторизации пользователя.
*/
logout(): Promise<{
ok: boolean;
isLogged: any;
}>;
/**
* Изменяет пароль пользователя.
* @param payload - Объект, содержащий данные для изменения пароля. Doc: https://betseller.gitlab.io/bb-api-platforma/interfaces/Types.IChangePasswordOfficePayload.html
* @returns Возвращает `null` в случае, если пользователь не авторизован.
*/
changePassword(payload: I.IChangePasswordOfficePayload): Promise<{
ok: boolean;
status: any;
}>;
setRemoteLanguage(lang?: string): Promise<boolean>;
/**
* Получает содержимое ставки по идентификатору.
* @param betId - Идентификатор ставки.
* @returns Содержимое ставки.
*/
getBetContent(betId: number): Promise<any>;
/**
* Получает содержимое ставки по идентификатору.
* @param betId - Идентификатор ставки.
* @returns Содержимое ставки.
*/
getBetContentByLang(betId: number, lang?: string): Promise<any>;
/**
* Получает ставки пользователя.
* @param payload - Параметры запроса.
* @returns Промис, который разрешается с результатом запроса.
* @note Размер страницы должен быть не больше 20 строк на страницу
* @deprecated Use getUserBets02 method
*/
getUserBets(payload: I.TGetUserBetsPayload): Promise<any>;
/**
* Получает ставки пользователя.
* @param payload - Параметры запроса.
* @returns Промис, который разрешается с результатом запроса.
* @note Размер страницы должен быть не больше 20 строк на страницу
* @deprecated Use getUserBets02 method
*/
getUserBets02(payload: I.TGetUserBetsPayload): Promise<{
data: any;
error: string | string[] | null;
status: number;
statusText: string;
}>;
/**
* Fetches user bets with administrative filters and pagination.
*
* @param payload - The payload containing pagination and filter information.
* @returns A promise that resolves to an object containing the data, error, status, and statusText.
*
* @template I.IPaginationPayload<I.IUsersBetsAdmPayload> - The type of the pagination payload.
* @template { data: any; error: string | string[] | null; status: number; statusText: string; } - The return type of the promise.
*
* @example
* ```typescript
* const payload = {
* Filter: {
* DateStart: "2024-11-01T00:00:00", // in 'Europe/Kiev' timezone
* DateEnd: "2024-11-16T00:00:00", // in 'Europe/Kiev' timezone
* UserId: 123,
* // other filter fields...
* },
* PageNumber: 1,
* PageSize: 20,
* };
* const result = await getUserBetsAdm(payload);
* console.log(result.data);
* ```
*/
getUserBetsAdm(payload: I.IPaginationPayload<I.IUsersBetsAdmPayload>): Promise<{
data: any;
error: string | string[] | null;
status: number;
statusText: string;
}>;
/** Конвертирует различные представления корзины в единый формат
* @param betslipItem - элемент корзины
*/
convertBasketToPost(betslipItem: I.IBetslipItems): I.IAddToBasket;
/**
* Преобразует бонусы в массив.
* @param bonus Объект, содержащий бонусы.
* @returns Массив бонусов.
*/
convertBonuses(bonus: Record<string, any>): any[];
/**
* Получает полные данные о текущих событиях в режиме реального времени без сохранения временной метки.
* @returns Промис, который разрешается в массив объектов типа I.ILiveData.
*/
private getFullLiveWithoutSaveTimeStamp;
/**
* Retrieves sports events (live & prematch) based on the provided search text.
* @param searchText - The text to search for.
* @returns A promise that resolves to an array of ISearchEventsData.
*/
getSportsEventsSearch(searchText: string): Promise<I.ISearchEventsData[]>;
/**
* Проверяет авторизацию пользователя.
* @returns Объект, содержащий информацию о состоянии авторизации.
*/
checkAuth(): Promise<{
isSinged: boolean;
status: number;
statusText: string;
}>;
/**
* Получает информацию о пользователе.
*
* @param {I.IGetUserInfoPayload} payload - Параметры запроса, которые могут содержать:
* @param {number | string} payload.userAccount - Учетная запись пользователя (необязательный параметр).
* @param {string} payload.userName - Имя пользователя (необязательный параметр).
* @param {number | string} payload.userId - Идентификатор пользователя (необязательный параметр).
*
* @returns {Promise<{ userInfo: I.IGetUserInfoResponse | null; error: string | null; status: number; statusText: string; }>} Объект, содержащий информацию о пользователе, статус и текст статуса.
*
* @example
* const payload = {
* userAccount: 12345,
* userName: 'JohnDoe',
* userId: '67890'
* };
* const result = await getUserInfo(payload);
* // Возвращает объект с информацией о пользователе, статусом и текстом статуса.
*/
getUserInfo(payload: I.IGetUserInfoPayload): Promise<{
userInfo: I.IGetUserInfoResponse | null;
error: string | null;
status: number;
statusText: string;
}>;
/**
* Получает информацию о пользователе с транзакциями вывода средств.
* @param payload - Параметры запроса.
* @returns Объект, содержащий информацию о пользователе, статус и текст статуса.
* @example
```
IGetUserInfoPayload {
userAccount?: number | string;
userName?: string;
userId?: number | string;
}
```
*/
getUserInfoWithWithdrawalTrans(payload: I.IGetUserInfoPayload): Promise<{
userInfo: I.IGetUserInfoResponse | null;
error: string | null;
status: number;
statusText: string;
}>;
/**
* Получает список заказов для вывода заказы для вывода.
* @returns Объект, содержащий данные о заказах для вывода, статус и текст статуса.
*/
getOrdersForWithdrawal(): Promise<{
withdrawalData: I.IOrderForWithdrawal;
status: number;
statusText: string;
}>;
/**
* Вносит деньги на счет игрока.
*
* @param {I.IDepositMoneyPayload} payload - Параметры для внесения денег.
* @returns {Promise<{ depositInfo: boolean | null; error: string | null; status: number; statusText: string; }>} Объект, содержащий данные, статус и текст статуса.
*
* @example
* const payload = {
* userId: 1,
* sum: 100
* };
* const result = await depositMoney(payload);
* // Возвращает объект с данными, статусом и текстом статуса.
*/
depositMoney(payload: I.IDepositMoneyPayload): Promise<{
depositInfo: boolean | null;
error: string | null;
status: number;
statusText: string;
}>;
/**
* Метод для вывода денег с баланса игрока.
*
* @param {I.IWithdrawlMoneyPayload} payload - Параметры вывода денег.
* @returns {Promise<{ withdrawlInfo: boolean | null; error: string | null; status: number; statusText: string; }>} Объект, содержащий данные, статус и текст статуса.
*
* @example
* const payload = {
* userId: 1,
* amount: 100,
* code: 'ABC123'
* };
* const result = await withdrawlMoney(payload);
* // Возвращает объект с данными, статусом и текстом статуса.
*/
withdrawlMoney(payload: I.IWithdrawlMoneyPayload): Promise<{
withdrawlInfo: boolean | null;
error: string | null;
status: number;
statusText: string;
}>;
/**
* Метод для вывода денег с баланса игрока с использованием ID транзакции.
*
* @param {I.IWithdrawlMoneyByTransactionPayload} payload - Параметры вывода денег.
* @returns {Promise<{ data: boolean | null; error: string | null; status: number; statusText: string; }>} Объект, содержащий данные, статус и текст статуса.
*
* @example
* const payload = {
* userId: 1,
* transactionId: 1,
* };
* const result = await withdrawlMoney(payload);
* // Возвращает объект с данными, статусом и текстом статуса.
*/
withdrawlMoneyByTransaction(payload: I.IWithdrawlMoneyByTransactionPayload): Promise<{
data: I.IApiResponse<boolean> | null;
error: string | null;
status: number;
statusText: string;
}>;
/**
* Проверяет, существует ли пользователь с указанным логином.
* @param userName - Логин пользователя.
* @returns Объект, содержащий информацию о наличии пользователя.
*/
isUserExists(userName: string): Promise<{
data: boolean;
status: number;
statusText: string;
}>;
/**
* Создает интернет пользователя для кассы !!! напрямую в БД
* @param payload - Параметры регистрации пользователя.
* @returns Объект, содержащий информацию о результате операции.
* @example
* const SignUpPayloadDirect: I.TSignUpPayload = {
* PartnerSiteUid: "partner.win",
* EmailOrPhone: "380671110000", // телефон записываем без "+"
* PointId: 85,
* Password: "Password",
* PasswordRepeat: "Password",
* }
*/
createInternetUser(payload: I.TSignUpPayload): Promise<{
created: boolean | null;
error: string | null;
status: number;
statusText: string;
}>;
/**
* Получает GUID кассира для автологина в офисе .
* @returns Объект, содержащий GUID кассира, ошибку, статус и текст статуса.
*/
getCashierGuid(): Promise<{
guid: string | null;
error: string | null;
status: number;
statusText: string;
}>;
/**
* Получает список игроков кассира.
* @param {I.ICashierPlayersPayload} payload - Параметры запроса.
* @returns {Promise<{ data: I.ICashierPlayersResponse; status:number; statusText:string; }>} - Объект с данными, статусом и текстом статуса.
* @example
* const payload = {
* CurrentPage: 1,
* CountItemOnPage: 10
* };
* const response = await getCashierPlayers(payload);
* console.log(response.data); // Выводит данные игроков
* console.log(response.status); // Выводит статус ответа
* console.log(response.statusText); // Выводит текст статуса ответа
*/
getCashierPlayers({ CurrentPage, CountItemOnPage }: I.ICashierPlayersPayload): Promise<{
data: I.ICashierPlayersResponse;
status: number;
statusText: string;
}>;
/** Получает фильтрованный список ставок на кассе */
getTakedBets(getBetsPayload: I.IBetsPointsPayload): Promise<{
betsData: I.TTakedBetsData;
error: string | string[] | null;
status: number;
statusText: string;
}>;
getBetsStatistic(betsStatisticPayload: I.IBetsStatisticPayload): Promise<{
data: any;
error: string | string[] | null;
status: number;
statusText: string;
}>;
getMainFinanceReport(betsStatisticPayload: I.IBetsStatisticPayload): Promise<{
data: any;
error: string | string[] | null;
status: number;
statusText: string;
}>;
/** Возвращает справочники
* @example
* ```
* {
Culture: string;
HandBooks: ('Roles' | 'AccessRoles' | 'Pointers' | 'PointersGroups' | 'PlayerLevel' | 'Languages' | 'SearchType' | 'All')[];
}
* ```
* */
getAllHandbooks(payload: I.IGetAllHandbooksPayload): Promise<{
data: any;
error: string | string[] | null;
status: number;
statusText: string;
}>;
getAvailableHandBooks(): Promise<{
data: any;
error: any;
status: number;
statusText: string;
}>;
/** Создаёт пользователя из Temp таблицы */
createUserFromTempGetInfo(userName: string): Promise<{
data: any;
error: any;
status: number;
statusText: string;
}>;
/** Возвращает данные незарегистрированного пользователя из временной таблицы */
getUserInfoFromTemp(userName: string): Promise<{
data: I.IApiResponse<any> | null;
error: string | null;
status: number;
statusText: string;
}>;
getBaseRates(baseCurrency: string): Promise<{
data: any;
status: number;
statusText: string;
}>;
/**
* Асинхронно получает список пользователей.
*
* @param {I.IPaginationPayload<I.IGetUsersListFilter>} payload - Параметры запроса для получения списка пользователей. https://betseller.gitlab.io/bb-api-platforma/interfaces/Types.IGetUsersListPayload.html
* @returns {Promise<I.IApiResponse<I.IGetUsersListData> | null>} Объект ответа API, содержащий данные списка пользователей, или null в случае ошибки.
*/
getUsersList(payload: I.IPaginationPayload<I.IGetUsersListFilter>): Promise<{
data: I.IApiResponse<I.IGetUsersListData> | null;
error: string | null;
status: number;
statusText: string;
}>;
/**
* Асинхронно получает список Касс.
*
* @param payload - Параметры пагинации и фильтрации для получения списка точек.
* @returns Обработанный ответ API, содержащий страницы точек или null.
*/
getPointsList(payload: I.IPaginationPayload<I.IGetPointsListFilter>): Promise<{
data: I.IApiResponse<I.IPointPages> | null;
error: string | null;
status: number;
statusText: string;
}>;
/**
* Выполняет запрос на снятие денег с аккаунта.
*
* @param payload - Объект, содержащий данные для снятия денег с аккаунта. https://betseller.gitlab.io/bb-api-platforma/interfaces/Types.IAccountMoneyPayload.html
* @returns Промис, который разрешается с данными ответа или null в случае ошибки.
*/
accountMoneyWithdraw(payload: I.IAccountMoneyPayload): Promise<{
data: I.IApiResponse<boolean> | null;
error: string | null;
status: number;
statusText: string;
}>;
/**
* Асинхронный метод для добавления денег на счет.
*
* @param payload - Объект, содержащий данные для добавления денег на счет. https://betseller.gitlab.io/bb-api-platforma/interfaces/Types.IAccountMoneyPayload.html
* @returns Обработанный ответ, содержащий данные типа boolean или null.
*/
accountMoneyAdd(payload: I.IAccountMoneyPayload): Promise<{
data: I.IApiResponse<boolean> | null;
error: string | null;
status: number;
statusText: string;
}>;
/**
* Sets a password for a cashier on behalf of an Admin, SubAdmin, or Owner.
* @param payload - An object containing the data for changing the password. Doc: https://betseller.gitlab.io/bb-api-platforma/interfaces/Types.ISetPasswordOfficePayload.html
* @returns Returns `null` if the user is not authorized.
*/
setPassword(payload: I.ISetPasswordOfficePayload): Promise<{
data: boolean | null;
error: string | null;
status: number;
statusText: string;
}>;
pingApi(): Promise<{
data: any;
error: string | null;
status: number;
statusText: string;
}>;
/**
* Retrieves a list of user transactions.
*
* @param payload - The payload containing pagination and filter information.
* @returns A promise that resolves to the API response containing user transactions or null.
*
* @remarks
* This method sends a POST request to the `/GetUserTransactions` endpoint of the OFFICE API.
* * (102)
*
* @example
* ```typescript
* const payload = {
* page: 0,
* pageSize: 10,
* Filter: {
* DateBeg: string
* DateEnd: string;
* ...
* }
* };
* const transactions = await api.getUserTransactions(payload);
* console.log(transactions);
* ```
*/
getUserTransactions(payload: I.IPaginationPayload<I.IGetUsersTransactionsFilter>): Promise<{
data: I.IApiResponse<any> | null;
error: string | null;
status: number;
statusText: string;
}>;
/**
* Выводит список подтверждённых заказов на вывод средств.
*
* @remarks
* Endpoint: `/api/v1/office/en-US/ConfirmWithdrawalOrder`
*
* @param payload - Параметры для подтверждения заказа на вывод средств.
* @returns Возвращает `true`, если заказ успешно подтвержден, иначе `null`.
*
* @example
* Пример запроса:
* ```typescript
* const payload: I.IConfirmWithdrawalOrderPayload = {
* transactionId: 123456, // ID транзакции
* confirmedAmount: 100.50 // Подтвержденная сумма
* };
*
* const result = await api.confirmWithdrawalOrder(payload);
* console.log(result); // true или null
* ```
*/
getConfirmedWithdrawalOrders(payload: I.IGetConfirmedWithdrawalOrdersPayload): Promise<{
data: I.IApiResponse<any> | null;
error: string | null;
status: number;
statusText: string;
}>;
/** only Admin & SubAdmin */
getWithdrawalOrdersForConfirmed(payload?: {
culture?: string;
userId?: number;
}): Promise<{
data: I.IApiResponse<any> | null;
error: string | null;
status: number;
statusText: string;
}>;
сonfirmWithdrawalOrder(payload: I.IConfirmWithdrawalOrderPayload): Promise<{
data: I.IApiResponse<any> | null;
error: string | null;
status: number;
statusText: string;
}>;
/**
* Cancels a withdrawal order.
*
* @param payload - The payload containing the details required to cancel the withdrawal order.
*
* @remarks
* This method sends a POST request to the `/api/v2/orders/CancelOrderedTransaction` endpoint of the OFFICE API.
* * (102)
*
* @returns A promise that resolves to the API response.
*/
cancelWithdrawalOrder(payload: I.ICancelWithdrawalOrderPayload): Promise<{
data: I.IApiResponse<any> | null;
error: string | null;
status: number;
statusText: string;
}>;
/** Возвращает содержание ставки по betId и userId */
getBetContentAdm(payload: I.IGetBetContentAdmPayload): Promise<{
data: I.IApiResponse<any> | null;
error: string | null;
status: number;
statusText: string;
}>;
/**
* Retrieves a list of user sites from the slider API endpoint.
*
* Makes a GET request to the `/usersites` endpoint using the NV30 API version.
*
* @returns {Promise<I.IApiResponse<any> | null>} A promise that resolves to the API response containing the sites list data, or null if the request fails
*
* @async
*/
sliderGetSitesList(): Promise<{
data: I.IApiResponse<any> | null;
error: string | null;
status: number;
statusText: string;
}>;
sliderGetSectionData({ siteTag, groupTag }: {
siteTag: string;
groupTag: string;
}): Promise<{
data: I.IApiResponse<any> | null;
error: string | null;
status: number;
statusText: string;
}>;
/**
* Retrieves section data for a slider component based on site and group tags.
*
* @param siteTag - The site identifier tag used to specify which site's data to retrieve
* @param groupTag - The group identifier tag used to specify which group's data within the site
* @returns A promise that resolves to the API response containing section data or null
*
* @example
* ```typescript
* const sectionData = await api.sliderGetSectionData('main-site', 'featured-games');
* ```
*/
sliderPutImage(payload: I.TSliderPutImagePayload): Promise<{
data: I.IApiResponse<any> | null;
error: string | null;
status: number;
statusText: string;
}>;
/**
* Deletes an image from the storage by making a DELETE request to the file endpoint.
*
* @param payload - The payload containing deletion parameters
* @param payload.siteTag - The site tag identifier
* @param payload.groupTag - The group tag identifier
* @param payload.fileName - The name of the file to delete
* @param payload.fileId - Optional file ID that speeds up deletion when provided
* @returns Promise that resolves to the API response containing deletion result or null
* @throws May throw an error if the DELETE request fails or if required parameters are missing
*/
sliderDeleteImage(payload: I.TSliderDeleteImagePayload): Promise<{
data: I.IApiResponse<any> | null;
error: string | null;
status: number;
statusText: string;
}>;
/**
* Sets or updates a slide in the slider component.
*
* @param payload - The slide configuration payload
* @param payload.siteTag - Site identifier tag for the slide
* @param payload.groupTag - Group identifier tag for categorizing the slide
* @param payload.fileName - File name for the slide image/content. Optional, uses default if not provided
* @param payload.direction - Sets the movement of a slide in the list. Can be 'up', 'down', '1', or '-1'
* @returns Promise resolving to API response with slide operation result
* @throws Will throw an error if the API request fails or returns an error status
*/
sliderMoveSlide(payload: I.TSliderSetSlidePayload): Promise<{
data: I.IApiResponse<any> | null;
error: string | null;
status: number;
statusText: string;
}>;
/**
* Searches for prematch events using the NV20 API.
*
* @param searchString - The search string to query events.
* (Note: that all words containing cvr and words with one letter are removed from the searchString)
* @param options - Optional parameters to refine the search.
* @param options.LIMIT - Specifies the number of results to return. Defaults to `{ from: 0, size: 30 }` if not provided.
* @param options.negativeString - Excludes results containing this string.
* @param options.sportId - Filters events by the specified sport ID.
* @param options.tournamentId - Filters events by the specified tournament ID.
* @returns A promise that resolves with the search results or `null` if the request fails.
*/
searchPrematchEventsNv20(searchString: string, options?: I.RedisPrematchSearchParams): Promise<{
data: any;
error: string | null;
status: number;
statusText: string;
}>;
/**
* Updates or creates a slider slide configuration.
*
* @param payload - The slider slide configuration data
* @param payload.siteTag - Site identifier tag
* @param payload.groupTag - Group identifier tag
* @param payload.fileName - File name for the slide. Optional. If not present, the default value will be used.
* @param payload.eventId - ID of the sport event. If eventId is specified, additional parameters will be added: Teams Start date and main bets
* @param payload.finish - The date when the slide will stop displaying
* @param payload.to - Target page transition when clicking on a slide in vue router format
* @param payload.direction - Sets the movement of a slide in the list. Can be 'up', 'down', '1', or '-1'
* @returns Promise that resolves to the API response containing the slide data or null
*/
sliderSetSlide(payload: I.TSliderSetSlidePayload): Promise<{
data: I.IApiResponse<any> | null;
error: string | null;
status: number;
statusText: string;
}>;
/**
* Removes a slide from the slider.
*
* @param payload - The payload containing slide information to remove
* @param payload.siteTag - Site tag identifier
* @param payload.groupTag - Group tag identifier
* @param payload.fileName - File name of the slide to remove
* @returns Promise that resolves to API response data or null
* @throws Will throw an error if the request fails
*/
sliderRemoveSlide(payload: I.TSliderSetSlidePayload): Promise<{
data: I.IApiResponse<any> | null;
error: string | null;
status: number;
statusText: string;
}>;
/**
* Retrieves bonuses from the API with optional filtering parameters.
*
* @param {Object} options - The request options
* @param {string} [options.start] - The start date in format ISO string for filtering bonuses (optional)
* @param {string} [options.finish] - The end date in format ISO string for filtering bonuses (optional)
* @param {string} [options.code] - The bonus code to filter by (optional)
*
* @returns {Promise<any>} A promise that resolves to the API response containing bonuses data,
* or null if the response is invalid
*
* @throws {Error} May throw an error if the API request fails
*/
getBonuses({ start, finish, code }: {
start?: string;
finish?: string;
code?: string;
}): Promise<{
data: I.IApiResponse<any> | null;
error: string | null;
status: number;
statusText: string;
} | {
data: {};
error: string;
status: number;
statusText: string;
}>;
/** Special methods */
getUserForwardedUrl(payload: I.TPayloadUserForwardedUrl): Promise<{
data: I.IApiResponse<any> | null;
error: string | null;
status: number;
statusText: string;
}>;
}