use of alfio.model.Ticket in project alf.io by alfio-event.
the class EventManagerIntegrationTest method testUnboundedTicketsGeneration.
@Test
public void testUnboundedTicketsGeneration() {
List<TicketCategoryModification> categories = Collections.singletonList(new TicketCategoryModification(null, "default", AVAILABLE_SEATS, new DateTimeModification(LocalDate.now(), LocalTime.now()), new DateTimeModification(LocalDate.now(), LocalTime.now()), DESCRIPTION, BigDecimal.TEN, false, "", false, null, null, null, null, null));
Event event = initEvent(categories, organizationRepository, userManager, eventManager, eventRepository).getKey();
List<Ticket> tickets = ticketRepository.findFreeByEventId(event.getId());
assertNotNull(tickets);
assertFalse(tickets.isEmpty());
assertEquals(AVAILABLE_SEATS, tickets.size());
assertTrue(tickets.stream().allMatch(t -> t.getCategoryId() == null));
}
use of alfio.model.Ticket in project alf.io by alfio-event.
the class EventManagerIntegrationTest method testUpdateBoundedCategory.
@Test
public void testUpdateBoundedCategory() {
List<TicketCategoryModification> categories = Collections.singletonList(new TicketCategoryModification(null, "default", 10, new DateTimeModification(LocalDate.now(), LocalTime.now()), new DateTimeModification(LocalDate.now(), LocalTime.now()), DESCRIPTION, BigDecimal.TEN, false, "", false, null, null, null, null, null));
Pair<Event, String> pair = initEvent(categories, organizationRepository, userManager, eventManager, eventRepository);
Event event = pair.getKey();
TicketCategory category = ticketCategoryRepository.findByEventId(event.getId()).get(0);
TicketCategoryModification tcm = new TicketCategoryModification(category.getId(), "default", 20, new DateTimeModification(LocalDate.now(), LocalTime.now()), new DateTimeModification(LocalDate.now(), LocalTime.now()), DESCRIPTION, BigDecimal.TEN, false, "", false, null, null, null, null, null);
eventManager.updateCategory(category.getId(), event.getId(), tcm, pair.getValue());
waitingQueueSubscriptionProcessor.distributeAvailableSeats(event);
List<Ticket> tickets = ticketRepository.findFreeByEventId(event.getId());
assertNotNull(tickets);
assertFalse(tickets.isEmpty());
assertEquals(AVAILABLE_SEATS, tickets.size());
assertEquals(0, tickets.stream().filter(t -> t.getCategoryId() == null).count());
}
use of alfio.model.Ticket in project alf.io by alfio-event.
the class AttendeeManager method registerSponsorScan.
public TicketAndCheckInResult registerSponsorScan(String eventShortName, String ticketUid, String username) {
int userId = userRepository.getByUsername(username).getId();
Optional<Event> maybeEvent = eventRepository.findOptionalByShortName(eventShortName);
if (!maybeEvent.isPresent()) {
return new TicketAndCheckInResult(null, new DefaultCheckInResult(CheckInStatus.EVENT_NOT_FOUND, "event not found"));
}
Event event = maybeEvent.get();
Optional<Ticket> maybeTicket = ticketRepository.findOptionalByUUID(ticketUid);
if (!maybeTicket.isPresent()) {
return new TicketAndCheckInResult(null, new DefaultCheckInResult(CheckInStatus.TICKET_NOT_FOUND, "ticket not found"));
}
Ticket ticket = maybeTicket.get();
if (ticket.getStatus() != Ticket.TicketStatus.CHECKED_IN) {
return new TicketAndCheckInResult(ticket, new DefaultCheckInResult(CheckInStatus.INVALID_TICKET_STATE, "not checked-in"));
}
Optional<ZonedDateTime> existingRegistration = sponsorScanRepository.getRegistrationTimestamp(userId, event.getId(), ticket.getId());
if (!existingRegistration.isPresent()) {
sponsorScanRepository.insert(userId, ZonedDateTime.now(event.getZoneId()), event.getId(), ticket.getId());
}
return new TicketAndCheckInResult(ticket, new DefaultCheckInResult(CheckInStatus.SUCCESS, "success"));
}
use of alfio.model.Ticket in project alf.io by alfio-event.
the class AttendeeManager method retrieveTicket.
public Result<Ticket> retrieveTicket(String eventShortName, String ticketUid, String username) {
Optional<Event> maybeEvent = eventRepository.findOptionalByShortName(eventShortName).filter(e -> userManager.findUserOrganizations(username).stream().anyMatch(o -> o.getId() == e.getOrganizationId()));
if (!maybeEvent.isPresent()) {
return Result.error(ErrorCode.EventError.NOT_FOUND);
}
Event event = maybeEvent.get();
Optional<Ticket> maybeTicket = ticketRepository.findOptionalByUUID(ticketUid).filter(t -> t.getEventId() == event.getId());
return new Result.Builder<Ticket>().checkPrecondition(maybeTicket::isPresent, ErrorCode.custom("ticket_not_found", "ticket not found")).build(maybeTicket::get);
}
use of alfio.model.Ticket in project alf.io by alfio-event.
the class TicketController method generateTicketPdf.
@RequestMapping(value = "/event/{eventName}/ticket/{ticketIdentifier}/download-ticket", method = RequestMethod.GET)
public void generateTicketPdf(@PathVariable("eventName") String eventName, @PathVariable("ticketIdentifier") String ticketIdentifier, HttpServletRequest request, HttpServletResponse response) throws IOException, WriterException {
Optional<Triple<Event, TicketReservation, Ticket>> oData = ticketReservationManager.fetchCompleteAndAssigned(eventName, ticketIdentifier);
if (!oData.isPresent()) {
response.sendError(HttpServletResponse.SC_FORBIDDEN);
return;
}
Triple<Event, TicketReservation, Ticket> data = oData.get();
Ticket ticket = data.getRight();
response.setContentType("application/pdf");
response.addHeader("Content-Disposition", "attachment; filename=ticket-" + ticketIdentifier + ".pdf");
try (OutputStream os = response.getOutputStream()) {
PdfBoxRenderer renderer = preparePdfTicket(request, data.getLeft(), data.getMiddle(), ticket).generate(ticket);
if (renderer != null) {
renderer.createPDF(os);
}
}
}
Aggregations