UNPKG

@nkhind/vivawallet-sdk

Version:
106 lines (105 loc) 3.49 kB
"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;