UNPKG

@selfcommunity/api-services

Version:
219 lines (211 loc) • 9.19 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports.PaymentApiClient = void 0; const tslib_1 = require("tslib"); const Endpoints_1 = tslib_1.__importDefault(require("../../constants/Endpoints")); const apiRequest_1 = require("../../utils/apiRequest"); const url_1 = require("../../utils/url"); /** * Contains all the endpoints needed to manage payments. */ class PaymentApiClient { /** * This endpoint retrieves all the products related to an object of type <content_type> and id <content_id> and the current payment_order * @param params * @param config */ static getPaymentContentStatus(params, config) { return (0, apiRequest_1.apiRequest)(Object.assign(Object.assign({}, config), { params, url: `${Endpoints_1.default.GetPaymentContentStatus.url({})}`, method: Endpoints_1.default.GetPaymentContentStatus.method })); } /** * This endpoint retrieves all the products related to an object of type <content_type> and id <content_id> * @param params * @param config */ static getPaywalls(params, config) { const p = (0, url_1.urlParams)(params); return (0, apiRequest_1.apiRequest)(Object.assign(Object.assign({}, config), { url: `${Endpoints_1.default.GetPaywalls.url({})}?${p.toString()}`, method: Endpoints_1.default.GetPaywalls.method })); } /** * This endpoint retrieves all the payment products * @param params * @param config */ static getPaymentProducts(params, config) { const p = (0, url_1.urlParams)(params); return (0, apiRequest_1.apiRequest)(Object.assign({ url: `${Endpoints_1.default.GetPaymentProducts.url({})}?${p.toString()}`, method: Endpoints_1.default.GetPaymentProducts.method }, config)); } /** * This endpoint retrieves a specific payment product. * @param id * @param config */ static getPaymentProduct(id, config) { return (0, apiRequest_1.apiRequest)(Object.assign(Object.assign({}, config), { url: Endpoints_1.default.GetPaymentProduct.url({ id }), method: Endpoints_1.default.GetPaymentProduct.method })); } /** * This endpoint retrieves all the prices related to a product * @param id * @param params * @param config */ static getPaymentProductPrices(id, params, config) { const p = (0, url_1.urlParams)(params); return (0, apiRequest_1.apiRequest)(Object.assign(Object.assign({}, config), { url: `${Endpoints_1.default.GetPaymentProductPrices.url({ id })}?${p.toString()}`, method: Endpoints_1.default.GetPaymentProductPrices.method })); } /** * This endpoint creates a checkout session. * @param data * @param config */ static checkoutCreateSession(data, config) { return (0, apiRequest_1.apiRequest)(Object.assign(Object.assign({}, config), { url: Endpoints_1.default.CheckoutCreateSession.url({}), method: Endpoints_1.default.CheckoutCreateSession.method, data })); } /** * Create payment product * @param data * @param config */ static createPaymentProduct(data, config) { return (0, apiRequest_1.apiRequest)(Object.assign(Object.assign({}, config), { url: Endpoints_1.default.CreatePaymentProduct.url({}), method: Endpoints_1.default.CreatePaymentProduct.method, data })); } /** * This endpoint retrieve checkout session * @param params * @param config */ static getCheckoutSession(params, config) { const p = (0, url_1.urlParams)(params); return (0, apiRequest_1.apiRequest)(Object.assign(Object.assign({}, config), { url: `${Endpoints_1.default.GetCheckoutSession.url({})}?${p.toString()}`, method: Endpoints_1.default.GetCheckoutSession.method })); } /** * This endpoint complete checkout session * @param data * @param config */ static checkoutCompleteSession(data, config) { return (0, apiRequest_1.apiRequest)(Object.assign(Object.assign({}, config), { url: Endpoints_1.default.CheckoutSessionComplete.url({}), method: Endpoints_1.default.CheckoutSessionComplete.method, data })); } /** * This endpoint retrive order history of authenticated user * @param params * @param config */ static getPaymentsOrder(params, config) { const p = (0, url_1.urlParams)(params); return (0, apiRequest_1.apiRequest)(Object.assign(Object.assign({}, config), { url: `${Endpoints_1.default.GetPaymentOrders.url({})}?${p.toString()}`, method: Endpoints_1.default.GetPaymentOrders.method })); } /** * This endpoint retrieves the single payment order * @param id * @param config */ static getPaymentOrder(id, config) { return (0, apiRequest_1.apiRequest)(Object.assign(Object.assign({}, config), { url: `${Endpoints_1.default.GetPaymentOrder.url({ id })}`, method: Endpoints_1.default.GetPaymentOrder.method })); } /** * This endpoint retrieves the single payment order in pdf format * @param id * @param config */ static getPaymentOrderPdf(id, config) { return (0, apiRequest_1.apiRequest)(Object.assign(Object.assign({}, config), { url: `${Endpoints_1.default.GetPaymentOrderPdf.url({ id })}`, method: Endpoints_1.default.GetPaymentOrderPdf.method })); } /** * This endpoint retrive customer portal * @param data * @param config */ static getPaymentsCustomerPortal(data, config) { return (0, apiRequest_1.apiRequest)(Object.assign(Object.assign({}, config), { url: Endpoints_1.default.CreateCustomerPortalSession.url({}), method: Endpoints_1.default.CreateCustomerPortalSession.method, data })); } } exports.PaymentApiClient = PaymentApiClient; /** * :::tip Payment service can be used in the following way: ```jsx 1. Import the service from our library: import {PaymentService} from "@selfcommunity/api-services"; ``` ```jsx 2. Create a function and put the service inside it! The async function `getPaymentProducts` will return the events matching the search query. async getPaymentProducts() { return await PaymentService.getPaymentProducts({...}); } ``` ```jsx In case of required `params`, just add them inside the brackets. async getPaymentPrices(eventId) { return await PaymentService.getProductPrices(id); } ``` ```jsx If you need to customize the request, you can add optional config params (`AxiosRequestConfig` type). 1. Declare it(or declare them, it is possible to add multiple params) const headers = headers: {Authorization: `Bearer ${yourToken}`} 2. Add it inside the brackets and pass it to the function, as shown in the previous example! ``` ::: */ class PaymentService { static getPaymentContentStatus(params, config) { return tslib_1.__awaiter(this, void 0, void 0, function* () { return PaymentApiClient.getPaymentContentStatus(params, config); }); } static getPaywalls(params, config) { return tslib_1.__awaiter(this, void 0, void 0, function* () { return PaymentApiClient.getPaywalls(params, config); }); } static getPaymentProducts(params, config) { return tslib_1.__awaiter(this, void 0, void 0, function* () { return PaymentApiClient.getPaymentProducts(params, config); }); } static getPaymentProduct(id, config) { return tslib_1.__awaiter(this, void 0, void 0, function* () { return PaymentApiClient.getPaymentProduct(id, config); }); } static getPaymentProductPrices(id, params, config) { return tslib_1.__awaiter(this, void 0, void 0, function* () { return PaymentApiClient.getPaymentProductPrices(id, params, config); }); } static checkoutCreateSession(data, config) { return tslib_1.__awaiter(this, void 0, void 0, function* () { return PaymentApiClient.checkoutCreateSession(data, config); }); } static getCheckoutSession(params, config) { return tslib_1.__awaiter(this, void 0, void 0, function* () { return PaymentApiClient.getCheckoutSession(params, config); }); } static checkoutCompleteSession(data, config) { return tslib_1.__awaiter(this, void 0, void 0, function* () { return PaymentApiClient.checkoutCompleteSession(data, config); }); } static getPaymentsOrder(params, config) { return PaymentApiClient.getPaymentsOrder(params, config); } static getPaymentOrder(id, config) { return PaymentApiClient.getPaymentOrder(id, config); } static getPaymentOrderPdf(id, config) { return PaymentApiClient.getPaymentOrderPdf(id, config); } static getPaymentsCustomerPortal(data, config) { return PaymentApiClient.getPaymentsCustomerPortal(data, config); } static createPaymentProduct(data, config) { return tslib_1.__awaiter(this, void 0, void 0, function* () { return PaymentApiClient.createPaymentProduct(data, config); }); } } exports.default = PaymentService;