Commit 0b3b7371 by asranov0003

feat: add fetch audio files logic

parent 7a3d50d8
......@@ -15,6 +15,8 @@ interface IDeviceState {
devices: IDevice[];
deviceData: IDeviceData | null;
selectedDevice: IDevice | null;
audioList: any[];
isAudioListLoading: boolean;
loadingDevices: boolean;
errorDevices: string;
isFetched: boolean;
......@@ -25,6 +27,8 @@ const initialState: IDeviceState = {
devices: [],
deviceData: null,
selectedDevice: null,
audioList: [],
isAudioListLoading: false,
loadingDevices: false,
errorDevices: "",
isFetched: false,
......@@ -72,6 +76,43 @@ export const fetchDeviceData = createAsyncThunk(
}
);
export const fetchAudioFiles = createAsyncThunk(
"device/fetchAudioFiles",
async (
{
deviceId,
dateFrom,
dateTo,
appId,
}: {
deviceId: string;
dateFrom: Date;
dateTo: Date;
appId: number;
},
{ rejectWithValue }
) => {
try {
const response = await sendRpcRequest<{ list: any[] }>("data.getMedia", {
deviceId,
type: appId,
dateFrom,
dateTo,
recStart: 0,
recLimit: 50,
});
return response.list;
} catch (error: unknown) {
if (typeof error === "object" && error !== null && "message" in error) {
return rejectWithValue(error.message);
}
return rejectWithValue("Unknown error occurred");
}
}
);
export const deleteDevice = createAsyncThunk(
"device/deleteDevice",
async (deviceId: string, { rejectWithValue }) => {
......@@ -81,8 +122,6 @@ export const deleteDevice = createAsyncThunk(
{ deviceId }
);
console.log(response);
if (response.success) {
fetchDevices();
}
......@@ -140,6 +179,18 @@ const deviceSlice = createSlice({
.addCase(deleteDevice.rejected, (state, action) => {
state.isDeletingDevice = false;
console.error("Error deleting device:", action.payload);
})
.addCase(fetchAudioFiles.pending, (state) => {
state.isAudioListLoading = true;
})
.addCase(fetchAudioFiles.fulfilled, (state, action) => {
state.isAudioListLoading = false;
state.audioList = action.payload;
})
.addCase(fetchAudioFiles.rejected, (state, action) => {
state.isAudioListLoading = false;
console.error("Error fetching audio files:", action.payload);
});
},
});
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment