All files / app/(authed)/categorization actions.ts

0% Statements 0/21
0% Branches 0/1
0% Functions 0/1
0% Lines 0/21

Press n or j to go to the next uncovered block, b, p or k for the previous block.

1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22                                           
'use server';

import { revalidatePath } from 'next/cache';
import { requireSession } from '@/lib/session';
import { assignSubtype } from '@/lib/products';
import { logActivity } from '@/lib/activity';

export type ActionState = { error?: string; success?: string };

export async function assignCategoryAction(_prev: ActionState, formData: FormData): Promise<ActionState> {
  const session = await requireSession();
  const productId = String(formData.get('productId') ?? '');
  const subtypeId = String(formData.get('subtypeId') ?? '');
  if (!productId) return { error: 'Missing product id' };
  if (!subtypeId) return { error: 'กรุณาเลือกประเภทสินค้า' };

  await assignSubtype({ productId, subtypeId });
  await logActivity({ userId: session.sub, action: 'product.categorize', detail: `${productId} → ${subtypeId}` });
  revalidatePath('/categorization');
  return { success: 'ย้ายสินค้าเข้าหมวดเรียบร้อย' };
}