From 290740d58e2e27e6dfb4c34bc3a7cf82f928b0db Mon Sep 17 00:00:00 2001 From: Alex Holliday Date: Tue, 7 Jan 2025 14:24:47 -0800 Subject: [PATCH] Add getting monitors by team id to redux slice to make use of loading state --- .../UptimeMonitors/uptimeMonitorsSlice.js | 62 ++++++++++++++++--- 1 file changed, 55 insertions(+), 7 deletions(-) diff --git a/Client/src/Features/UptimeMonitors/uptimeMonitorsSlice.js b/Client/src/Features/UptimeMonitors/uptimeMonitorsSlice.js index 78250c19a..8782948ae 100644 --- a/Client/src/Features/UptimeMonitors/uptimeMonitorsSlice.js +++ b/Client/src/Features/UptimeMonitors/uptimeMonitorsSlice.js @@ -78,12 +78,12 @@ export const getUptimeMonitorById = createAsyncThunk( } ); -export const getUptimeMonitorsByTeamId = createAsyncThunk( - "monitors/getMonitorsByTeamId", +export const getUptimeSummaryByTeamId = createAsyncThunk( + "monitors/getSummaryByTeamId", async (token, thunkApi) => { const user = jwtDecode(token); try { - const res = await networkService.getMonitorsAndSummaryByTeamId({ + const res = await networkService.getMonitorsSummaryByTeamId({ authToken: token, teamId: user.teamId, types: ["http", "ping", "docker", "port"], @@ -102,6 +102,38 @@ export const getUptimeMonitorsByTeamId = createAsyncThunk( } ); +export const getUptimeMonitorsByTeamId = createAsyncThunk( + "monitors/getMonitorsByTeamId", + async (config, thunkApi) => { + try { + const res = await networkService.getMonitorsByTeamId({ + authToken: config.authToken, + teamId: config.teamId, + limit: 25, + types: ["http", "ping", "docker", "port"], + status: null, + checkOrder: "desc", + normalize: true, + page: config.page, + rowsPerPage: config.rowsPerPage, + filter: config.filter, + field: config.sort.field, + order: config.sort.order, + }); + return res.data; + } catch (error) { + if (error.response && error.response.data) { + return thunkApi.rejectWithValue(error.response.data); + } + const payload = { + status: false, + msg: error.message ? error.message : "Unknown error", + }; + return thunkApi.rejectWithValue(payload); + } + } +); + export const updateUptimeMonitor = createAsyncThunk( "monitors/updateMonitor", async (data, thunkApi) => { @@ -258,16 +290,33 @@ const uptimeMonitorsSlice = createSlice({ extraReducers: (builder) => { builder // ***************************************************** - // Monitors by teamId + // Summary by teamId // ***************************************************** + .addCase(getUptimeSummaryByTeamId.pending, (state) => { + state.isLoading = true; + }) + .addCase(getUptimeSummaryByTeamId.fulfilled, (state, action) => { + state.isLoading = false; + state.success = action.payload.msg; + state.monitorsSummary = action.payload.data; + }) + .addCase(getUptimeSummaryByTeamId.rejected, (state, action) => { + state.isLoading = false; + state.success = false; + state.msg = action.payload ? action.payload.msg : "Getting uptime summary failed"; + }) + + // ***************************************************** + // Monitors by teamId + // ***************************************************** .addCase(getUptimeMonitorsByTeamId.pending, (state) => { state.isLoading = true; }) .addCase(getUptimeMonitorsByTeamId.fulfilled, (state, action) => { state.isLoading = false; - state.success = action.payload.msg; - state.monitorsSummary = action.payload.data; + state.success = action.payload.success; + state.msg = action.payload.msg; }) .addCase(getUptimeMonitorsByTeamId.rejected, (state, action) => { state.isLoading = false; @@ -276,7 +325,6 @@ const uptimeMonitorsSlice = createSlice({ ? action.payload.msg : "Getting uptime monitors failed"; }) - // ***************************************************** // Create Monitor // *****************************************************