spworlds
Version:
Library for SPWorlds API
92 lines (91 loc) • 3.99 kB
TypeScript
import type { Card, CardInfo, CardOwner, PaymentReq, User } from './types.js';
export declare class SPWorlds {
private authorization;
private token;
private apiTimeout;
private APIEndpoint;
private requestAPI;
/**
* Класс для работы с SPWorlds API
* @param id ID карты
* @param token Токен карты
* @param apiTimeout Таймаут запроса к API
* @param APIEndpoint Вы можете указать другой API сервер (например https://spworlds.org). По умолчанию: https://spworlds.ru
*/
constructor({ id, token, apiTimeout, APIEndpoint }: {
id: string;
token: string;
apiTimeout?: number;
APIEndpoint?: string;
});
/**
* Проверка доступности SPWorlds API
* @returns Состояние API
*/
ping: () => Promise<boolean>;
/**
* Создание банковского перевода
* @param receiver Номер карты получателя
* @param amount Сумма перевода
* @param comment Комментарий к переводу
* @returns Баланс карты
*/
createTransaction: ({ receiver, amount, comment }: {
receiver: string;
amount: number;
comment: string;
}) => Promise<{
balance: string;
}>;
/**
* Получение информации о карте
* @returns Баланс и подключенный webhook
*/
getCardInfo: () => Promise<CardInfo>;
/**
* Получение информации о владельце токена
* @returns Никнейм, статус, роли, город, банковские карты и время создания
*/
getCardOwner: () => Promise<CardOwner>;
/**
* Получение карт пользователя
* @param Nickname Никнейм пользователя
* @returns Массив с банковскими картами
*/
getCards: (nickname: string) => Promise<Array<Card | undefined>>;
/**
* Получение ника игрока
* @param discordId ID пользователя Discord
* @returns Никнейм и Minecraft UUID игрока
*/
findUser: (discordId: string) => Promise<User | null>;
/**
* Изменение вебхука карты
* На вебхук будут отправляться все новые транзакции связанные с картой
* @param url Ссылка на вебхук
* @returns ID карты и обновленный webhook
*/
setWebhook: (url: string) => Promise<{
id: string;
webhook: string;
}>;
/**
* Создание запроса на оплату
* @param items Товары транзакции
* @param redirectUrl URL страницы, на которую попадет пользователь после оплаты
* @param webhookUrl URL, куда наш сервер направит запрос, чтобы оповестить ваш сервер об успешной оплате
* @param data Cюда можно поместить любые полезные данных. Ограничение - 100 символов.
* @returns Ссылка на страницу оплаты, на которую нужно перенаправить пользователя
*/
initPayment: ({ items, redirectUrl, webhookUrl, data }: PaymentReq) => Promise<{
code: string;
card: string;
url: string;
}>;
/**
* Проверка валидности вебхука
* @param body Все данные, пришедшие по вебхуку
* @param hashHeader Значение хедера `X-Body-Hash`
*/
validateHash: (body: string | object, hashHeader: string) => boolean;
}