Skip to content

Commit

Permalink
Merge pull request #31 from kentibs/feat/events-api
Browse files Browse the repository at this point in the history
feat: add  event get api endpoints
  • Loading branch information
Tibz-Dankan authored Jan 8, 2024
2 parents 53e634e + a03cec7 commit 227d9ee
Show file tree
Hide file tree
Showing 3 changed files with 61 additions and 3 deletions.
2 changes: 1 addition & 1 deletion prisma/schema.prisma
Original file line number Diff line number Diff line change
Expand Up @@ -89,7 +89,7 @@ model Event {
description String @db.Text
createdAt DateTime @default(now())
updatedAt DateTime? @updatedAt
EventImages EventImage[]
eventImages EventImage[]
@@index([eventId])
@@index([postByUserId])
Expand Down
58 changes: 56 additions & 2 deletions src/controllers/eventsController.ts
Original file line number Diff line number Diff line change
Expand Up @@ -81,7 +81,7 @@ export const uploadEventImages = asyncHandler(

const eventImages = await EventImage.findMany({
where: { eventId: { equals: eventId } },
select: { imageUrl: true },
select: { eventImageId: true, imageUrl: true },
});
event.eventImages = eventImages;

Expand Down Expand Up @@ -125,8 +125,62 @@ export const updateEvent = asyncHandler(

res.status(200).json({
status: "success",
message: "Event created successfully",
message: "Event updated successfully",
data: { event: updatedEvent },
});
}
);

export const getEvent = asyncHandler(
async (req: Request, res: Response, next: NextFunction) => {
const eventId = req.params.eventId;
if (!eventId) return next(new AppError("Please provide eventId", 400));

const event = await Event.findFirst({
where: { eventId: eventId },
include: {
eventImages: {
select: { eventImageId: true, imageUrl: true },
},
},
});

res.status(200).json({
status: "success",
message: "Event fetched successfully",
data: { event: event },
});
}
);

export const getAllEvents = asyncHandler(
async (req: Request, res: Response, next: NextFunction) => {
const skip = Number(req.query.skip);
const take = Number(req.query.take);
const page = Number(req.query.page);

if (skip !== 0 && !skip) {
return next(new AppError("Please provide skip", 400));
}
if (!take) return next(new AppError("Please provide take", 400));
if (!page) return next(new AppError("Please provide page number", 400));

const event = await Event.findMany({
include: {
eventImages: {
select: { eventImageId: true, imageUrl: true },
},
},
orderBy: { createdAt: "desc" },
take: take,
skip: skip,
});
// const event = await Event.findMany();

res.status(200).json({
status: "success",
message: "Events fetched successfully",
data: { event: event },
});
}
);
4 changes: 4 additions & 0 deletions src/routes/event/eventRoutes.ts
Original file line number Diff line number Diff line change
Expand Up @@ -5,6 +5,8 @@ import {
postEvent,
uploadEventImages,
updateEvent,
getEvent,
getAllEvents,
} from "../../controllers/eventsController";

const router = express.Router();
Expand All @@ -17,5 +19,7 @@ router.post(
uploadEventImages
);
router.patch("/update-event/:eventId", protectSuperAdmin, updateEvent);
router.get("/get-event/:eventId", getEvent);
router.get("/get-all-events", getAllEvents);

export { router as eventRoutes };

0 comments on commit 227d9ee

Please sign in to comment.