UNPKG

@selfcommunity/api-services

Version:
171 lines (163 loc) • 6.63 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports.LoyaltyApiClient = void 0; const tslib_1 = require("tslib"); const apiRequest_1 = require("../../utils/apiRequest"); const Endpoints_1 = tslib_1.__importDefault(require("../../constants/Endpoints")); /** * Contains all the endpoints needed to manage loyalty program. */ class LoyaltyApiClient { /** * This endpoint retrieves all prizes. * @param params * @param config */ static getPrizes(params, config) { return (0, apiRequest_1.apiRequest)(Object.assign(Object.assign({}, config), { params, url: Endpoints_1.default.GetPrizes.url({}), method: Endpoints_1.default.GetPrizes.method })); } /** * This endpoint creates a prize. * @param data * @param config */ static createPrize(data, config) { return (0, apiRequest_1.apiRequest)(Object.assign(Object.assign({}, config), { url: Endpoints_1.default.CreatePrize.url({}), method: Endpoints_1.default.CreatePrize.method, data: data })); } /** * This endpoint retrieves a specific prize * @param id * @param config */ static getSpecificPrize(id, config) { return (0, apiRequest_1.apiRequest)(Object.assign(Object.assign({}, config), { url: Endpoints_1.default.GetSpecificPrize.url({ id }), method: Endpoints_1.default.GetSpecificPrize.method })); } /** * This endpoint updates a specific prize. * @param id * @param data * @param config */ static updatePrize(id, data, config) { return (0, apiRequest_1.apiRequest)(Object.assign(Object.assign({}, config), { url: Endpoints_1.default.UpdatePrize.url({ id }), method: Endpoints_1.default.UpdatePrize.method, data: data })); } /** * This endpoint patches a specific prize. * @param id * @param data * @param config */ static patchPrize(id, data, config) { return (0, apiRequest_1.apiRequest)(Object.assign(Object.assign({}, config), { url: Endpoints_1.default.PatchPrize.url({ id }), method: Endpoints_1.default.PatchPrize.method, data: data })); } /** * This endpoint retrieves all requests of loyalty prizes. * @param config */ static getAllPrizeRequests(config) { return (0, apiRequest_1.apiRequest)(Object.assign(Object.assign({}, config), { url: Endpoints_1.default.GetPrizeRequests.url({}), method: Endpoints_1.default.GetPrizeRequests.method })); } /** * This endpoint creates a request for a loyalty prize * @param prize * @param config */ static createPrizeRequest(prize, config) { return (0, apiRequest_1.apiRequest)(Object.assign(Object.assign({}, config), { url: Endpoints_1.default.CreatePrizeRequest.url({}), method: Endpoints_1.default.CreatePrizeRequest.method, data: { prize: prize } })); } /** * This endpoint retrieves a specific request for a loyalty prize. * @param id * @param config */ static getSpecificPrizeRequest(id, config) { return (0, apiRequest_1.apiRequest)(Object.assign(Object.assign({}, config), { url: Endpoints_1.default.GetSpecificPrizeRequest.url({ id }), method: Endpoints_1.default.GetSpecificPrizeRequest.method })); } /** * This endpoint patches a specific request for a loyalty prize. * You can use this endpoint to change status in an admin list/table interface. * @param id * @param status * @param config */ static patchPrizeRequest(id, status, config) { return (0, apiRequest_1.apiRequest)(Object.assign(Object.assign({}, config), { url: Endpoints_1.default.PatchPrizeRequest.url({ id }), method: Endpoints_1.default.PatchPrizeRequest.method, data: { status: status } })); } } exports.LoyaltyApiClient = LoyaltyApiClient; /** * :::tip Loyalty service can be used in the following way: ```jsx 1. Import the service from our library: import {LoyaltyService} from "@selfcommunity/api-services"; ``` ```jsx 2. Create a function and put the service inside it! The async function `getPrizes` will return the paginated list of available prizes. async getPrizes() { return await LoyaltyService.getPrizes(); } ``` ```jsx In case of required `params`, just add them inside the brackets. async getSpecificPrize(prizeId) { return await LoyaltyService.getSpecificPrize(prizeId); } ``` ```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 LoyaltyService { static getPrizes(params, config) { return tslib_1.__awaiter(this, void 0, void 0, function* () { return LoyaltyApiClient.getPrizes(params, config); }); } static createPrize(data, config) { return tslib_1.__awaiter(this, void 0, void 0, function* () { return LoyaltyApiClient.createPrize(data, config); }); } static getSpecificPrize(id, config) { return tslib_1.__awaiter(this, void 0, void 0, function* () { return LoyaltyApiClient.getSpecificPrize(id, config); }); } static updatePrize(id, data, config) { return tslib_1.__awaiter(this, void 0, void 0, function* () { return LoyaltyApiClient.updatePrize(id, data, config); }); } static patchPrize(id, data, config) { return tslib_1.__awaiter(this, void 0, void 0, function* () { return LoyaltyApiClient.patchPrize(id, data, config); }); } static getAllPrizeRequests(config) { return tslib_1.__awaiter(this, void 0, void 0, function* () { return LoyaltyApiClient.getAllPrizeRequests(config); }); } static createPrizeRequest(prize, config) { return tslib_1.__awaiter(this, void 0, void 0, function* () { return LoyaltyApiClient.createPrizeRequest(prize, config); }); } static getSpecificPrizeRequest(id, config) { return tslib_1.__awaiter(this, void 0, void 0, function* () { return LoyaltyApiClient.getSpecificPrizeRequest(id, config); }); } static patchPrizeRequest(id, status, config) { return tslib_1.__awaiter(this, void 0, void 0, function* () { return LoyaltyApiClient.patchPrizeRequest(id, status, config); }); } } exports.default = LoyaltyService;