84 lines
2.1 KiB
TypeScript
84 lines
2.1 KiB
TypeScript
import type { NextRequest, NextResponse } from 'next/server';
|
|
|
|
import { STATUS, response, handleError } from 'src/utils/response';
|
|
|
|
import { listUsers, deleteUser, updateUser, createNewUser } from 'src/app/services/user-item.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 OPERATION = 'User - Create';
|
|
const { data } = await req.json();
|
|
|
|
try {
|
|
// TODO: temporary ignore output from function due to `createNewUser` is still a dummy
|
|
// const createResult = await createNewUser(data);
|
|
await createNewUser(data);
|
|
|
|
return response(OPERATION, STATUS.OK);
|
|
} catch (error) {
|
|
return handleError(OPERATION, 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.toString(), 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);
|
|
|
|
await deleteUser(id);
|
|
|
|
return response('User - Delete', STATUS.OK);
|
|
} catch (error) {
|
|
return handleError('User - Delete', error);
|
|
}
|
|
}
|