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; break;
case 404: case 404:
{ {
const whiteList404 = ["login", "getArchiveMessage", "preCheckFileFromUrl"]; const whiteList404 = [
"login",
"getArchiveMessage",
"preCheckFileFromUrl",
"deleteMessage",
"deleteMessages"
];
if (!whiteList404.includes(api.endpoint)) { if (!whiteList404.includes(api.endpoint)) {
toast.error("Request Not Found"); toast.error("Request Not Found");
} }
+23 -2
View File
@@ -13,6 +13,7 @@ import { upsertArchiveMessage } from "../slices/message.archive";
import { RootState } from "../store"; import { RootState } from "../store";
import baseQuery from "./base.query"; import baseQuery from "./base.query";
import { onMessageSendStarted } from "./handlers"; import { onMessageSendStarted } from "./handlers";
import { removeMessage } from "../slices/message";
export const messageApi = createApi({ export const messageApi = createApi({
reducerPath: "messageApi", reducerPath: "messageApi",
@@ -39,13 +40,33 @@ export const messageApi = createApi({
query: (mid) => ({ query: (mid) => ({
url: `/message/${mid}`, url: `/message/${mid}`,
method: "DELETE" 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[]>({ deleteMessages: builder.query<number, number[]>({
query: (mids) => ({ query: (mids) => ({
url: `/message/bulk/${mids}`, url: `/message/bulk/${mids}`,
method: "DELETE" 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 }>({ prepareUploadFile: builder.mutation<string, { content_type: string; filename: string }>({
query: (meta = { content_type: "", filename: "" }) => ({ query: (meta = { content_type: "", filename: "" }) => ({