mirror of
https://github.com/openmhz/trunk-server.git
synced 2026-11-10 15:57:30 -05:00
93 lines
3.1 KiB
JavaScript
93 lines
3.1 KiB
JavaScript
// Import the RTK Query methods from the React-specific entry point
|
|
import { createApi, fetchBaseQuery } from '@reduxjs/toolkit/query/react'
|
|
|
|
|
|
function buildCallUrl(state, date, direction) {
|
|
var params = {};
|
|
var url = "";
|
|
|
|
|
|
if ((typeof direction === 'string') && (typeof date === 'number')) {
|
|
url = url + '/' + direction;
|
|
params["time"] = date;
|
|
} else {
|
|
if (state.call.filterDate){
|
|
url = url + '/older'
|
|
params["time"] = state.call.filterDate;
|
|
}
|
|
}
|
|
if (state.call.filterStarred) {
|
|
params["filter-starred"] = true;
|
|
}
|
|
switch(state.call.filterType) {
|
|
case 1:
|
|
params["filter-type"] = "group";
|
|
params["filter-code"] = state.call.filterGroupId;
|
|
break;
|
|
case 2:
|
|
params["filter-type"] = "talkgroup";
|
|
params["filter-code"] = state.call.filterTalkgroups;
|
|
break;
|
|
default:
|
|
case 0:
|
|
}
|
|
/*
|
|
|
|
if (this.filterCode != "") {
|
|
params["filter-code"] = this.filterCode;
|
|
}
|
|
|
|
if (this.filterType == this.FilterType.Group) {
|
|
params["filter-type"] = "group";
|
|
params["filter-name"] = this.filterName;
|
|
}
|
|
|
|
if (this.filterType == this.FilterType.Talkgroup) {
|
|
params["filter-type"] = "talkgroup";
|
|
}
|
|
|
|
if (this.filterType == this.FilterType.Unit) {
|
|
params["filter-type"] = "unit";
|
|
}
|
|
|
|
*/
|
|
// url = startUp.backend_server + "/" + startUp.shortName.toLowerCase() + "/calls" + url + '?' + buildUrlParams(params);
|
|
url = process.env.REACT_APP_BACKEND_SERVER + "/" + state.call.shortName + "/calls" + url + '?' + buildUrlParams(params);
|
|
console.log("Trying to fetch data from this url: " + url);
|
|
return url;
|
|
}
|
|
|
|
// Define our single API slice object
|
|
export const apiSlice = createApi({
|
|
// The cache reducer expects to be added at `state.api` (already default - this is optional)
|
|
reducerPath: 'api',
|
|
// All of our requests will have URLs starting with '/fakeApi'
|
|
baseQuery: fetchBaseQuery({ baseUrl: process.env.REACT_APP_BACKEND_SERVER }),
|
|
// The "endpoints" represent operations and requests for this server
|
|
endpoints: builder => ({
|
|
// The `getPosts` endpoint is a "query" operation that returns data
|
|
getGroups: builder.query({
|
|
// The URL for the request is '/fakeApi/posts'
|
|
query: (shortName) => ({ url: '/${shortName}/groups' })
|
|
}),
|
|
getSystems: builder.query({
|
|
// The URL for the request is '/fakeApi/posts'
|
|
query: () => ({ url: '/systems' })
|
|
}),
|
|
getTalkgroups: builder.query({
|
|
// The URL for the request is '/fakeApi/posts'
|
|
query: (shortName) => ({ url: '/${shortName}/talkgroups' })
|
|
}),
|
|
getCalls: builder.query({
|
|
// The URL for the request is '/fakeApi/posts'
|
|
query: ({shortName, filterType, filterCode}) => ({
|
|
url: "/${shortName}/calls",
|
|
method: "GET",
|
|
params: { filterType, filterCode },
|
|
})
|
|
})
|
|
})
|
|
})
|
|
|
|
// Export the auto-generated hook for the `getPosts` query endpoint
|
|
export const { useGetGroupsQuery, useGetSystemsQuery, useGetTalkgroupsQuery, useGetCallsQuery } = apiSlice |