feat: add server common API

This commit is contained in:
Tristan Yang
2023-04-06 11:38:59 +08:00
parent cd83292372
commit 2130b3650e
3 changed files with 39 additions and 5 deletions
+25 -2
View File
@@ -18,7 +18,8 @@ import {
RenewLicense,
RenewLicenseResponse,
AgoraTokenResponse,
AgoraVoicingListResponse
AgoraVoicingListResponse,
SystemCommon
} from "../../types/server";
import { Channel } from "../../types/channel";
import { ContentTypeKey } from "../../types/message";
@@ -146,6 +147,26 @@ export const serverApi = createApi({
}
}
}),
getSystemCommon: builder.query<SystemCommon, void>({
query: () => ({ url: `admin/system/common` })
}),
updateSystemCommon: builder.mutation<void, Partial<SystemCommon>>({
query: (data) => ({
url: `admin/system/common`,
method: "PUT",
body: data
}),
async onQueryStarted(data, { dispatch, queryFulfilled }) {
try {
await queryFulfilled;
dispatch(
updateInfo(data)
);
} catch {
console.error("update server common error");
}
}
}),
getSMTPConfig: builder.query<SMTPConfig, void>({
query: () => ({ url: `admin/smtp/config` })
}),
@@ -360,5 +381,7 @@ export const {
useGetFrontendUrlQuery,
useLazyGetAgoraTokenQuery,
useGetAgoraConfigQuery,
useGetAgoraVoicingListQuery
useGetAgoraVoicingListQuery,
useUpdateSystemCommonMutation,
useGetSystemCommonQuery
} = serverApi;
+10 -3
View File
@@ -8,6 +8,8 @@ export interface StoredServer extends Server {
link: string;
expire: number;
};
show_user_online_status: boolean,
webclient_auto_update: boolean
}
const initialState: StoredServer = {
upgraded: false,
@@ -17,7 +19,9 @@ const initialState: StoredServer = {
inviteLink: {
link: "",
expire: 0
}
},
show_user_online_status: false,
webclient_auto_update: true
};
const serverSlice = createSlice({
@@ -36,9 +40,12 @@ const serverSlice = createSlice({
},
logo = "", // todo: check missed logo property
name = "",
description = ""
description = "",
show_user_online_status = false,
language = "en",
webclient_auto_update = true
} = action.payload || {};
return { upgraded, name, logo, description, inviteLink };
return { upgraded, name, logo, description, inviteLink, show_user_online_status, language, webclient_auto_update };
},
updateInfo(state, action: PayloadAction<Partial<StoredServer>>) {
const values = action.payload || {};
+4
View File
@@ -6,6 +6,10 @@ export interface Server {
name: string;
description: string;
}
export interface SystemCommon {
show_user_online_status: boolean,
webclient_auto_update: boolean,
}
export interface GithubAuthConfig {
client_id?: string;
client_secret?: string;