refactor: delete message even api error

This commit is contained in:
Tristan Yang
2023-10-23 11:13:43 +08:00
parent 6abe94383e
commit 6b2b638b1a
2 changed files with 30 additions and 3 deletions
+7 -1
View File
@@ -114,7 +114,13 @@ const baseQueryWithTokenCheck = async (args: any, api: any, extraOptions: any) =
break;
case 404:
{
const whiteList404 = ["login", "getArchiveMessage", "preCheckFileFromUrl"];
const whiteList404 = [
"login",
"getArchiveMessage",
"preCheckFileFromUrl",
"deleteMessage",
"deleteMessages"
];
if (!whiteList404.includes(api.endpoint)) {
toast.error("Request Not Found");
}
+23 -2
View File
@@ -13,6 +13,7 @@ import { upsertArchiveMessage } from "../slices/message.archive";
import { RootState } from "../store";
import baseQuery from "./base.query";
import { onMessageSendStarted } from "./handlers";
import { removeMessage } from "../slices/message";
export const messageApi = createApi({
reducerPath: "messageApi",
@@ -39,13 +40,33 @@ export const messageApi = createApi({
query: (mid) => ({
url: `/message/${mid}`,
method: "DELETE"
})
}),
async onQueryStarted(mid, { dispatch, queryFulfilled }) {
try {
await queryFulfilled;
} catch (err) {
// 出错也得删
console.log("delete message error", err);
dispatch(removeMessage(mid));
}
}
}),
deleteMessages: builder.query<number, number[]>({
query: (mids) => ({
url: `/message/bulk/${mids}`,
method: "DELETE"
})
}),
async onQueryStarted(mids, { dispatch, queryFulfilled }) {
try {
await queryFulfilled;
} catch (err) {
// 出错也得删
console.log("delete messages error", err);
mids.forEach((mid) => {
dispatch(removeMessage(mid));
});
}
}
}),
prepareUploadFile: builder.mutation<string, { content_type: string; filename: string }>({
query: (meta = { content_type: "", filename: "" }) => ({