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
JavaScript
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;
}
},
})