simpay-typescript-api
Version:
SimPay.pl API wrapper
163 lines • 6.24 kB
JavaScript
import axios, {} from 'axios';
export class Sms {
key;
password;
client;
constructor(key, password) {
this.key = key;
this.password = password;
this.client = axios.create({
baseURL: 'https://api.simpay.pl/sms',
headers: {
'X-SIM-KEY': this.key,
'X-SIM-PASSWORD': this.password,
'X-SIM-VERSION': '3.1.0',
'X-SIM-PLATFORM': 'TYPESCRIPT',
},
});
}
/*
https://docs.simpay.pl/pl/typescript/?typescript#sms-pobieranie-listy-uslug
*/
async getServices() {
const result = [];
let response = await this.client.get('/');
result.push(...response.data.data);
while (response.data.pagination.links.next_page !== null) {
response = await this.client.get(`/?page=${response.data.pagination.current_page + 1}`);
result.push(...response.data.data);
}
return result.map((e) => {
e.created_at = new Date(e.created_at.replace(' ', 'T'));
return e;
});
}
async getServicesPaginated(page, pageSize) {
const query = {};
if (page)
query.page = `${page}`;
if (pageSize)
query.limit = `${pageSize}`;
const url = `/?${new URLSearchParams(query).toString()}`;
const response = (await this.client.get(url)).data;
response.data = response.data.map((e) => {
e.created_at = new Date(e.created_at.replace(' ', 'T'));
return e;
});
return response;
}
/*
https://docs.simpay.pl/pl/typescript/?typescript#sms-pobieranie-informacji-o-usludze
*/
async getService(id) {
const service = (await this.client.get(`/${id}`)).data.data;
service.created_at = new Date(service.created_at.replace(' ', 'T'));
return service;
}
/*
https://docs.simpay.pl/pl/typescript/?typescript#sms-pobieranie-listy-transakcji
*/
async getTransactions(serviceId) {
const result = [];
let response = await this.client.get(`/${serviceId}/transactions`);
result.push(...response.data.data);
while (response.data.pagination.links.next_page !== null) {
response = await this.client.get(`/${serviceId}/transactions?page=${response.data.pagination.current_page + 1}`);
result.push(...response.data.data);
}
return result.map((e) => {
e.send_at = new Date(e.send_at.replace(' ', 'T'));
return e;
});
}
async getTransactionsPaginated(serviceId, page, pageSize) {
const query = {};
if (page)
query.page = `${page}`;
if (pageSize)
query.limit = `${pageSize}`;
const url = `/${serviceId}/transactions?${new URLSearchParams(query).toString()}`;
const response = (await this.client.get(url)).data;
response.data = response.data.map((e) => {
e.send_at = new Date(e.send_at.replace(' ', 'T'));
return e;
});
return response;
}
/*
https://docs.simpay.pl/pl/typescript/?typescript#sms-pobieranie-informacji-o-transakcji
*/
async getTransaction(serviceId, transactionId) {
const transaction = (await this.client.get(`/${serviceId}/transactions/${transactionId}`))
.data.data;
transaction.send_at = new Date(transaction.send_at.replace(' ', 'T'));
return transaction;
}
/*
https://docs.simpay.pl/pl/typescript/?typescript#sms-pobieranie-dostepnych-numerow-dla-uslugi
*/
async getServiceNumbers(serviceId) {
const result = [];
let response = await this.client.get(`/${serviceId}/numbers`);
result.push(...response.data.data);
while (response.data.pagination.links.next_page !== null) {
response = await this.client.get(`/${serviceId}/numbers?page=${response.data.pagination.current_page + 1}`);
result.push(...response.data.data);
}
return result;
}
async getServiceNumbersPaginated(serviceId, page, pageSize) {
const query = {};
if (page)
query.page = `${page}`;
if (pageSize)
query.limit = `${pageSize}`;
const url = `/${serviceId}/numbers?${new URLSearchParams(query).toString()}`;
return (await this.client.get(url)).data;
}
/*
https://docs.simpay.pl/pl/typescript/?typescript#sms-informacji-o-pojedynczym-numerze-uslugi
*/
async getServiceNumber(serviceId, number) {
return (await this.client.get(`/${serviceId}/numbers/${number}`)).data.data;
}
/*
https://docs.simpay.pl/pl/typescript/?typescript#sms-pobieranie-wszystkich-dostepnych-numerow
*/
async getNumbers() {
const result = [];
let response = await this.client.get('/numbers');
result.push(...response.data.data);
while (response.data.pagination.links.next_page !== null) {
response = await this.client.get(`/numbers?page=${response.data.pagination.current_page + 1}`);
result.push(...response.data.data);
}
return result;
}
async getNumbersPaginated(page, pageSize) {
const query = {};
if (page)
query.page = `${page}`;
if (pageSize)
query.limit = `${pageSize}`;
const url = `/numbers?${new URLSearchParams(query).toString()}`;
return (await this.client.get(url)).data;
}
/*
https://docs.simpay.pl/pl/typescript/?typescript#sms-pobieranie-pojedynczego-numeru-sms
*/
async getNumber(number) {
return (await this.client.get(`/numbers/${number}`)).data.data;
}
/*
https://docs.simpay.pl/pl/typescript/?typescript#sms-weryfikacja-poprawnosci-kodu
*/
async verifySmsCode(serviceId, code, number) {
const response = (await this.client.post(`/${serviceId}`, { code, number })).data.data;
if (response.used_at) {
response.used_at = new Date(response.used_at.replace(' ', 'T'));
}
return response;
}
}
//# sourceMappingURL=sms.js.map