educa-sdk
Version:
A JavaScript SDK for interacting with the Educa backend API (Admin, Staff, and Student methods)
114 lines (107 loc) • 3.28 kB
JavaScript
import request from '../api/request.js';
import PaystackPop from '@paystack/inline-js';
export const subscription = () => ({
// continue
getSubscriptions: async ({ params = {}, onSuccess, onError } = {}) => {
try {
const data = await request({
url: '/v1/subscription/get_subscription_plans/',
params: params
});
onSuccess?.(data);
return data;
} catch (err) {
onError?.(err);
throw err;
}
},
getCurrentPlan: async ({ params = {}, onSuccess, onError } = {}) => {
try {
const data = await request({
url: '/v1/subscription/get_current_plan/'
});
onSuccess?.(data);
return data;
} catch (err) {
onError?.(err);
throw err;
}
},
checkout: async ({ formData = {}, onSuccess, onError } = {}) => {
try {
const data = await request({
method: 'POST',
url: '/v1/subscription/subscription_checkout/',
data: formData
});
onSuccess?.(data);
return data;
} catch (err) {
onError?.(err);
throw err;
}
},
renew: async ({ formData = {}, onSuccess, onError } = {}) => {
try {
const data = await request({
method: 'POST',
url: '/v1/subscription/renew_subscription/',
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/subscription/verify_payment/',
params: params
});
onSuccess?.(data);
return data;
} catch (err) {
onError?.(err);
throw err;
}
},
subscriptionHistory: async ({ params = {}, onSuccess, onError } = {}) => {
try {
const data = await request({
url: '/v1/subscription/get_subscription_history/',
params: params
});
onSuccess?.(data);
return data;
} catch (err) {
onError?.(err);
throw err;
}
},
})