@selfcommunity/api-services
Version:
Client api for SelfCommunity.
219 lines (211 loc) • 9.19 kB
JavaScript
;
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;