added working ticket frontend

This commit is contained in:
QkoSad
2022-12-10 17:21:26 +02:00
parent 885cdfa7fe
commit 475f924381
7 changed files with 210 additions and 32 deletions
+58 -1
View File
@@ -42,10 +42,49 @@ export const ticketSlice = createSlice({
state.isLoading = false;
state.isError = true;
state.message = action.payload;
})
.addCase(getTicket.pending, (state) => {
state.isLoading = true;
})
.addCase(getTicket.fulfilled, (state, action) => {
state.isLoading = false;
state.isSuccess = true;
state.ticket = action.payload;
})
.addCase(getTicket.rejected, (state, action) => {
state.isLoading = false;
state.isError = true;
state.message = action.payload;
})
.addCase(closeTicket.fulfilled, (state, action) => {
state.isLoading = false;
state.tickets.map((ticket) =>
ticket._id === action.payload._id
? (ticket.status = "closed")
: ticket
);
});
},
});
export const closeTicket = createAsyncThunk(
"tickets/close",
async (ticketId, thunkAPI) => {
try {
const token = thunkAPI.getState().auth.user.token;
return await ticketService.closeTicket(ticketId, token);
} catch (error) {
const message =
(error.response &&
error.response.data &&
error.response.data.message) ||
error.message ||
error.toString();
return thunkAPI.rejectWithValue(message);
}
}
);
export const getTickets = createAsyncThunk(
"tickets/getAll",
async (_, thunkAPI) => {
@@ -69,7 +108,25 @@ export const createTicket = createAsyncThunk(
async (ticketData, thunkAPI) => {
try {
const token = thunkAPI.getState().auth.user.token;
return await ticketService(ticketData, token);
return await ticketService.createTicket(ticketData, token);
} catch (error) {
const message =
(error.response &&
error.response.data &&
error.response.data.message) ||
error.message ||
error.toString();
return thunkAPI.rejectWithValue(message);
}
}
);
export const getTicket = createAsyncThunk(
"tickets/get",
async (ticketId, thunkAPI) => {
try {
const token = thunkAPI.getState().auth.user.token;
return await ticketService.getTicket(ticketId, token);
} catch (error) {
const message =
(error.response &&