From 80311432f7f20c2a6686f150a1262904a4558ae4 Mon Sep 17 00:00:00 2001 From: Yume <2839681263@qq.com> Date: Fri, 23 May 2025 00:42:39 +0800 Subject: [PATCH] feat(UI): Automatically add new users to the "mega" organization --- moon/apps/web/pages/index.tsx | 47 +++++++++++++++++++++-------------- 1 file changed, 28 insertions(+), 19 deletions(-) diff --git a/moon/apps/web/pages/index.tsx b/moon/apps/web/pages/index.tsx index 10764393f..8ed8310b0 100644 --- a/moon/apps/web/pages/index.tsx +++ b/moon/apps/web/pages/index.tsx @@ -1,5 +1,5 @@ import { SCOPE_COOKIE_NAME } from '@gitmono/config'; -import { ApiErrorTypes, OrganizationsPostRequest } from '@gitmono/types'; +import { ApiErrorTypes } from '@gitmono/types'; import { GetServerSideProps } from 'next'; import { userAgentFromString } from 'next/server'; import { apiCookieHeaders } from '@/utils/apiCookieHeaders'; @@ -18,7 +18,7 @@ export const getServerSideProps: GetServerSideProps = async ({ req, query }) => .getOrganizationMemberships() .request({ headers }) .then((res) => - res.map((m) => m.organization) + res.map(m => m.organization) .filter(o => o !== null) ) @@ -51,34 +51,43 @@ export const getServerSideProps: GetServerSideProps = async ({ req, query }) => } } } else { - const defaultOrgData: OrganizationsPostRequest = { - name: "My First Organization", - slug: "my-first-organization", - avatar_path: null, - role: "software-engineer", - org_size: "1", - source: "google", - why: "Please enter your purpose." - } + const userData = await apiClient.users + .getMe() + .request({ headers }) + .then((res) => res) + + await apiClient.organizations.postInvitations().request( + 'mega', + { + invitations: [ + { + email: userData.email, + role: 'member' + } + ] + }, + { headers } + ) - apiClient.organizations - .postOrganizations() - .request(defaultOrgData,{ headers }) - .catch((e) => { - throw new Error("postOrganizationError: " + e.message) - }) + const invitations = await apiClient.users.getMeOrganizationInvitations().request({ headers }) + + for (let i of invitations) { + if (i.organization?.slug === 'mega') { + await apiClient.invitationsByToken.postInvitationsByTokenAccept().request(i.token!!, { headers }) + } + } if (device.type === 'mobile') { return { redirect: { - destination: `/${defaultOrgData.slug}/${query.path ?? 'home'}`, + destination: `/mega/${query.path ?? 'home'}`, permanent: false } } } return { redirect: { - destination: `/${defaultOrgData.slug}/${query.path ?? ''}`, + destination: `/mega/${query.path ?? ''}`, permanent: false } }