UNPKG

@selfcommunity/api-services

Version:
330 lines (322 loc) • 13.7 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports.GroupApiClient = 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 groups. */ class GroupApiClient { /** * This endpoint retrieves all the groups of the logged-in user. * @param params * @param config */ static getUserGroups(params, config) { const p = (0, url_1.urlParams)(params); return (0, apiRequest_1.apiRequest)(Object.assign(Object.assign({}, config), { url: `${Endpoints_1.default.GetUserGroups.url({})}?${p.toString()}`, method: Endpoints_1.default.GetUserGroups.method })); } /** * This endpoint retrieves a specific user groups. * @param id * @param params * @param config */ static getUserSubscribedGroups(id, params, config) { const p = (0, url_1.urlParams)(params); return (0, apiRequest_1.apiRequest)(Object.assign(Object.assign({}, config), { url: `${Endpoints_1.default.GetUserSubscribedGroups.url({ id })}?${p.toString()}`, method: Endpoints_1.default.GetUserSubscribedGroups.method })); } /** * This endpoint performs groups search * @param params * @param config */ static searchGroups(params, config) { const p = (0, url_1.urlParams)(params); return (0, apiRequest_1.apiRequest)(Object.assign(Object.assign({}, config), { url: `${Endpoints_1.default.SearchGroups.url({})}?${p.toString()}`, method: Endpoints_1.default.SearchGroups.method })); } /** * This endpoint retrieves a specific group. * @param id * @param config */ static getSpecificGroupInfo(id, config) { return (0, apiRequest_1.apiRequest)(Object.assign(Object.assign({}, config), { url: Endpoints_1.default.GetGroupInfo.url({ id }), method: Endpoints_1.default.GetGroupInfo.method })); } /** * This endpoint performs groups search * @param id * @param params * @param config */ static getGroupFeed(id, params, config) { const p = (0, url_1.urlParams)(params); return (0, apiRequest_1.apiRequest)(Object.assign(Object.assign({}, config), { url: `${Endpoints_1.default.GetGroupFeed.url({ id })}?${p.toString()}`, method: Endpoints_1.default.GetGroupFeed.method })); } /** * This endpoint creates a group. * @param data * @param config */ static createGroup(data, config) { return (0, apiRequest_1.apiRequest)(Object.assign(Object.assign({}, config), { url: Endpoints_1.default.CreateGroup.url({}), method: Endpoints_1.default.CreateGroup.method, data: data })); } /** * This endpoint updates a group. * @param id * @param data * @param config */ static updateGroup(id, data, config) { return (0, apiRequest_1.apiRequest)(Object.assign(Object.assign({}, config), { url: Endpoints_1.default.UpdateGroup.url({ id }), method: Endpoints_1.default.UpdateGroup.method, data: data })); } /** * This endpoint patches a group. * @param id * @param data * @param config */ static patchGroup(id, data, config) { return (0, apiRequest_1.apiRequest)(Object.assign(Object.assign({}, config), { url: Endpoints_1.default.PatchGroup.url({ id }), method: Endpoints_1.default.PatchGroup.method, data: data })); } /** * This endpoint deletes a group. * @param id * @param config */ static deleteGroup(id, config) { return (0, apiRequest_1.apiRequest)(Object.assign(Object.assign({}, config), { url: Endpoints_1.default.DeleteGroup.url({ id }), method: Endpoints_1.default.DeleteGroup.method })); } /** * This endpoint changes the group avatar * @param id * @param data * @param config */ static changeGroupAvatarOrCover(id, data, config) { return (0, apiRequest_1.apiRequest)(Object.assign({ url: Endpoints_1.default.PatchGroup.url({ id }), method: Endpoints_1.default.PatchGroup.method, data }, config)); } /** * This endpoint returns all subscribers of a specific group. * @param id * @param params * @param config */ static getGroupMembers(id, params, config) { const p = (0, url_1.urlParams)(params); return (0, apiRequest_1.apiRequest)(Object.assign(Object.assign({}, config), { url: `${Endpoints_1.default.GetGroupSubscribers.url({ id })}?${p.toString()}`, method: Endpoints_1.default.GetGroupSubscribers.method })); } /** * This endpoint returns a list of suggested users to invite to the group. * @param id * @param search * @param config */ static getGroupSuggestedUsers(id, search, config) { return (0, apiRequest_1.apiRequest)(Object.assign(Object.assign({}, config), { url: Endpoints_1.default.GetGroupSuggestedUsers.url({ id, search }), method: Endpoints_1.default.GetGroupSuggestedUsers.method })); } /** * This endpoint returns a list of suggested users to invite to the groups. * @param search * @param config */ static getGroupsSuggestedUsers(search, config) { return (0, apiRequest_1.apiRequest)(Object.assign(Object.assign({}, config), { url: Endpoints_1.default.GetGroupsSuggestedUsers.url({ search }), method: Endpoints_1.default.GetGroupsSuggestedUsers.method })); } /** * This endpoint removes the user specified from the group. * @param id * @param user * @param config */ static removeUserFromGroup(id, user, config) { return (0, apiRequest_1.apiRequest)(Object.assign(Object.assign({}, config), { url: Endpoints_1.default.RemoveUserFromGroup.url({ id, user }), method: Endpoints_1.default.RemoveUserFromGroup.method })); } /** * This endpoint returns a list of invited users. * @param id * @param params * @param config */ static getGroupInvitedUsers(id, params, config) { const p = (0, url_1.urlParams)(params); return (0, apiRequest_1.apiRequest)(Object.assign(Object.assign({}, config), { url: `${Endpoints_1.default.GetGroupInvitedUsers.url({ id })}?${p.toString()}`, method: Endpoints_1.default.GetGroupInvitedUsers.method })); } /** * This endpoint subscribes to a group. * @param id * @param config */ static subscribeToGroup(id, config) { return (0, apiRequest_1.apiRequest)(Object.assign(Object.assign({}, config), { url: Endpoints_1.default.SubscribeToGroup.url({ id }), method: Endpoints_1.default.SubscribeToGroup.method })); } /** * This endpoint unsubscribes from a group. * @param id * @param config */ static unsubscribeFromGroup(id, config) { return (0, apiRequest_1.apiRequest)(Object.assign(Object.assign({}, config), { url: Endpoints_1.default.UnsubscribeFromGroup.url({ id }), method: Endpoints_1.default.UnsubscribeFromGroup.method })); } /** * This endpoint allows to invite or accept a group invite. * @param id * @param data * @param config */ static inviteOrAcceptGroupRequest(id, data, config) { return (0, apiRequest_1.apiRequest)(Object.assign(Object.assign({}, config), { url: Endpoints_1.default.InviteOrAcceptGroupRequest.url({ id }), method: Endpoints_1.default.InviteOrAcceptGroupRequest.method, data: data })); } /** * This endpoint retrieves the group subscription status. * @param id * @param config */ static getGroupSubscriptionStatus(id, config) { return (0, apiRequest_1.apiRequest)(Object.assign(Object.assign({}, config), { url: Endpoints_1.default.GetGroupSubscriptionStatus.url({ id }), method: Endpoints_1.default.GetGroupSubscriptionStatus.method })); } /** * This endpoint returns a list of the users waiting to be added to the group. * @param id * @param params * @param config */ static getGroupWaitingApprovalSubscribers(id, params, config) { const p = (0, url_1.urlParams)(params); return (0, apiRequest_1.apiRequest)(Object.assign(Object.assign({}, config), { url: `${Endpoints_1.default.GetGroupWaitingApprovalSubscribers.url({ id })}?${p.toString()}`, method: Endpoints_1.default.GetGroupWaitingApprovalSubscribers.method })); } } exports.GroupApiClient = GroupApiClient; /** * :::tip Incubator service can be used in the following way: ```jsx 1. Import the service from our library: import {GroupService} from "@selfcommunity/api-services"; ``` ```jsx 2. Create a function and put the service inside it! The async function `searchGroups` will return the groups matching the search query. async searchGroups() { return await GroupService.searchGroups(); } ``` ```jsx In case of required `params`, just add them inside the brackets. async getSpecificGroupInfo(groupId) { return await GroupService.getSpecificGroupInfo(groupId); } ``` ```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 GroupService { static getUserGroups(params, config) { return tslib_1.__awaiter(this, void 0, void 0, function* () { return GroupApiClient.getUserGroups(params, config); }); } static getUserSubscribedGroups(id, params, config) { return tslib_1.__awaiter(this, void 0, void 0, function* () { return GroupApiClient.getUserSubscribedGroups(id, params, config); }); } static searchGroups(params, config) { return tslib_1.__awaiter(this, void 0, void 0, function* () { return GroupApiClient.searchGroups(params, config); }); } static getSpecificGroupInfo(id, config) { return tslib_1.__awaiter(this, void 0, void 0, function* () { return GroupApiClient.getSpecificGroupInfo(id, config); }); } static getGroupFeed(id, params, config) { return tslib_1.__awaiter(this, void 0, void 0, function* () { return GroupApiClient.getGroupFeed(id, params, config); }); } static createGroup(data, config) { return tslib_1.__awaiter(this, void 0, void 0, function* () { return GroupApiClient.createGroup(data, config); }); } static updateGroup(id, data, config) { return tslib_1.__awaiter(this, void 0, void 0, function* () { return GroupApiClient.updateGroup(id, data, config); }); } static patchGroup(id, data, config) { return tslib_1.__awaiter(this, void 0, void 0, function* () { return GroupApiClient.patchGroup(id, data, config); }); } static deleteGroup(id, config) { return tslib_1.__awaiter(this, void 0, void 0, function* () { return GroupApiClient.deleteGroup(id, config); }); } static changeGroupAvatarOrCover(id, data, config) { return tslib_1.__awaiter(this, void 0, void 0, function* () { return GroupApiClient.changeGroupAvatarOrCover(id, data, config); }); } static getGroupMembers(id, params, config) { return tslib_1.__awaiter(this, void 0, void 0, function* () { return GroupApiClient.getGroupMembers(id, params, config); }); } static getGroupSuggestedUsers(id, search, config) { return tslib_1.__awaiter(this, void 0, void 0, function* () { return GroupApiClient.getGroupSuggestedUsers(id, search, config); }); } static getGroupsSuggestedUsers(search, config) { return tslib_1.__awaiter(this, void 0, void 0, function* () { return GroupApiClient.getGroupsSuggestedUsers(search, config); }); } static removeUserFromGroup(id, user, config) { return tslib_1.__awaiter(this, void 0, void 0, function* () { return GroupApiClient.removeUserFromGroup(id, user, config); }); } static getGroupInvitedUsers(id, params, config) { return tslib_1.__awaiter(this, void 0, void 0, function* () { return GroupApiClient.getGroupInvitedUsers(id, params, config); }); } static subscribeToGroup(id, config) { return tslib_1.__awaiter(this, void 0, void 0, function* () { return GroupApiClient.subscribeToGroup(id, config); }); } static unsubscribeFromGroup(id, config) { return tslib_1.__awaiter(this, void 0, void 0, function* () { return GroupApiClient.unsubscribeFromGroup(id, config); }); } static inviteOrAcceptGroupRequest(id, data, config) { return tslib_1.__awaiter(this, void 0, void 0, function* () { return GroupApiClient.inviteOrAcceptGroupRequest(id, data, config); }); } static getGroupSubscriptionStatus(id, config) { return tslib_1.__awaiter(this, void 0, void 0, function* () { return GroupApiClient.getGroupSubscriptionStatus(id, config); }); } static getGroupWaitingApprovalSubscribers(id, params, config) { return tslib_1.__awaiter(this, void 0, void 0, function* () { return GroupApiClient.getGroupWaitingApprovalSubscribers(id, params, config); }); } } exports.default = GroupService;