import type { NextRequest, NextResponse } from 'next/server'; import { STATUS, response, handleError } from 'src/utils/response'; import { listUsers, deleteUser, updateUser, createNewUser } from 'src/app/services/userItem.service'; // import prisma from '../../lib/prisma'; export async function GET(req: NextRequest, res: NextResponse) { try { const result = await listUsers(); return response(result, STATUS.OK); } catch (error) { return handleError('User - Get latest', error); } } /** *************************************** * POST - create User *************************************** */ export async function POST(req: NextRequest) { const { data } = await req.json(); try { const createResult = await createNewUser(data); return response(createResult, STATUS.OK); } catch (error) { return handleError('User - Create', error); } } /** *************************************** * PUT - update User *************************************** */ export async function PUT(req: NextRequest) { const { searchParams } = req.nextUrl; const userId = searchParams.get('userId'); const { data } = await req.json(); try { if (!userId) throw new Error('userId cannot null'); const id: number = parseInt(userId); const updateResult = await updateUser(id, data); return response(updateResult, STATUS.OK); } catch (error) { return handleError('User - Update', error); } } /** *************************************** * DELETE - update User *************************************** */ export async function DELETE(req: NextRequest) { const { searchParams } = req.nextUrl; const userId = searchParams.get('userId'); const { data } = await req.json(); try { if (!userId) throw new Error('userId cannot null'); const id: number = parseInt(userId); const deleteResult = await deleteUser(id); return response(deleteResult, STATUS.OK); } catch (error) { return handleError('User - Update', error); } }