@nkhind/vivawallet-sdk
Version:
Non-Official VivaWallet API SDK
106 lines (105 loc) • 3.49 kB
JavaScript
"use strict";
Object.defineProperty(exports, "__esModule", { value: true });
const VivaAuth_class_1 = require("../vivabases/VivaAuth.class");
const axiosInstance_ts_1 = require("../utils/axiosInstance.ts");
class VivaPayments extends VivaAuth_class_1.VivaAuth {
constructor(datas) {
super(datas);
}
/** -------------------- PAYMENT -------------------- */
/** Make new VivaWallet order, return `orderCode` */
async createOrder(orderData) {
const vivaToken = (await this.getVivaToken()).data;
if (!vivaToken) {
return {
success: false,
message: 'Init not called',
code: 'initerror',
data: null,
};
}
try {
const response = await axiosInstance_ts_1.useAxios.post(this.endpoints.payment.create.url, orderData, {
headers: {
Authorization: 'Bearer ' + vivaToken,
},
});
if (!response.data) {
return {
success: false,
message: 'Failed to create order',
code: 'nodatas',
data: null,
};
}
return {
success: true,
message: 'Order created successfully',
data: {
orderCode: response.data.orderCode,
},
};
}
catch (e) {
console.error('Viva Order Error', e);
return {
success: false,
message: 'Failed to create order',
code: 'error',
data: null,
};
}
}
/** Allow cancel operation on non-validate orders, return `true` if the order canceled successfully */
async cancelOrder(orderCode) {
if (!this.merchantId || !this.apikey) {
return {
success: false,
message: 'Init not called',
code: 'initerror',
};
}
if (!orderCode) {
return {
success: false,
message: 'Order code is required',
code: 'invalidordercode',
};
}
try {
const cancelUrl = this.endpoints.payment.cancel.url.replace('{orderCode}', orderCode);
const response = await axiosInstance_ts_1.useAxios.delete(cancelUrl, {
headers: {
Authorization: 'Bearer ' + this.getVivaBasicToken(),
},
});
if (!response.data) {
return {
success: false,
message: 'Failed to cancel order',
code: 'nodatas',
};
}
return {
success: true,
message: 'Order canceled successfully',
};
}
catch (e) {
console.error('Viva Cancel Order Error', e);
if (e.response?.status === 404) {
return {
success: false,
message: 'Order already canceled or not found',
code: 'alreadycanceled',
};
}
return {
success: false,
message: 'Failed to cancel order',
code: 'error',
};
}
}
}
exports.default = VivaPayments;