UNPKG

educa-sdk

Version:

A JavaScript SDK for interacting with the Educa backend API (Admin, Staff, and Student methods)

144 lines (134 loc) 4.01 kB
import request from '../api/request.js'; import PaystackPop from '@paystack/inline-js'; export const wallet = () => ({ balance: async ({ params = {}, onSuccess, onError } = {}) => { try { const data = await request({ url: '/v1/wallet/get_wallet_balance/', params: params, }); onSuccess?.(data); return data; } catch (err) { onError?.(err); throw err; } }, log: async ({ params = {}, onSuccess, onError } = {}) => { try { const data = await request({ url: '/v1/wallet/get_wallet_log/', params: params, }); onSuccess?.(data); return data; } catch (err) { onError?.(err); throw err; } }, fund: async ({ formData = {}, onSuccess, onError } = {}) => { try { const data = await request({ method: 'POST', url: '/v1/wallet/fund_wallet/', data: formData }); onSuccess?.(data); return data; } catch (err) { onError?.(err); throw err; } }, makePayment: async ({ formData = {}, onSuccess, onError } = {}) => { try { const popup = new PaystackPop(); popup.newTransaction({ key: formData.paystack_public_key, email: formData.email, amount: Number(formData.amount), reference: formData.reference, //channels: ['card'], onSuccess: (response) => { onSuccess?.(response) return response }, onError: (response) => { onError?.(response) return response } }) } catch (err) { onError?.(err); throw err; } }, verifyPayment: async ({ params = {}, onSuccess, onError } = {}) => { try { const data = await request({ url: '/v1/wallet/verify_payment/', params: params }); onSuccess?.(data); return data; } catch (err) { onError?.(err); throw err; } }, topupHistory: async ({ params = {}, onSuccess, onError } = {}) => { try { const data = await request({ url: '/v1/wallet/get_topup_history/', params: params }); onSuccess?.(data); return data; } catch (err) { onError?.(err); throw err; } }, initiateWithdrawal: async ({ formData = {}, onSuccess, onError } = {}) => { try { const data = await request({ method: 'POST', url: '/v1/wallet/initiate_withdrawal/', data: formData }); onSuccess?.(data); return data; } catch (err) { onError?.(err); throw err; } }, makeWithdrawal: async ({ formData = {}, onSuccess, onError } = {}) => { try { const data = await request({ method: 'POST', url: '/v1/wallet/make_withdrawal/', data: formData }); onSuccess?.(data); return data; } catch (err) { onError?.(err); throw err; } }, withdrawalHistory: async ({ params = {}, onSuccess, onError } = {}) => { try { const data = await request({ url: '/v1/wallet/get_withdrawal_history/', params: params }); onSuccess?.(data); return data; } catch (err) { onError?.(err); throw err; } }, })