@selfcommunity/api-services
Version:
Client api for SelfCommunity.
138 lines (131 loc) • 5.76 kB
JavaScript
;
Object.defineProperty(exports, "__esModule", { value: true });
exports.SuggestionApiClient = void 0;
const tslib_1 = require("tslib");
const apiRequest_1 = require("../../utils/apiRequest");
const Endpoints_1 = tslib_1.__importDefault(require("../../constants/Endpoints"));
const url_1 = require("../../utils/url");
/**
* Contains all the endpoints needed to manage suggestions.
*/
class SuggestionApiClient {
/**
* This endpoint retrieves a list of categories suggested to the current user.
* @param params
* @param config
*/
static getCategorySuggestion(params, config) {
return (0, apiRequest_1.apiRequest)(Object.assign(Object.assign({}, config), { url: Endpoints_1.default.CategoriesSuggestion.url({}), method: Endpoints_1.default.CategoriesSuggestion.method, params }));
}
/**
* This endpoint retrieves a list of courses suggested to the current user.
* @param params
* @param config
*/
static getCourseSuggestion(params, config) {
return (0, apiRequest_1.apiRequest)(Object.assign(Object.assign({}, config), { url: Endpoints_1.default.CourseSuggestion.url({}), method: Endpoints_1.default.CourseSuggestion.method, params }));
}
/**
* This endpoint retrieves a list of suggested incubators.
* @param params
* @param config
*/
static getIncubatorSuggestion(params, config) {
return (0, apiRequest_1.apiRequest)(Object.assign(Object.assign({}, config), { url: Endpoints_1.default.GetIncubatorSuggestion.url({}), method: Endpoints_1.default.GetIncubatorSuggestion.method, params }));
}
/**
* This endpoint retrieves a list of contributes(discussions, posts, statuses) with a related poll.
* @param params
* @param config
*/
static getPollSuggestion(params, config) {
return (0, apiRequest_1.apiRequest)(Object.assign(Object.assign({}, config), { url: Endpoints_1.default.PollSuggestion.url({}), method: Endpoints_1.default.PollSuggestion.method, params }));
}
/**
* This endpoint retrieves a list of users suggested to the current user.
* @param params
* @param config
*/
static getUserSuggestion(params, config) {
return (0, apiRequest_1.apiRequest)(Object.assign(Object.assign({}, config), { url: Endpoints_1.default.UserSuggestion.url({}), method: Endpoints_1.default.UserSuggestion.method, params }));
}
/**
* This endpoint retrieves a list of events suggested to the current user.
* @param params
* @param config
*/
static getEventSuggestion(params, config) {
return (0, apiRequest_1.apiRequest)(Object.assign(Object.assign({}, config), { url: Endpoints_1.default.EventSuggestion.url({}), method: Endpoints_1.default.EventSuggestion.method, params }));
}
/**
* This endpoint retrieves a list of users suggested to the current user.
* @param search
* @param params
* @param config
*/
static getSearchSuggestion(search, params, config) {
const p = (0, url_1.urlParams)({ search: search });
return (0, apiRequest_1.apiRequest)(Object.assign(Object.assign({}, config), { url: `${Endpoints_1.default.SearchSuggestion.url({})}?${p.toString()}`, method: Endpoints_1.default.UserSuggestion.method, params }));
}
}
exports.SuggestionApiClient = SuggestionApiClient;
/**
*
:::tip Suggestion service can be used in the following way:
```jsx
1. Import the service from our library:
import {SuggestionService} from "@selfcommunity/api-services";
```
```jsx
2. Create a function and put the service inside it!
The async function `getCategorySuggestion` will return the paginated list of categories.
async getCategorySuggestion() {
return await SuggestionService.getCategorySuggestion();
}
```
```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 SuggestionService {
static getCategorySuggestion(params, config) {
return tslib_1.__awaiter(this, void 0, void 0, function* () {
return SuggestionApiClient.getCategorySuggestion(params, config);
});
}
static getCourseSuggestion(params, config) {
return tslib_1.__awaiter(this, void 0, void 0, function* () {
return SuggestionApiClient.getCourseSuggestion(params, config);
});
}
static getIncubatorSuggestion(params, config) {
return tslib_1.__awaiter(this, void 0, void 0, function* () {
return SuggestionApiClient.getIncubatorSuggestion(params, config);
});
}
static getPollSuggestion(params, config) {
return tslib_1.__awaiter(this, void 0, void 0, function* () {
return SuggestionApiClient.getPollSuggestion(params, config);
});
}
static getUserSuggestion(params, config) {
return tslib_1.__awaiter(this, void 0, void 0, function* () {
return SuggestionApiClient.getUserSuggestion(params, config);
});
}
static getEventSuggestion(params, config) {
return tslib_1.__awaiter(this, void 0, void 0, function* () {
return SuggestionApiClient.getEventSuggestion(params, config);
});
}
static getSearchSuggestion(search, params, config) {
return tslib_1.__awaiter(this, void 0, void 0, function* () {
return SuggestionApiClient.getSearchSuggestion(search, params, config);
});
}
}
exports.default = SuggestionService;