educa-sdk
Version:
A JavaScript SDK for interacting with the Educa backend API (Admin, Staff, and Student methods)
87 lines (81 loc) • 2.43 kB
JavaScript
import request from '../api/request.js';
import PaystackPop from '@paystack/inline-js';
export const card = () => ({
get: async ({ params = {}, onSuccess, onError } = {}) => {
try {
const data = await request({
url: '/v1/card/get_bank_card/',
params: params,
});
onSuccess?.(data);
return data;
} catch (err) {
onError?.(err);
throw err;
}
},
add: async ({ formData = {}, onSuccess, onError } = {}) => {
try {
const data = await request({
method: 'POST',
url: '/v1/card/add_bank_card/',
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/card/verify_card_charge/',
params: params
});
onSuccess?.(data);
return data;
} catch (err) {
onError?.(err);
throw err;
}
},
delete: async ({ formData = {}, onSuccess, onError } = {}) => {
try {
const data = await request({
method: 'POST',
url: '/v1/card/delete_bank_card/',
data: formData
});
onSuccess?.(data);
return data;
} catch (err) {
onError?.(err);
throw err;
}
},
})