UNPKG

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