wiki:UseCaseImplementations

Version 13 (modified by 223054, 9 days ago) ( diff )

--

Имплементација на случаи на употреба

Закажување термин за терапија-корисник

  • Клиентски код

Код преку кој се испраќаат податоци до серверот за закажување на термин. Кога корисникот кликнува на копчето „confirm-booking“, се активира функцијата поврзана со овој настан. Се креирање објект со податоци (termData), кој се зема од глобалната променлива window.selectedTime, која содржи избран термин.couponCode вредноста се зема од input полето со ID „coupon-type“, а medicalCondition се зема од input полето со ID „medical-condition“. На крај се испраќа POST барање кон серверот. Се повикува fetch('/api/requests/book'), што испраќа HTTP POST барање.

  • Контролер

Корисникот кликнува на копчето за потврда на закажување. Функцијата addEventListener реагира на клик на копчето "confirm-booking". Се собираат податоци од формата (term, couponCode, medicalCondition) и се испраќаат податоци до серверот преку fetch. Серверот ги прима и го обработува барањето во контролерот (@PostMapping("/book")). @RequestBody ги прима податоците (term, couponCode, medicalCondition). @CookieValue го вчитува username од колачињата. Методот bookAppointment од сервисот requestService се повикува со добиените податоци. Ако серверот врати успешен одговор, корисникот добива порака "Appointment booked successfully!".

  • Сервис

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

Креирање слободни термини-администратор

Креирање еден слободен термин

  • Клиентски код

  • Контролер

  • Сервис

Автоматско креирање на термини во одреден временски опсег

  • Клиентски код

  • Контролер

  • Сервис

Attachments (9)

Download all attachments as: .zip

Note: See TracWiki for help on using the wiki.