zibal-platform
Version:
Zibal Platform Module
95 lines (78 loc) • 2.27 kB
JavaScript
const urls = require("./urls");
const axios = require("axios");
const {getPersianMessage} = require("./errors");
class ZibalPlatform {
token = "";
/*
* Initialize Zibal with Your Platform API Token
* @param {object} config Your Config Object
* @param {string} config.token Your API Token
* */
constructor(config = {}) {
const {token = ""} = config;
this.init({token});
}
/**
* Set Token
* @param {string} token Your API Token
* */
setToken(token) {
this.token = token;
}
init({token}) {
this.setToken(token)
}
request(url, data) {
return new Promise((resolve, reject) => {
if (!this.token) {
reject({
result: "2",
message: "توکن به درستی ارسال نشده است."
})
return;
}
axios.post(url, data, {
headers: {
Authorization: `Bearer ${this.token}`
}
}).then(response => {
if (response.status === 200) {
resolve({
statusCode: response.status,
...response.data
})
}
}).catch(err => {
reject({
statusCode: err.response.status,
...err.response.data
})
})
})
}
createSubmerchant(data) {
return this.request(urls.createSubmerchant, data)
}
submerchantList(data) {
return this.request(urls.submerchantList, data)
}
editSubmerchant(data) {
return this.request(urls.editSubmerchant, data)
}
checkoutQueue(data) {
return this.request(urls.checkoutQueue, data)
}
createWallet(data) {
return this.request(urls.createWallet, data)
}
checkoutReport(data) {
return this.request(urls.checkoutReport, data)
}
walletCheckout(data) {
return this.request(urls.walletCheckout, data)
}
walletBalance(data) {
return this.request(urls.walletBalance, data)
}
}
module.exports = ZibalPlatform;