20 | | |
| 20 | Функцијата bookAppointment обработува барање за резервација на термин. |
| 21 | datetime доаѓа како текстуален влез во формат "yyyy-MM-dd HH:mm". |
| 22 | Со DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm"), се дефинира форматот за парсирање. |
| 23 | LocalDateTime.parse(datetime, formatter) го претвара текстот во LocalDateTime објект. |
| 24 | Се прави проверка на слободен термин преку |
| 25 | appointmentRepository.findByTerm(dateTime) и се бара термин во базата со дадениот dateTime. |
| 26 | Ако постои термин и неговиот статус е APPOINTMENT_STATUS.FREE, продолжува понатаму. |
| 27 | Ако не постои термин или е веќе закажан, фрла исклучок: "Appointment not found or already booked.". |
| 28 | userRepository.findByUsername(username).orElse(null) бара корисник со даденото корисничко име. |
| 29 | Ако не се најде корисник, фрла исклучок: "User not found". |
| 30 | requestRepository.save(request) го зачувува барањето во базата. |
| 31 | На крај, ако сите проверки поминат, барањето успешно се зачувува и терминoт се резервира. |