Create Event Implementation

In this lesson, we'll implement the service layer logic to create events in our event tick platform.

Implementation Details

The event creation service needs two pieces of information: the organizer's ID and the event details.

@Service @RequiredArgsConstructor public class EventServiceImpl implements EventService { private final UserRepository userRepository; private final EventRepository eventRepository; @Override public Event createEvent(UUID organizerId, CreateEventRequest event) { // Find the organizer or throw an exception if not found User organizer = userRepository.findById(organizerId) .orElseThrow(() -> new UserNotFoundException( String.format("User with ID '%s' not found", organizerId)) ); // Create ticket types List<TicketType> ticketTypesToCreate = event.getTicketTypes().stream().map( ticketType -> { TicketType ticketTypeToCreate = new TicketType(); ticketTypeToCreate.setName(ticketType.getName()); ticketTypeToCreate.setPrice(ticketType.getPrice()); ticketTypeToCreate.setDescription(ticketType.getDescription()); ticketTypeToCreate.setTotalAvailable(ticketType.getTotalAvailable()); return ticketTypeToCreate; }).toList(); // Create and populate the event Event eventToCreate = new Event(); eventToCreate.setName(event.getName()); eventToCreate.setStart(event.getStart()); eventToCreate.setEnd(event.getEnd()); eventToCreate.setVenue(event.getVenue()); eventToCreate.setSalesStart(event.getSalesStart()); eventToCreate.setSalesEnd(event.getSalesEnd()); eventToCreate.setStatus(event.getStatus()); eventToCreate.setOrganizer(organizer); eventToCreate.setTicketTypes(ticketTypesToCreate); return eventRepository.save(eventToCreate); } }

Error Handling

The service includes error handling for cases where the organizer doesn't exist:

  • We use userRepository.findById() to look up the organizer
  • If not found, we throw a UserNotFoundException with a clear message
  • The exception includes the ID that wasn't found to help with troubleshooting

Summary

  • Created the EventRepository interface
  • Created the EventServiceImpl class
  • Implemented the createEvent method
© 2026 Devtiro Ltd. All rights reserved