"add PartyEvent API endpoints with service layer and test cases"
This commit is contained in:
75
03_source/cms_backend/src/app/api/party-event/route.ts
Normal file
75
03_source/cms_backend/src/app/api/party-event/route.ts
Normal file
@@ -0,0 +1,75 @@
|
||||
import type { NextRequest, NextResponse } from 'next/server';
|
||||
|
||||
import { STATUS, response, handleError } from 'src/utils/response';
|
||||
|
||||
import { listEvents, deleteEvent, updateEvent, createEvent } from 'src/app/services/party-event.service';
|
||||
|
||||
/**
|
||||
**************************************
|
||||
* GET - PartyEvent
|
||||
***************************************
|
||||
*/
|
||||
export async function GET(req: NextRequest, res: NextResponse) {
|
||||
try {
|
||||
const events = await listEvents();
|
||||
return response(events, STATUS.OK);
|
||||
} catch (error) {
|
||||
return handleError('PartyEvent - Get list', error);
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
***************************************
|
||||
* POST - Create PartyEvent
|
||||
***************************************
|
||||
*/
|
||||
export async function POST(req: NextRequest) {
|
||||
const OPERATION = 'PartyEvent - Create';
|
||||
const { data } = await req.json();
|
||||
|
||||
try {
|
||||
const event = await createEvent(data);
|
||||
return response(OPERATION, STATUS.OK);
|
||||
} catch (error) {
|
||||
return handleError(OPERATION, error);
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
***************************************
|
||||
* PUT - Update PartyEvent
|
||||
***************************************
|
||||
*/
|
||||
export async function PUT(req: NextRequest) {
|
||||
const { searchParams } = req.nextUrl;
|
||||
const eventId = searchParams.get('eventId');
|
||||
const { data } = await req.json();
|
||||
|
||||
try {
|
||||
if (!eventId) throw new Error('eventId cannot be null');
|
||||
|
||||
const result = await updateEvent(eventId, data);
|
||||
return response(result, STATUS.OK);
|
||||
} catch (error) {
|
||||
return handleError('PartyEvent - Update', error);
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
***************************************
|
||||
* DELETE - Delete PartyEvent
|
||||
***************************************
|
||||
*/
|
||||
export async function DELETE(req: NextRequest) {
|
||||
const { searchParams } = req.nextUrl;
|
||||
const eventId = searchParams.get('eventId');
|
||||
|
||||
try {
|
||||
if (!eventId) throw new Error('eventId cannot be null');
|
||||
|
||||
await deleteEvent(eventId);
|
||||
return response({ success: true }, STATUS.OK);
|
||||
} catch (error) {
|
||||
return handleError('PartyEvent - Delete', error);
|
||||
}
|
||||
}
|
Reference in New Issue
Block a user