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