Skip to content

Commit

Permalink
Merge pull request #33 from kentibs/feat/events-api
Browse files Browse the repository at this point in the history
feat: add  event get api endpoints to update and delete event images
  • Loading branch information
Tibz-Dankan authored Jan 8, 2024
2 parents 0972fe0 + fdc598c commit 1ee36e7
Show file tree
Hide file tree
Showing 2 changed files with 74 additions and 1 deletion.
64 changes: 64 additions & 0 deletions src/controllers/eventsController.ts
Original file line number Diff line number Diff line change
Expand Up @@ -183,3 +183,67 @@ export const getAllEvents = asyncHandler(
});
}
);

export const updateEventImage = asyncHandler(
async (req: Request, res: Response, next: NextFunction) => {
const file = req.file as TFile;
const eventImageId = req.params.eventImageId;
if (!file) return next(new AppError("Please provide event image", 400));
if (!eventImageId) {
return next(new AppError("Please provide eventImageId", 400));
}

const savedImage = await EventImage.findFirst({
where: { eventImageId: eventImageId },
});
if (!savedImage) {
return next(new AppError("Image with provided Id is not found", 404));
}
const savedImagePath = savedImage?.imagePath as string;

const imagePath = `events/${Date.now()}_${file.originalname}`;
const upload = await new Upload(imagePath, next).update(
file,
savedImagePath
);

const url = upload?.url as string;

const updatedEventImage = await EventImage.update({
where: { eventImageId: eventImageId },
data: { imageUrl: url, imagePath: imagePath },
select: { eventImageId: true, imageUrl: true },
});

res.status(200).json({
status: "success",
message: "Event Image updated successfully",
data: { eventImage: updatedEventImage },
});
}
);

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

const savedImage = await EventImage.findFirst({
where: { eventImageId: eventImageId },
});
if (!savedImage) {
return next(new AppError("Image with provided Id is not found", 404));
}
const savedImagePath = savedImage?.imagePath as string;

await new Upload(savedImagePath, next).delete();
await EventImage.delete({ where: { eventImageId: eventImageId } });

res.status(200).json({
status: "success",
message: "Event Image deleted successfully",
});
}
);
11 changes: 10 additions & 1 deletion src/routes/event/eventRoutes.ts
Original file line number Diff line number Diff line change
@@ -1,12 +1,14 @@
import express from "express";
import { protectSuperAdmin } from "../../controllers/userController";
import { uploadFiles } from "../../utils/upload";
import { uploadFiles, uploadFile } from "../../utils/upload";
import {
postEvent,
uploadEventImages,
updateEvent,
getEvent,
getAllEvents,
updateEventImage,
deleteEventImage,
} from "../../controllers/eventsController";

const router = express.Router();
Expand All @@ -21,5 +23,12 @@ router.post(
router.patch("/update-event/:eventId", protectSuperAdmin, updateEvent);
router.get("/get-event/:eventId", getEvent);
router.get("/get-all-events", getAllEvents);
router.patch(
"/update-event-image/:eventImageId",
uploadFile,
protectSuperAdmin,
updateEventImage
);
router.delete("/delete-event-image/:eventImageId", deleteEventImage);

export { router as eventRoutes };

0 comments on commit 1ee36e7

Please sign in to comment.