UNPKG

@isor/sink

Version:
68 lines (53 loc) 1.44 kB
import Axios from "axios"; import { Equal } from "./equal"; import { ServiceOverseer } from "./overseer"; import { Service } from "./service"; const BASE_URL = "https://api.sms-activate.org/stubs/handler_api.php"; export class Sink { constructor(private accessToken: string) {} async balance() { const response = await Axios.get(BASE_URL, { params: { api_key: this.accessToken, action: "getBalance", }, }); const [targetId, balance] = response.data.split(":"); Equal(targetId); return { raw: response.data, balance: parseFloat(balance), currency: "RUB", }; } async serviceInfo(service: Service) { const response = await Axios.get(BASE_URL, { params: { api_key: this.accessToken, action: "getPrices", service: service, country: 0, }, }); Equal(response.data); const { cost, count } = response.data["0"][service]; return { price: cost, currency: "RUB", stock: count, }; } async lease(service: Service): Promise<ServiceOverseer> { const response = await Axios.get(BASE_URL, { params: { api_key: this.accessToken, action: "getNumber", service, forward: 0, }, }); const [targetId, id, phone] = response.data.split(":"); Equal(targetId); return new ServiceOverseer(this.accessToken, id, phone); } }