refactor: delete message even api error
This commit is contained in:
@@ -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");
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -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: "" }) => ({
|
||||||
|
|||||||
Reference in New Issue
Block a user