mirror of
https://github.com/openmhz/trunk-server.git
synced 2026-11-12 08:47:40 -05:00
60 lines
2.5 KiB
JavaScript
60 lines
2.5 KiB
JavaScript
// Import the RTK Query methods from the React-specific entry point
|
|
import { createApi, fetchBaseQuery } from '@reduxjs/toolkit/query/react'
|
|
import { createSelector} from '@reduxjs/toolkit'
|
|
|
|
|
|
// 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' })
|
|
}),
|
|
getEvents: builder.query({
|
|
// The URL for the request is '/fakeApi/posts'
|
|
query: () => ({ url: '/events' }),
|
|
transformResponse: responseData => {
|
|
return responseData.sort(function compareFn(a, b) { if (a.createdAt < b.createdAt) return 1; else return -1; });
|
|
}
|
|
}),
|
|
getEvent: builder.query({
|
|
// The URL for the request is '/fakeApi/posts'
|
|
query: (eventId) => ({ url: `/events/${eventId}` }),
|
|
transformResponse: responseData => {
|
|
|
|
//let temp = responseData.sort(function compareFn(a, b) { if (a.createdAt < b.createdAt) return 1; else return -1; })
|
|
responseData.calls.forEach(function (call) {
|
|
call.played = false;
|
|
});
|
|
return responseData;
|
|
}
|
|
}),
|
|
getTalkgroups: builder.query({
|
|
// The URL for the request is '/fakeApi/posts'
|
|
query: (shortName) => ({ url: `/${shortName}/talkgroups` })
|
|
}),
|
|
addNewEvent: builder.mutation({
|
|
query: initialEvent => ({
|
|
url: '/events',
|
|
method: 'POST',
|
|
body: initialEvent
|
|
})
|
|
})
|
|
|
|
})
|
|
})
|
|
|
|
// Export the auto-generated hook for the `getPosts` query endpoint
|
|
export const { useGetGroupsQuery, useGetSystemsQuery, useGetTalkgroupsQuery, useGetEventsQuery, useGetEventQuery, useAddNewEventMutation } = apiSlice
|