43 lines
999 B
TypeScript
43 lines
999 B
TypeScript
import { getSupabaseServerClient } from '@kit/supabase/server-client';
|
|
|
|
export enum PageViewAction {
|
|
VIEW_ANALYSIS_RESULTS = 'VIEW_ANALYSIS_RESULTS',
|
|
REGISTRATION_SUCCESS = 'REGISTRATION_SUCCESS',
|
|
VIEW_ORDER_ANALYSIS = 'VIEW_ORDER_ANALYSIS',
|
|
VIEW_TEAM_ACCOUNT_DASHBOARD = 'VIEW_TEAM_ACCOUNT_DASHBOARD',
|
|
}
|
|
|
|
export const createPageViewLog = async ({
|
|
accountId,
|
|
action,
|
|
}: {
|
|
accountId: string;
|
|
action: PageViewAction;
|
|
}) => {
|
|
try {
|
|
const supabase = getSupabaseServerClient();
|
|
|
|
const {
|
|
data: { user },
|
|
error: userError,
|
|
} = await supabase.auth.getUser();
|
|
|
|
if (userError || !user) {
|
|
console.error('No authenticated user found; skipping audit insert');
|
|
return;
|
|
}
|
|
|
|
await supabase
|
|
.schema('audit')
|
|
.from('page_views')
|
|
.insert({
|
|
account_id: accountId,
|
|
action,
|
|
changed_by: user.id,
|
|
})
|
|
.throwOnError();
|
|
} catch (error) {
|
|
console.error('Failed to insert page view log', error);
|
|
}
|
|
};
|