mattermost-mobile/app/actions/remote/groups.ts
Shaz MJ 4825a54de0
[Gekidou] Groups API Calls (#6277)
* Adds missing group API calls

* Rename methods to fetch and move to remote actions
2022-05-26 14:10:04 -04:00

104 lines
3.4 KiB
TypeScript

// Copyright (c) 2015-present Mattermost, Inc. All Rights Reserved.
// See LICENSE.txt for license information.
import {Client} from '@client/rest';
import NetworkManager from '@managers/network_manager';
import {forceLogoutIfNecessary} from './session';
export const fetchGroupsForChannel = async (serverUrl: string, channelId: string) => {
let client: Client;
try {
client = NetworkManager.getClient(serverUrl);
return client.getAllGroupsAssociatedToChannel(channelId);
} catch (error) {
forceLogoutIfNecessary(serverUrl, error as ClientErrorProps);
return {error};
}
};
export const fetchGroupsForMembership = async (serverUrl: string, userId: string) => {
let client: Client;
try {
client = NetworkManager.getClient(serverUrl);
return client.getAllGroupsAssociatedToMembership(userId);
} catch (error) {
forceLogoutIfNecessary(serverUrl, error as ClientErrorProps);
return {error};
}
};
export const fetchGroupsForTeam = async (serverUrl: string, teamId: string) => {
let client: Client;
try {
client = NetworkManager.getClient(serverUrl);
return client.getAllGroupsAssociatedToTeam(teamId);
} catch (error) {
forceLogoutIfNecessary(serverUrl, error as ClientErrorProps);
return {error};
}
};
export const fetchGroupsForAutocomplete = async (serverUrl: string, query: string) => {
let client: Client;
try {
client = NetworkManager.getClient(serverUrl);
return client.getGroups(query);
} catch (error) {
forceLogoutIfNecessary(serverUrl, error as ClientErrorProps);
return {error};
}
};
export const fetchMembershipsForGroup = async (serverUrl: string, groupId: string) => {
let client: Client;
try {
client = NetworkManager.getClient(serverUrl);
return client.getAllMembershipsAssociatedToGroup(groupId);
} catch (error) {
forceLogoutIfNecessary(serverUrl, error as ClientErrorProps);
return {error};
}
};
export const fetchTeamsForGroup = async (serverUrl: string, groupId: string) => {
let client: Client;
try {
client = NetworkManager.getClient(serverUrl);
return client.getAllTeamsAssociatedToGroup(groupId);
} catch (error) {
forceLogoutIfNecessary(serverUrl, error as ClientErrorProps);
return {error};
}
};
export const fetchChannelsForGroup = async (serverUrl: string, groupId: string) => {
let client: Client;
try {
client = NetworkManager.getClient(serverUrl);
return client.getAllChannelsAssociatedToGroup(groupId);
} catch (error) {
forceLogoutIfNecessary(serverUrl, error as ClientErrorProps);
return {error};
}
};
export const fetchFilteredTeamGroups = async (serverUrl: string, teamId: string, searchTerm: string) => {
const response = await fetchGroupsForTeam(serverUrl, teamId);
if (response && 'groups' in response) {
return response.groups.filter((g) => g.name.toLowerCase().includes(searchTerm.toLowerCase()));
}
return [];
};
export const fetchFilteredChannelGroups = async (serverUrl: string, channelId: string, searchTerm: string) => {
const response = await fetchGroupsForChannel(serverUrl, channelId);
if (response && 'groups' in response) {
return response.groups.filter((g) => g.name.toLowerCase().includes(searchTerm.toLowerCase()));
}
return [];
};