Add account hierarchy framework with migrations, RLS policies, and UI components
This commit is contained in:
@@ -1,7 +1,9 @@
|
||||
'use server';
|
||||
|
||||
import { z } from 'zod';
|
||||
import { revalidatePath } from 'next/cache';
|
||||
|
||||
import { z } from 'zod';
|
||||
|
||||
import { authActionClient } from '@kit/next/safe-action';
|
||||
import { getLogger } from '@kit/shared/logger';
|
||||
import { getSupabaseServerClient } from '@kit/supabase/server-client';
|
||||
@@ -14,7 +16,6 @@ import {
|
||||
UpdateItemStatusSchema,
|
||||
ReorderItemsSchema,
|
||||
} from '../../schema/meetings.schema';
|
||||
|
||||
import { createMeetingsApi } from '../api';
|
||||
|
||||
const REVALIDATION_PATH = '/home/[account]/meetings';
|
||||
@@ -31,7 +32,10 @@ export const createProtocol = authActionClient
|
||||
const api = createMeetingsApi(client);
|
||||
const userId = ctx.user.id;
|
||||
|
||||
logger.info({ name: 'meetings.protocol.create' }, 'Protokoll wird erstellt...');
|
||||
logger.info(
|
||||
{ name: 'meetings.protocol.create' },
|
||||
'Protokoll wird erstellt...',
|
||||
);
|
||||
const result = await api.createProtocol(input, userId);
|
||||
logger.info({ name: 'meetings.protocol.create' }, 'Protokoll erstellt');
|
||||
revalidatePath(REVALIDATION_PATH, 'page');
|
||||
@@ -46,7 +50,10 @@ export const updateProtocol = authActionClient
|
||||
const api = createMeetingsApi(client);
|
||||
const userId = ctx.user.id;
|
||||
|
||||
logger.info({ name: 'meetings.protocol.update' }, 'Protokoll wird aktualisiert...');
|
||||
logger.info(
|
||||
{ name: 'meetings.protocol.update' },
|
||||
'Protokoll wird aktualisiert...',
|
||||
);
|
||||
const result = await api.updateProtocol(input, userId);
|
||||
logger.info({ name: 'meetings.protocol.update' }, 'Protokoll aktualisiert');
|
||||
revalidatePath(REVALIDATION_PATH, 'page');
|
||||
@@ -65,7 +72,10 @@ export const deleteProtocol = authActionClient
|
||||
const logger = await getLogger();
|
||||
const api = createMeetingsApi(client);
|
||||
|
||||
logger.info({ name: 'meetings.protocol.delete' }, 'Protokoll wird gelöscht...');
|
||||
logger.info(
|
||||
{ name: 'meetings.protocol.delete' },
|
||||
'Protokoll wird gelöscht...',
|
||||
);
|
||||
await api.deleteProtocol(input.protocolId);
|
||||
logger.info({ name: 'meetings.protocol.delete' }, 'Protokoll gelöscht');
|
||||
revalidatePath(REVALIDATION_PATH, 'page');
|
||||
@@ -84,9 +94,15 @@ export const createProtocolItem = authActionClient
|
||||
const api = createMeetingsApi(client);
|
||||
const userId = ctx.user.id;
|
||||
|
||||
logger.info({ name: 'meetings.item.create' }, 'Tagesordnungspunkt wird erstellt...');
|
||||
logger.info(
|
||||
{ name: 'meetings.item.create' },
|
||||
'Tagesordnungspunkt wird erstellt...',
|
||||
);
|
||||
const result = await api.createItem(input, userId);
|
||||
logger.info({ name: 'meetings.item.create' }, 'Tagesordnungspunkt erstellt');
|
||||
logger.info(
|
||||
{ name: 'meetings.item.create' },
|
||||
'Tagesordnungspunkt erstellt',
|
||||
);
|
||||
revalidatePath(REVALIDATION_PATH, 'page');
|
||||
return { success: true, data: result };
|
||||
});
|
||||
@@ -99,9 +115,15 @@ export const updateProtocolItem = authActionClient
|
||||
const api = createMeetingsApi(client);
|
||||
const userId = ctx.user.id;
|
||||
|
||||
logger.info({ name: 'meetings.item.update' }, 'Tagesordnungspunkt wird aktualisiert...');
|
||||
logger.info(
|
||||
{ name: 'meetings.item.update' },
|
||||
'Tagesordnungspunkt wird aktualisiert...',
|
||||
);
|
||||
const result = await api.updateItem(input, userId);
|
||||
logger.info({ name: 'meetings.item.update' }, 'Tagesordnungspunkt aktualisiert');
|
||||
logger.info(
|
||||
{ name: 'meetings.item.update' },
|
||||
'Tagesordnungspunkt aktualisiert',
|
||||
);
|
||||
revalidatePath(REVALIDATION_PATH, 'page');
|
||||
return { success: true, data: result };
|
||||
});
|
||||
@@ -132,9 +154,15 @@ export const deleteProtocolItem = authActionClient
|
||||
const logger = await getLogger();
|
||||
const api = createMeetingsApi(client);
|
||||
|
||||
logger.info({ name: 'meetings.item.delete' }, 'Tagesordnungspunkt wird gelöscht...');
|
||||
logger.info(
|
||||
{ name: 'meetings.item.delete' },
|
||||
'Tagesordnungspunkt wird gelöscht...',
|
||||
);
|
||||
await api.deleteItem(input.itemId);
|
||||
logger.info({ name: 'meetings.item.delete' }, 'Tagesordnungspunkt gelöscht');
|
||||
logger.info(
|
||||
{ name: 'meetings.item.delete' },
|
||||
'Tagesordnungspunkt gelöscht',
|
||||
);
|
||||
revalidatePath(REVALIDATION_PATH, 'page');
|
||||
return { success: true };
|
||||
});
|
||||
@@ -146,7 +174,10 @@ export const reorderProtocolItems = authActionClient
|
||||
const logger = await getLogger();
|
||||
const api = createMeetingsApi(client);
|
||||
|
||||
logger.info({ name: 'meetings.items.reorder' }, 'Reihenfolge wird aktualisiert...');
|
||||
logger.info(
|
||||
{ name: 'meetings.items.reorder' },
|
||||
'Reihenfolge wird aktualisiert...',
|
||||
);
|
||||
await api.reorderItems(input);
|
||||
logger.info({ name: 'meetings.items.reorder' }, 'Reihenfolge aktualisiert');
|
||||
revalidatePath(REVALIDATION_PATH, 'page');
|
||||
@@ -173,7 +204,10 @@ export const addProtocolAttachment = authActionClient
|
||||
const api = createMeetingsApi(client);
|
||||
const userId = ctx.user.id;
|
||||
|
||||
logger.info({ name: 'meetings.attachment.add' }, 'Anhang wird hinzugefügt...');
|
||||
logger.info(
|
||||
{ name: 'meetings.attachment.add' },
|
||||
'Anhang wird hinzugefügt...',
|
||||
);
|
||||
const result = await api.addAttachment(
|
||||
input.protocolId,
|
||||
input.fileName,
|
||||
@@ -198,7 +232,10 @@ export const deleteProtocolAttachment = authActionClient
|
||||
const logger = await getLogger();
|
||||
const api = createMeetingsApi(client);
|
||||
|
||||
logger.info({ name: 'meetings.attachment.delete' }, 'Anhang wird gelöscht...');
|
||||
logger.info(
|
||||
{ name: 'meetings.attachment.delete' },
|
||||
'Anhang wird gelöscht...',
|
||||
);
|
||||
await api.deleteAttachment(input.attachmentId);
|
||||
logger.info({ name: 'meetings.attachment.delete' }, 'Anhang gelöscht');
|
||||
revalidatePath(REVALIDATION_PATH, 'page');
|
||||
|
||||
Reference in New Issue
Block a user