source: src/main/java/edu/gjoko/schedlr/services/AppointmentsService.java@ 950fa0d

Last change on this file since 950fa0d was 950fa0d, checked in by Gjoko Kostadinov <gjoko.kostadinov@…>, 13 months ago

Periodic update

  • Property mode set to 100644
File size: 1.7 KB
Line 
1package edu.gjoko.schedlr.services;
2
3import edu.gjoko.schedlr.entity.Appointment;
4import edu.gjoko.schedlr.entity.Business;
5import edu.gjoko.schedlr.entity.Stakeholder;
6import edu.gjoko.schedlr.exceptions.BlockingTimeException;
7import edu.gjoko.schedlr.repositories.AppointmentRepository;
8import edu.gjoko.schedlr.repositories.ServiceRepository;
9import edu.gjoko.schedlr.repositories.ServiceTypeRepository;
10import lombok.AllArgsConstructor;
11import org.springframework.stereotype.Service;
12
13import java.util.List;
14
15@Service
16@AllArgsConstructor
17public class AppointmentsService {
18
19 private final AppointmentRepository appointmentRepository;
20
21 private final ServiceRepository serviceRepository;
22
23 public void saveAppointment(Appointment appointment) {
24 var service = serviceRepository.findById(appointment.getService().getId()).get();
25 appointment.setEndTime(appointment.getStartTime().plusMinutes(service.getDuration()));
26 List<Appointment> blockingAppointments = appointmentRepository.
27 findBlockingAppointments(
28 appointment.getBusiness().getId(), appointment.getStartTime(), appointment.getEndTime());
29
30 // check to see if there are blocking exceptions
31 if (blockingAppointments != null && !blockingAppointments.isEmpty()) {
32 throw new BlockingTimeException();
33 }
34 appointmentRepository.save(appointment);
35 }
36
37 public List<Appointment> getAppointmentsByBusiness(Business business) {
38 return appointmentRepository.getAppointmentsByBusiness(business);
39 }
40
41 private List<Appointment> getAppointmentsByCustomer(Stakeholder stakeholder) {
42 return appointmentRepository.getAppointmentsByCustomer(stakeholder);
43 }
44}
Note: See TracBrowser for help on using the repository browser.