Skip to content

Commit

Permalink
EDF: [premieroctet#156] ensure a user can't buy more than quantity_ma…
Browse files Browse the repository at this point in the history
…x_per_user tickets
  • Loading branch information
Bastien-Wappizy committed Dec 23, 2024
1 parent 6269872 commit c519bf8
Showing 1 changed file with 4 additions and 2 deletions.
6 changes: 4 additions & 2 deletions backend/web/server/plugins/entreprisedufutur/actions.js
Original file line number Diff line number Diff line change
Expand Up @@ -159,9 +159,11 @@ const generateOrder = async ({value,nb_tickets}, user) => {
throw new TypeError(`nb_tickets is not a number`)
}

//loggedUser have bought less than quantity_max_per_user tickets
const boughtNumber = await UserTicket.countDocuments({buyer: user._id, event_ticket:value})
const eventTicket = await EventTicket.findById(value, ['remaining_tickets', 'quantity_max_per_user'])
if (nb_tickets> eventTicket.quantity_max_per_user) {
throw new ForbiddenError(`Le nombre de tickets ne peut pas dépasser ${eventTicket.quantity_max_per_user}`)
if (nb_tickets + boughtNumber> eventTicket.quantity_max_per_user) {
throw new ForbiddenError(`Le nombre de billets de cette catégorie achetés par une même personne ne peut pas dépasser ${eventTicket.quantity_max_per_user}, vous en avez acheté ${nb_tickets + boughtNumber}`)
}

const order = await Order.create({event_ticket: value, status: ORDER_STATUS_IN_PROGRESS})
Expand Down

0 comments on commit c519bf8

Please sign in to comment.