feat(native-integrations): microsoft teams

This commit is contained in:
Daniel Hougaard
2025-04-25 04:35:40 +04:00
parent d7af9e84be
commit b5d229a7c5
71 changed files with 5648 additions and 999 deletions
+1 -2
View File
@@ -4,13 +4,12 @@ export {
useAdminRemoveIdentitySuperAdminAccess,
useCreateAdminUser,
useRemoveUserServerAdminAccess,
useUpdateAdminSlackConfig,
useUpdateServerConfig,
useUpdateServerEncryptionStrategy
} from "./mutation";
export {
useAdminGetUsers,
useGetAdminSlackConfig,
useGetAdminIntegrationsConfig,
useGetServerConfig,
useGetServerRootKmsEncryptionDetails
} from "./queries";
+3 -24
View File
@@ -6,11 +6,10 @@ import { organizationKeys } from "../organization/queries";
import { User } from "../users/types";
import { adminQueryKeys, adminStandaloneKeys } from "./queries";
import {
AdminSlackConfig,
RootKeyEncryptionStrategy,
TCreateAdminUserDTO,
TServerConfig,
TUpdateAdminSlackConfigDTO
TUpdateServerConfigDTO
} from "./types";
export const useCreateAdminUser = () => {
@@ -34,11 +33,7 @@ export const useCreateAdminUser = () => {
export const useUpdateServerConfig = () => {
const queryClient = useQueryClient();
return useMutation<
TServerConfig,
object,
Partial<TServerConfig & { slackClientId: string; slackClientSecret: string }>
>({
return useMutation<TServerConfig, object, TUpdateServerConfigDTO>({
mutationFn: async (opt) => {
const { data } = await apiRequest.patch<{ config: TServerConfig }>(
"/api/v1/admin/config",
@@ -48,6 +43,7 @@ export const useUpdateServerConfig = () => {
},
onSuccess: (data) => {
queryClient.setQueryData(adminQueryKeys.serverConfig(), data);
queryClient.invalidateQueries({ queryKey: adminQueryKeys.getAdminIntegrationsConfig() });
queryClient.invalidateQueries({ queryKey: adminQueryKeys.serverConfig() });
queryClient.invalidateQueries({ queryKey: organizationKeys.getUserOrganizations });
}
@@ -119,23 +115,6 @@ export const useAdminGrantServerAdminAccess = () => {
});
};
export const useUpdateAdminSlackConfig = () => {
const queryClient = useQueryClient();
return useMutation<AdminSlackConfig, object, TUpdateAdminSlackConfigDTO>({
mutationFn: async (dto) => {
const { data } = await apiRequest.put<AdminSlackConfig>(
"/api/v1/admin/integrations/slack/config",
dto
);
return data;
},
onSuccess: () => {
queryClient.invalidateQueries({ queryKey: adminQueryKeys.getAdminSlackConfig() });
}
});
};
export const useUpdateServerEncryptionStrategy = () => {
const queryClient = useQueryClient();
return useMutation({
+5 -7
View File
@@ -7,7 +7,7 @@ import { User } from "../types";
import {
AdminGetIdentitiesFilters,
AdminGetUsersFilters,
AdminSlackConfig,
AdminIntegrationsConfig,
TGetServerRootKmsEncryptionDetails,
TServerConfig
} from "./types";
@@ -22,7 +22,7 @@ export const adminQueryKeys = {
getUsers: (filters: AdminGetUsersFilters) => [adminStandaloneKeys.getUsers, { filters }] as const,
getIdentities: (filters: AdminGetIdentitiesFilters) =>
[adminStandaloneKeys.getIdentities, { filters }] as const,
getAdminSlackConfig: () => ["admin-slack-config"] as const,
getAdminIntegrationsConfig: () => ["admin-integrations-config"] as const,
getServerEncryptionStrategies: () => ["server-encryption-strategies"] as const
};
@@ -95,13 +95,11 @@ export const useAdminGetIdentities = (filters: AdminGetIdentitiesFilters) => {
});
};
export const useGetAdminSlackConfig = () => {
export const useGetAdminIntegrationsConfig = () => {
return useQuery({
queryKey: adminQueryKeys.getAdminSlackConfig(),
queryKey: adminQueryKeys.getAdminIntegrationsConfig(),
queryFn: async () => {
const { data } = await apiRequest.get<AdminSlackConfig>(
"/api/v1/admin/integrations/slack/config"
);
const { data } = await apiRequest.get<AdminIntegrationsConfig>("/api/v1/admin/integrations");
return data;
}
+18 -8
View File
@@ -26,6 +26,14 @@ export type TServerConfig = {
pageFrameContent?: string;
};
export type TUpdateServerConfigDTO = {
slackClientId?: string;
slackClientSecret?: string;
microsoftTeamsAppId?: string;
microsoftTeamsClientSecret?: string;
microsoftTeamsBotId?: string;
} & Partial<TServerConfig>;
export type TCreateAdminUserDTO = {
email: string;
password: string;
@@ -42,11 +50,6 @@ export type TCreateAdminUserDTO = {
salt: string;
};
export type TUpdateAdminSlackConfigDTO = {
clientId: string;
clientSecret: string;
};
export type AdminGetUsersFilters = {
limit: number;
searchTerm: string;
@@ -58,9 +61,16 @@ export type AdminGetIdentitiesFilters = {
searchTerm: string;
};
export type AdminSlackConfig = {
clientId: string;
clientSecret: string;
export type AdminIntegrationsConfig = {
slack: {
clientId: string;
clientSecret: string;
};
microsoftTeams: {
appId: string;
clientSecret: string;
botId: string;
};
};
export type TGetServerRootKmsEncryptionDetails = {