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