diff --git a/packages/hoppscotch-sh-admin/src/components/settings/ServerRestart.vue b/packages/hoppscotch-sh-admin/src/components/settings/ServerRestart.vue index 8d27964cf..0901e3146 100644 --- a/packages/hoppscotch-sh-admin/src/components/settings/ServerRestart.vue +++ b/packages/hoppscotch-sh-admin/src/components/settings/ServerRestart.vue @@ -22,6 +22,7 @@ import { EnableAndDisableSsoDocument, ResetInfraConfigsDocument, UpdateInfraConfigsDocument, + ToggleAnalyticsCollectionDocument, } from '~/helpers/backend/graphql'; const t = useI18n(); @@ -43,10 +44,17 @@ const updateInfraConfigsMutation = useMutation(UpdateInfraConfigsDocument); const updateAllowedAuthProviderMutation = useMutation( EnableAndDisableSsoDocument ); +const toggleDataSharingMutation = useMutation( + ToggleAnalyticsCollectionDocument +); // Mutation handlers -const { updateInfraConfigs, updateAuthProvider, resetInfraConfigs } = - useConfigHandler(props.workingConfigs); +const { + updateInfraConfigs, + updateAuthProvider, + resetInfraConfigs, + updateDataSharingConfigs, +} = useConfigHandler(props.workingConfigs); // Call relevant mutations on component mount and initiate server restart const duration = ref(30); @@ -80,6 +88,12 @@ onMounted(async () => { updateAllowedAuthProviderMutation ); if (!authResult) return; + + const dataSharingReult = await updateDataSharingConfigs( + toggleDataSharingMutation + ); + + if (!dataSharingReult) return; } restart.value = true; diff --git a/packages/hoppscotch-sh-admin/src/composables/useConfigHandler.ts b/packages/hoppscotch-sh-admin/src/composables/useConfigHandler.ts index 42701af5b..6a1a5f7bf 100644 --- a/packages/hoppscotch-sh-admin/src/composables/useConfigHandler.ts +++ b/packages/hoppscotch-sh-admin/src/composables/useConfigHandler.ts @@ -12,6 +12,7 @@ import { UpdateInfraConfigsMutation, ResetInfraConfigsMutation, EnableAndDisableSsoArgs, + ToggleAnalyticsCollectionMutation, InfraConfigArgs, } from '~/helpers/backend/graphql'; @@ -269,17 +270,6 @@ export function useConfigHandler(updatedConfigs?: Config) { ); } - if (updatedConfigs?.dataSharingConfigs.enabled) { - config.push({ - name: 'ALLOW_ANALYTICS_COLLECTION', - value: updatedConfigs?.dataSharingConfigs.enabled ? 'true' : 'false', - }); - } else { - config = config.filter( - (item) => item.name !== 'ALLOW_ANALYTICS_COLLECTION' - ); - } - config = config.filter((item) => item.name !== ''); return config; @@ -373,12 +363,31 @@ export function useConfigHandler(updatedConfigs?: Config) { return true; }; + // Updating the data sharing configurations + const updateDataSharingConfigs = async ( + toggleDataSharingMutation: UseMutationResponse + ) => { + const variables = { + status: updatedConfigs?.dataSharingConfigs.enabled ? 'ENABLE' : 'DISABLE', + }; + + const result = await toggleDataSharingMutation.executeMutation(variables); + + if (result.error) { + toast.error(t('configs.data_sharing.update_failure')); + return false; + } + + return true; + }; + return { currentConfigs, workingConfigs, updatedInfraConfigs, updatedAllowedAuthProviders, updateAuthProvider, + updateDataSharingConfigs, updateInfraConfigs, resetInfraConfigs, fetchingInfraConfigs,