wiki:UseCaseImplementations

Version 15 (modified by 223054, 8 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 обработува барање за резервација на термин. Се прави проверка на слободен термин преку 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т се резервира.

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

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

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

Функцијата createSeparateAppointment испраќа барање до серверот за додавање нов термин. Со испраќање на POST барање и користење на fetch('/api/appointments/add') за да испрати барање до API-то, се испраќаат податоци на серверот.

Ако одговорот не е успешен (!response.ok), се повикува response.json() за да се извлече порака за грешка. Ако е успешен, return response.json(); го обработува одговорот. Прикажување на порака и освежување на страницата

console.log(data.message); печати порака во конзолата. location.reload(); ја освежува страницата за да ги прикаже новите податоци. Фаќање на грешки

Ако се случи грешка при барањето, се печати во конзолата со console.error('Error:', error);.

  • Контролер

  • Сервис

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

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

  • Контролер

  • Сервис

Attachments (9)

Download all attachments as: .zip

Note: See TracWiki for help on using the wiki.