UNPKG

@selfcommunity/api-services

Version:
166 lines (158 loc) • 6.01 kB
import { __awaiter } from "tslib"; import { apiRequest } from '../../utils/apiRequest'; import Endpoints from '../../constants/Endpoints'; /** * Contains all the endpoints needed to manage loyalty program. */ export class LoyaltyApiClient { /** * This endpoint retrieves all prizes. * @param params * @param config */ static getPrizes(params, config) { return apiRequest(Object.assign(Object.assign({}, config), { params, url: Endpoints.GetPrizes.url({}), method: Endpoints.GetPrizes.method })); } /** * This endpoint creates a prize. * @param data * @param config */ static createPrize(data, config) { return apiRequest(Object.assign(Object.assign({}, config), { url: Endpoints.CreatePrize.url({}), method: Endpoints.CreatePrize.method, data: data })); } /** * This endpoint retrieves a specific prize * @param id * @param config */ static getSpecificPrize(id, config) { return apiRequest(Object.assign(Object.assign({}, config), { url: Endpoints.GetSpecificPrize.url({ id }), method: Endpoints.GetSpecificPrize.method })); } /** * This endpoint updates a specific prize. * @param id * @param data * @param config */ static updatePrize(id, data, config) { return apiRequest(Object.assign(Object.assign({}, config), { url: Endpoints.UpdatePrize.url({ id }), method: Endpoints.UpdatePrize.method, data: data })); } /** * This endpoint patches a specific prize. * @param id * @param data * @param config */ static patchPrize(id, data, config) { return apiRequest(Object.assign(Object.assign({}, config), { url: Endpoints.PatchPrize.url({ id }), method: Endpoints.PatchPrize.method, data: data })); } /** * This endpoint retrieves all requests of loyalty prizes. * @param config */ static getAllPrizeRequests(config) { return apiRequest(Object.assign(Object.assign({}, config), { url: Endpoints.GetPrizeRequests.url({}), method: Endpoints.GetPrizeRequests.method })); } /** * This endpoint creates a request for a loyalty prize * @param prize * @param config */ static createPrizeRequest(prize, config) { return apiRequest(Object.assign(Object.assign({}, config), { url: Endpoints.CreatePrizeRequest.url({}), method: Endpoints.CreatePrizeRequest.method, data: { prize: prize } })); } /** * This endpoint retrieves a specific request for a loyalty prize. * @param id * @param config */ static getSpecificPrizeRequest(id, config) { return apiRequest(Object.assign(Object.assign({}, config), { url: Endpoints.GetSpecificPrizeRequest.url({ id }), method: Endpoints.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 apiRequest(Object.assign(Object.assign({}, config), { url: Endpoints.PatchPrizeRequest.url({ id }), method: Endpoints.PatchPrizeRequest.method, data: { status: status } })); } } /** * :::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! ``` ::: */ export default class LoyaltyService { static getPrizes(params, config) { return __awaiter(this, void 0, void 0, function* () { return LoyaltyApiClient.getPrizes(params, config); }); } static createPrize(data, config) { return __awaiter(this, void 0, void 0, function* () { return LoyaltyApiClient.createPrize(data, config); }); } static getSpecificPrize(id, config) { return __awaiter(this, void 0, void 0, function* () { return LoyaltyApiClient.getSpecificPrize(id, config); }); } static updatePrize(id, data, config) { return __awaiter(this, void 0, void 0, function* () { return LoyaltyApiClient.updatePrize(id, data, config); }); } static patchPrize(id, data, config) { return __awaiter(this, void 0, void 0, function* () { return LoyaltyApiClient.patchPrize(id, data, config); }); } static getAllPrizeRequests(config) { return __awaiter(this, void 0, void 0, function* () { return LoyaltyApiClient.getAllPrizeRequests(config); }); } static createPrizeRequest(prize, config) { return __awaiter(this, void 0, void 0, function* () { return LoyaltyApiClient.createPrizeRequest(prize, config); }); } static getSpecificPrizeRequest(id, config) { return __awaiter(this, void 0, void 0, function* () { return LoyaltyApiClient.getSpecificPrizeRequest(id, config); }); } static patchPrizeRequest(id, status, config) { return __awaiter(this, void 0, void 0, function* () { return LoyaltyApiClient.patchPrizeRequest(id, status, config); }); } }