From 883fd7e9bfca7ea0e46de8213971d541cfb91934 Mon Sep 17 00:00:00 2001 From: motatoes Date: Tue, 19 Nov 2024 21:55:22 +0000 Subject: [PATCH] temp commit --- .../onboarding/OrganizationCreation.tsx | 12 +++--- src/data/user/organizations.ts | 37 +++++++------------ 2 files changed, 21 insertions(+), 28 deletions(-) diff --git a/src/app/(dynamic-pages)/(authenticated-pages)/onboarding/OrganizationCreation.tsx b/src/app/(dynamic-pages)/(authenticated-pages)/onboarding/OrganizationCreation.tsx index b9a58845..53498cdc 100644 --- a/src/app/(dynamic-pages)/(authenticated-pages)/onboarding/OrganizationCreation.tsx +++ b/src/app/(dynamic-pages)/(authenticated-pages)/onboarding/OrganizationCreation.tsx @@ -3,7 +3,7 @@ import { CardContent, CardDescription, CardFooter, CardHeader, CardTitle } from import { Input } from "@/components/ui/input"; import { Label } from "@/components/ui/label"; import { useToast } from "@/components/ui/use-toast"; -import { createOrganization, setUserMetaDataWithOrgCreated } from "@/data/user/organizations"; +import { createOrganization } from "@/data/user/organizations"; import { generateOrganizationSlug } from "@/lib/utils"; import { CreateOrganizationSchema, createOrganizationSchema } from "@/utils/zod-schemas/organization"; import { zodResolver } from "@hookform/resolvers/zod"; @@ -24,15 +24,17 @@ export function OrganizationCreation({ onSuccess }: OrganizationCreationProps) { useEffect(() => { if (process.env.NEXT_PUBLIC_SKIP_ORG_CREATION === "true") { - setUserMetaDataWithOrgCreated() - onSuccess() - return + createOrgMutation.mutate({ "organizationTitle": "digger", organizationSlug: "digger" }); } }, [onSuccess]) const createOrgMutation = useMutation({ mutationFn: async ({ organizationTitle, organizationSlug }: CreateOrganizationSchema) => { - return createOrganization(organizationTitle, organizationSlug, { isOnboardingFlow: true }) + if (process.env.NEXT_PUBLIC_SKIP_ORG_CREATION === "true") { + return createOrganization(organizationTitle, organizationSlug, { isOnboardingFlow: true, ignoreIfOrgExists: true }) + } else { + return createOrganization(organizationTitle, organizationSlug, { isOnboardingFlow: true }) + } }, onSuccess: (data) => { const { data: orgId } = data as { data: string } diff --git a/src/data/user/organizations.ts b/src/data/user/organizations.ts index e4d4ebb8..2f29377a 100644 --- a/src/data/user/organizations.ts +++ b/src/data/user/organizations.ts @@ -11,7 +11,6 @@ import type { UnwrapPromise, } from '@/types'; import { serverGetLoggedInUser } from '@/utils/server/serverGetLoggedInUser'; -import type { AuthUserMetadata } from '@/utils/zod-schemas/authUserMetadata'; import { revalidatePath } from 'next/cache'; import { v4 as uuidv4 } from 'uuid'; import { refreshSessionAction } from './session'; @@ -56,15 +55,17 @@ export const createOrganization = async ( slug: string, { isOnboardingFlow = false, + ignoreIfOrgExists = false, }: { isOnboardingFlow?: boolean; + ignoreIfOrgExists?: boolean; } = {}, ): Promise> => { try { const supabaseClient = createSupabaseUserServerActionClient(); const user = await serverGetLoggedInUser(); - const organizationId = uuidv4(); + let organizationId = uuidv4(); if (RESTRICTED_SLUG_NAMES.includes(slug)) { return { status: 'error', message: 'Slug is restricted' }; @@ -87,7 +88,17 @@ export const createOrganization = async ( if (insertError) { console.error('Error inserting organization:', insertError); - return { status: 'error', message: insertError.message }; + // if set we simply get the org if it already exists + if (ignoreIfOrgExists) { + try { + organizationId = await getOrganizationIdBySlug(slug) + } catch(fetchError) { + return { status: 'error', message: fetchError.message }; + } + + } else { + return { status: 'error', message: insertError.message }; + } } const { error: orgMemberErrors } = await supabaseAdminClient @@ -144,26 +155,6 @@ export const createOrganization = async ( } }; -export const setUserMetaDataWithOrgCreated = async () => { - const supabaseClient = createSupabaseUserServerComponentClient(); - const user = await serverGetLoggedInUser(); - const updateUserMetadataPayload: Partial = { - onboardingHasCreatedOrganization: true, - }; - - const updateUserMetadataResponse = await supabaseClient.auth.updateUser({ - data: updateUserMetadataPayload, - }); - - if (updateUserMetadataResponse.error) { - console.error( - 'Error updating user metadata:', - updateUserMetadataResponse.error, - ); - - throw updateUserMetadataResponse.error; - } -}; export async function fetchSlimOrganizations() { const currentUser = await serverGetLoggedInUser();