feat: more details for invite link

This commit is contained in:
Tristan Yang
2023-06-12 18:48:25 +08:00
parent b698138b67
commit e1a45dc710
13 changed files with 274 additions and 101 deletions
+60
View File
@@ -125,5 +125,65 @@ export const KEY_PWA_INSTALLED = "VOCECHAT_PWA_INSTALLED";
export const KEY_LOCAL_MAGIC_TOKEN = "VOCECHAT_LOCAL_MAGIC_TOKEN";
export const KEY_LOCAL_TRY_PATH = "VOCECHAT_TRY_PATH";
export const Emojis = ["👍", "❤️", "😄", "👀", "👎", "🎉", "🙁", "🚀"];
export const getInviteLinkExpireList = () => [
{
label: i18n.t("auth:invite_expire.min30"),
value: 30 * 60
},
{
label: i18n.t("auth:invite_expire.h1"),
value: 60 * 60
},
{
label: i18n.t("auth:invite_expire.h6"),
value: 6 * 60 * 60
},
{
label: i18n.t("auth:invite_expire.h12"),
value: 12 * 60 * 60
},
{
label: i18n.t("auth:invite_expire.d1"),
value: 24 * 60 * 60
},
{
label: i18n.t("auth:invite_expire.d7"),
value: 7 * 24 * 60 * 60
},
{
label: i18n.t("auth:invite_expire.d30"),
value: 30 * 24 * 60 * 60
}
];
export const getInviteLinkTimesList = () => [
{
label: i18n.t("auth:invite_times.no_limit"),
value: -1
},
{
label: i18n.t("auth:invite_times.time1"),
value: 1
},
{
label: i18n.t("auth:invite_times.times5"),
value: 5
},
{
label: i18n.t("auth:invite_times.times10"),
value: 10
},
{
label: i18n.t("auth:invite_times.times25"),
value: 25
},
{
label: i18n.t("auth:invite_times.times50"),
value: 50
},
{
label: i18n.t("auth:invite_times.times100"),
value: 100
}
];
export default BASE_URL;
+9 -8
View File
@@ -82,15 +82,13 @@ export const channelApi = createApi({
}
}
}),
createInviteLink: builder.query<string, number | void>({
query: (gid) => ({
createInviteLink: builder.query<string, { expire: number; times: number }>({
query: (data) => ({
headers: {
"content-type": "text/plain",
accept: "text/plain"
},
url: gid
? `/group/create_reg_magic_link?expired_in=3600&max_times=1&gid=${gid}`
: `/group/create_reg_magic_link?expired_in=3600&max_times=1`,
url: `/group/create_reg_magic_link?expired_in=${data.expire}&max_times=${data.times}`,
responseHandler: "text"
}),
transformResponse: (link: string) => {
@@ -117,14 +115,17 @@ export const channelApi = createApi({
}
}
}),
createPrivateInviteLink: builder.query<string, number | void>({
query: (gid) => ({
createPrivateInviteLink: builder.query<
string,
{ cid: number; expire: number; times: number | null }
>({
query: (data) => ({
headers: {
"content-type": "text/plain",
accept: "text/plain"
},
// 七天过期
url: `/group/create_invite_private_magic_link?expired_in=604800&max_times=1&gid=${gid}`,
url: `/group/create_invite_private_magic_link?expired_in=${data.expire}&max_times=${data.times}&gid=${data.cid}`,
responseHandler: "text"
}),
transformResponse: (link: string) => {
-18
View File
@@ -21,15 +21,12 @@ import {
TestEmailDTO
} from "@/types/server";
import { User } from "@/types/user";
import { transformInviteLink } from "@/utils";
import BASE_URL, { ContentTypes, IS_OFFICIAL_DEMO, PAYMENT_URL_PREFIX } from "../config";
import { updateInfo } from "../slices/server";
import { updateCallInfo, upsertVoiceList } from "../slices/voice";
import { RootState } from "../store";
import baseQuery from "./base.query";
const defaultExpireDuration = 2 * 24 * 60 * 60;
export const serverApi = createApi({
reducerPath: "serverApi",
baseQuery,
@@ -263,19 +260,6 @@ export const serverApi = createApi({
}
}
}),
createInviteLink: builder.query<string, number>({
query: (expired_in = defaultExpireDuration) => ({
headers: {
"content-type": "text/plain",
accept: "text/plain"
},
url: `/admin/system/create_invite_link?expired_in=${expired_in}`,
responseHandler: "text"
}),
transformResponse: (link: string) => {
return transformInviteLink(link);
}
}),
updateServer: builder.mutation<void, Server>({
query: (data) => ({
url: "admin/system/organization",
@@ -434,8 +418,6 @@ export const {
useLazyGetServerQuery,
useUpdateServerMutation,
useUpdateLogoMutation,
useCreateInviteLinkQuery,
useLazyCreateInviteLinkQuery,
useGetThirdPartySecretQuery,
useUpdateThirdPartySecretMutation,
useCreateAdminMutation,