feat: auto delete msg

This commit is contained in:
Tristan Yang
2022-12-19 14:36:47 +08:00
parent a75f9c59b4
commit e297411d00
13 changed files with 404 additions and 5 deletions
+34 -2
View File
@@ -6,7 +6,7 @@ import { fillUsers } from "../slices/users";
import BASE_URL, { ContentTypes } from "../config";
import { onMessageSendStarted } from "./handlers";
import handleChatMessage from "../../common/hook/useStreaming/chat.handler";
import { User, UserDTO, UserForAdmin, UserForAdminDTO } from "../../types/user";
import { AutoDeleteMsgDTO, User, UserCreateDTO, UserDTO, UserForAdmin, UserForAdminDTO } from "../../types/user";
import { ChatMessage, ContentTypeKey, MuteDTO } from "../../types/message";
import { RootState } from "../store";
@@ -39,6 +39,13 @@ export const userApi = createApi({
deleteUser: builder.query<void, number>({
query: (uid) => ({ url: `/admin/user/${uid}`, method: "DELETE" })
}),
createUser: builder.mutation<UserForAdmin, UserCreateDTO>({
query: (data) => ({
url: `/admin/user`,
body: data,
method: "POST"
})
}),
updateUser: builder.mutation<UserForAdmin, UserForAdminDTO>({
query: ({ id, ...rest }) => ({
url: `/admin/user/${id}`,
@@ -46,6 +53,15 @@ export const userApi = createApi({
method: "PUT"
})
}),
updateAutoDeleteMsg: builder.mutation<void, AutoDeleteMsgDTO>({
query: (data) => ({
url: `/user/burn-after-reading`,
body: data,
method: "POST"
})
}),
updateMuteSetting: builder.mutation<void, MuteDTO>({
query: (data) => ({
url: `/user/mute`,
@@ -71,6 +87,19 @@ export const userApi = createApi({
body: data
})
}),
updateAvatarByAdmin: builder.mutation<void, { uid: number, file: File }>({
query: ({ uid, file }) => ({
headers: {
"content-type": "image/png"
},
url: `admin/user/${uid}/avatar`,
method: "POST",
body: file
})
}),
getUserByAdmin: builder.query<UserForAdmin, number>({
query: (uid) => ({ url: `/admin/user/${uid}` })
}),
updateInfo: builder.mutation<User, UserDTO>({
query: (data) => ({
url: `user`,
@@ -78,7 +107,6 @@ export const userApi = createApi({
body: data
})
}),
sendMsg: builder.mutation<
number,
{ id: number; content: string; type: ContentTypeKey; properties?: object }
@@ -117,6 +145,10 @@ export const userApi = createApi({
});
export const {
useGetUserByAdminQuery,
useUpdateAvatarByAdminMutation,
useUpdateAutoDeleteMsgMutation,
useCreateUserMutation,
useLazyGetHistoryMessagesQuery,
useUpdateUserMutation,
useUpdateMuteSettingMutation,