diff --git a/src/client/actions/settings.actions.tsx b/src/client/actions/settings.actions.tsx index 92c915f..d9429a1 100644 --- a/src/client/actions/settings.actions.tsx +++ b/src/client/actions/settings.actions.tsx @@ -2,8 +2,13 @@ import axios from "axios"; import { SETTINGS_OBJECT_FETCHED, SETTINGS_OBJECT_DELETED, + SETTINGS_CALL_IN_PROGRESS, + SETTINGS_DB_FLUSH_SUCCESS, } from "../constants/action-types"; -import { SETTINGS_SERVICE_BASE_URI } from "../constants/endpoints"; +import { + IMPORT_SERVICE_BASE_URI, + SETTINGS_SERVICE_BASE_URI, +} from "../constants/endpoints"; export const saveSettings = (settingsPayload, settingsObjectId?) => async (dispatch) => { @@ -48,5 +53,19 @@ export const deleteSettings = () => async (dispatch) => { }; export const flushDb = () => async (dispatch) => { - -} + dispatch({ + type: SETTINGS_CALL_IN_PROGRESS, + }); + + const flushDbResult = await axios({ + url: `${IMPORT_SERVICE_BASE_URI}/flushDb`, + method: "POST", + }); + + if (flushDbResult) { + dispatch({ + type: SETTINGS_DB_FLUSH_SUCCESS, + data: flushDbResult.data, + }); + } +}; diff --git a/src/client/components/SystemSettings/SystemSettingsForm.tsx b/src/client/components/SystemSettings/SystemSettingsForm.tsx index 6ecf694..f14586e 100644 --- a/src/client/components/SystemSettings/SystemSettingsForm.tsx +++ b/src/client/components/SystemSettings/SystemSettingsForm.tsx @@ -1,10 +1,18 @@ import React, { ReactElement, useCallback } from "react"; import { flushDb } from "../../actions/settings.actions"; +import { useDispatch, useSelector } from "react-redux"; export const SystemSettingsForm = (settingsObject): ReactElement => { const { settings } = settingsObject; - // const flushDb = useC + const dispatch = useDispatch(); + const isSettingsCallInProgress = useSelector( + (state: RootState) => state.settings.inProgress, + ); + const flushDatabase = useCallback(() => { + dispatch(flushDb()); + }, []); + return (