Skip to content

Commit

Permalink
feat: prevent user request account deletion if he has bookings
Browse files Browse the repository at this point in the history
  • Loading branch information
yousefyasser committed Nov 11, 2024
1 parent 9d633dc commit 40df453
Showing 1 changed file with 18 additions and 0 deletions.
18 changes: 18 additions & 0 deletions backend/src/controllers/users/user.controller.ts
Original file line number Diff line number Diff line change
Expand Up @@ -100,6 +100,24 @@ const updateUser = async (req: Request, res: Response) => {
const requestAccountDeletion = async (req: Request, res: Response) => {
try {
const userId: string = req.user.userId;

const userItineraryBookings = await userRepo.getItinerary(userId);
const unattendedItineraryBookings =
userItineraryBookings?.itinerary_bookings.filter((booking: any) =>
['pending', 'confirmed'].includes(booking.status)
) || [];

const userActivityBookings = await userRepo.getItinerary(userId);
const unattendedActivityBookings =
userActivityBookings?.activity_bookings.filter((booking: any) =>
['pending', 'confirmed'].includes(booking.status)
) || [];

if (unattendedItineraryBookings.length > 0 || unattendedActivityBookings.length > 0) {
res.status(ResponseStatusCodes.BAD_REQUEST).json({ message: 'You have unattended bookings' });
return;
}

await userRepo.requestAccountDeletion(userId);
const response = {
message: 'Account deletion requested successfully',
Expand Down

0 comments on commit 40df453

Please sign in to comment.