From 549097efa6ce7a4488b92d6b1a32ddf8b2ec9d43 Mon Sep 17 00:00:00 2001 From: giancarlo Date: Fri, 3 May 2024 09:09:47 +0700 Subject: [PATCH] Add logging to team account creation and update The commit enhances the team account creation and update features by adding logging capabilities. It renames createOrganizationAccountAction to createTeamAccountAction for better contextual relevance. The logging provides informative insights into the process of creating and updating the name of the team account, aiding in easier debugging in the event of an error. --- .../components/create-team-account-dialog.tsx | 4 ++-- .../create-team-account-server-actions.ts | 16 +++++++++++++++- .../actions/team-details-server-actions.ts | 17 +++++++++++++++-- 3 files changed, 32 insertions(+), 5 deletions(-) diff --git a/packages/features/team-accounts/src/components/create-team-account-dialog.tsx b/packages/features/team-accounts/src/components/create-team-account-dialog.tsx index 3cbe0c6ec..41f88b430 100644 --- a/packages/features/team-accounts/src/components/create-team-account-dialog.tsx +++ b/packages/features/team-accounts/src/components/create-team-account-dialog.tsx @@ -27,7 +27,7 @@ import { Input } from '@kit/ui/input'; import { Trans } from '@kit/ui/trans'; import { CreateTeamSchema } from '../schema/create-team.schema'; -import { createOrganizationAccountAction } from '../server/actions/create-team-account-server-actions'; +import { createTeamAccountAction } from '../server/actions/create-team-account-server-actions'; export function CreateTeamAccountDialog( props: React.PropsWithChildren<{ @@ -75,7 +75,7 @@ function CreateOrganizationAccountForm(props: { onClose: () => void }) { onSubmit={form.handleSubmit((data) => { startTransition(async () => { try { - await createOrganizationAccountAction(data); + await createTeamAccountAction(data); } catch (error) { setError(true); } diff --git a/packages/features/team-accounts/src/server/actions/create-team-account-server-actions.ts b/packages/features/team-accounts/src/server/actions/create-team-account-server-actions.ts index 47f54724f..f6cd2f4b6 100644 --- a/packages/features/team-accounts/src/server/actions/create-team-account-server-actions.ts +++ b/packages/features/team-accounts/src/server/actions/create-team-account-server-actions.ts @@ -3,25 +3,39 @@ import { redirect } from 'next/navigation'; import { enhanceAction } from '@kit/next/actions'; +import { getLogger } from '@kit/shared/logger'; import { getSupabaseServerActionClient } from '@kit/supabase/server-actions-client'; import { CreateTeamSchema } from '../../schema/create-team.schema'; import { createCreateTeamAccountService } from '../services/create-team-account.service'; -export const createOrganizationAccountAction = enhanceAction( +export const createTeamAccountAction = enhanceAction( async ({ name }, user) => { + const logger = await getLogger(); const client = getSupabaseServerActionClient(); const service = createCreateTeamAccountService(client); + const ctx = { + name: 'team-accounts.create', + userId: user.id, + accountName: name, + }; + + logger.info(ctx, `Creating team account...`); + const { data, error } = await service.createNewOrganizationAccount({ name, userId: user.id, }); if (error) { + logger.error({ ...ctx, error }, `Failed to create team account`); + throw new Error('Error creating team account'); } + logger.info(ctx, `Team account created`); + const accountHomePath = '/home/' + data.slug; redirect(accountHomePath); diff --git a/packages/features/team-accounts/src/server/actions/team-details-server-actions.ts b/packages/features/team-accounts/src/server/actions/team-details-server-actions.ts index f20420e47..1a5f174f6 100644 --- a/packages/features/team-accounts/src/server/actions/team-details-server-actions.ts +++ b/packages/features/team-accounts/src/server/actions/team-details-server-actions.ts @@ -3,15 +3,24 @@ import { redirect } from 'next/navigation'; import { enhanceAction } from '@kit/next/actions'; -import { getSupabaseServerComponentClient } from '@kit/supabase/server-component-client'; +import { getLogger } from '@kit/shared/logger'; +import { getSupabaseServerActionClient } from '@kit/supabase/server-actions-client'; import { UpdateTeamNameSchema } from '../../schema/update-team-name.schema'; export const updateTeamAccountName = enhanceAction( async (params) => { - const client = getSupabaseServerComponentClient(); + const client = getSupabaseServerActionClient(); + const logger = await getLogger(); const { name, path, slug } = params; + const ctx = { + name: 'team-accounts.update', + accountName: name, + }; + + logger.info(ctx, `Updating team name...`); + const { error, data } = await client .from('accounts') .update({ @@ -25,11 +34,15 @@ export const updateTeamAccountName = enhanceAction( .single(); if (error) { + logger.error({ ...ctx, error }, `Failed to update team name`); + throw error; } const newSlug = data.slug; + logger.info(ctx, `Team name updated`); + if (newSlug) { const nextPath = path.replace('[account]', newSlug);