diff --git a/Client/src/Pages/Incidents/index.jsx b/Client/src/Pages/Incidents/index.jsx index 4e7a37c6d..10ab30ad5 100644 --- a/Client/src/Pages/Incidents/index.jsx +++ b/Client/src/Pages/Incidents/index.jsx @@ -25,17 +25,20 @@ const Incidents = () => { useEffect(() => { const fetchMonitors = async () => { setLoading(true); - const res = await networkService.getMonitorsByTeamId( - authState.authToken, - authState.user.teamId, - -1, - null, - null, - null, - null, - null, - null - ); + const res = await networkService.getMonitorsByTeamId({ + authToken: authState.authToken, + teamId: authState.user.teamId, + limit: -1, + types: null, + status: null, + checkOrder: null, + normalize: null, + page: null, + rowsPerPage: null, + filter: null, + field: null, + order: null, + }); // Reduce to a lookup object for 0(1) lookup if (res?.data?.data?.monitors?.length > 0) { const monitorLookup = res.data.data.monitors.reduce((acc, monitor) => { diff --git a/Client/src/Pages/Monitors/Home/MonitorTable/index.jsx b/Client/src/Pages/Monitors/Home/MonitorTable/index.jsx index e93858d3e..7203edda7 100644 --- a/Client/src/Pages/Monitors/Home/MonitorTable/index.jsx +++ b/Client/src/Pages/Monitors/Home/MonitorTable/index.jsx @@ -142,20 +142,20 @@ const MonitorTable = ({ isAdmin }) => { try { const { authToken } = authState; const user = jwtDecode(authToken); - const res = await networkService.getMonitorsByTeamId( + const res = await networkService.getMonitorsByTeamId({ authToken, - user.teamId, - 25, - ["http", "ping"], - null, - "desc", - true, - page, - rowsPerPage, - null, - null, - null - ); + teamId: user.teamId, + limit: 25, + types: ["http", "ping"], + status: null, + checkOrder: "desc", + normalize: true, + page: page, + rowsPerPage: rowsPerPage, + filter: null, + field: null, + order: null, + }); setMonitors(res?.data?.data?.monitors ?? []); setMonitorCount(res?.data?.data?.monitorCount ?? 0); } catch (error) { diff --git a/Client/src/Pages/PageSpeed/index.jsx b/Client/src/Pages/PageSpeed/index.jsx index a76e4cca1..3e78b1d6b 100644 --- a/Client/src/Pages/PageSpeed/index.jsx +++ b/Client/src/Pages/PageSpeed/index.jsx @@ -29,17 +29,20 @@ const PageSpeed = ({ isAdmin }) => { const fetchMonitors = async () => { try { setIsLoading(true); - const res = await networkService.getMonitorsByTeamId( - authToken, - user.teamId, - 10, - ["pagespeed"], - null, - "desc", - true, - null, - null - ); + const res = await networkService.getMonitorsByTeamId({ + authToken: authToken, + teamId: user.teamId, + limit: 10, + types: ["pagespeed"], + status: null, + checkOrder: "desc", + normalize: true, + page: null, + rowsPerPage: null, + filter: null, + field: null, + order: null, + }); if (res?.data?.data?.monitors) { setMonitors(res.data.data.monitors); } diff --git a/Client/src/Utils/NetworkService.js b/Client/src/Utils/NetworkService.js index 02f009a36..63323d5a8 100644 --- a/Client/src/Utils/NetworkService.js +++ b/Client/src/Utils/NetworkService.js @@ -83,29 +83,37 @@ class NetworkService { * ************************************ * * @async - * @param {string} authToken - The authorization token to be used in the request header. - * @param {string} userId - The ID of the user whose monitors are to be retrieved. - * @param {number} [limit] - The maximum number of monitors to retrieve. - * @param {Array} [types] - The types of monitors to retrieve. - * @param {string} [status] - The status of the monitors to retrieve. - * @param {string} [sortOrder] - The order in which to sort the retrieved monitors. - * @param {boolean} [normalize] - Whether to normalize the retrieved monitors. + * @param {Object} config - The configuration object. + * @param {string} config.authToken - The authorization token to be used in the request header. + * @param {string} config.teamId - The ID of the team whose monitors are to be retrieved. + * @param {number} [config.limit] - The maximum number of monitors to retrieve. + * @param {Array} [config.types] - The types of monitors to retrieve. + * @param {string} [config.status] - The status of the monitors to retrieve. + * @param {string} [config.checkOrder] - The order in which to sort the retrieved monitors. + * @param {boolean} [config.normalize] - Whether to normalize the retrieved monitors. + * @param {number} [config.page] - The page number for pagination. + * @param {number} [config.rowsPerPage] - The number of rows per page for pagination. + * @param {string} [config.filter] - The filter to apply to the monitors. + * @param {string} [config.field] - The field to sort by. + * @param {string} [config.order] - The order in which to sort the field. * @returns {Promise} The response from the axios GET request. */ - async getMonitorsByTeamId( - authToken, - teamId, - limit, - types, - status, - checkOrder, - normalize, - page, - rowsPerPage, - filter, - field, - order - ) { + async getMonitorsByTeamId(config) { + const { + authToken, + teamId, + limit, + types, + status, + checkOrder, + normalize, + page, + rowsPerPage, + filter, + field, + order, + } = config; + const params = new URLSearchParams(); if (limit) params.append("limit", limit); diff --git a/Server/db/mongo/modules/monitorModule.js b/Server/db/mongo/modules/monitorModule.js index 85fe8ab03..002bf9c41 100644 --- a/Server/db/mongo/modules/monitorModule.js +++ b/Server/db/mongo/modules/monitorModule.js @@ -359,8 +359,10 @@ const getMonitorsByTeamId = async (req, res) => { field, order, } = req.query || {}; - - const monitorQuery = { teamId: req.params.teamId, type }; + const monitorQuery = { teamId: req.params.teamId }; + if (type !== undefined) { + monitorQuery.type = type; + } // Add filter if provided // $options: "i" makes the search case-insensitive if (filter !== undefined) {