= Имплементација на случаи на употреба === ИД 13 - Ажурирање на податоци за локалот Менаџерот избира опцијата за уредување или ажурирање на податоците за сопствениот локал. [[Image(EditLocale.png​, width=800)]] Менаџерот, следејќи го опишаниот шаблон, ги ажурира податоците кои сака да ги промени, како што се контактни информации, адреса, работно време, категории, услуги, погодности и други детали. [[Image(saveEditLocaleChanges.png​​, width=800)]] //baseFetch е метода од Httpclient класата која служи како генерично централизирано место на конфигурирање на http повици до back-end, најважниот дел од оваа метода е додавањето на Jason Web Token како header во http повикот, за подоцна backend-oт да може да ја потврди легалноста на акцијата од корисникот. [[Image(baseFetchJWT.png​, width=800)]] По клик на копчето save, се испраќа http повик кон backend серверот користејќи инстанца од LocalManager класата односно методата saveDetailChanges, LocalManager е инстанцирана со httpclient кој е објаснет погоре. [[Image(apiCallsEditLocale.png​, width=800)]] Во backend апликацијата, request-от е пресретнат од контролер кој што содржи метод соодветен API endpoint, кој пак ги проследува податоците до сервис каде што се наоѓа целата логика. Оaa шема на креирање, испраќање на html повик на соодветна патека, престретнувањето и обработувањето од страна на контролерот е во голем дел исто за сите повици и само тука е објаснето детално. [[Image(EditLocaleController.png, width=800)]] [[Image(EditLocaleService.png​, width=800)]] Во сервисот се повикува соодветна функција каде прво се наоѓа менаџерот преку id-то, соодветно се фрлаат исклучоци ако менаџерот го нема во базата или ако не му е доделен локал, ова ќе резултира до враќање на error пораки на front-end. Ако се тоа е во ред преку edit функцијата се изменуваат податоците и преку repository-то се зачувува локалот променет во датабазата. Дополнително назад кон контролерот се испраќа објекот измапиран во друга класа, а потоа назад до front-end апликацијата каде повторно се зачувува во state-от за локалот. [[Image(EditLocaleServiceEditMethod.png​, width=800)]] === ИД 14 - Управување и менаџирање со корисничките сметки на вработените Секој менаџер кој е додаден на некој локал од страна на админот си има свој менаџерски панел во кој може да ги менаџира сите вработени. Тој може да додава работници во тој локал, да ги брише истите или пак да им ја менува позицијата на работа. [[Image(manager-dashboard.png​​, width=800)]] Доколку сака да додаде некој работник од листата на невработени, тоа го прави со клик на копчето „Add Worker“ каде што му се прикажува листата на невработени. При клик на копчето „Add“ се испраќа POST барање до backend-от каде што контролерот го прифаќа барањето и со помош на сервисниот слој го обработува истото. [[Image(add-worker-UI.png​, width=800)]] [[Image(assign-worker-controller.png​, width=800)]] [[Image(assign-worker-service.png​, width=800)]] При додавање на работник, тој сеуште нема да има позиција, но менаџерот може да му додели со помош на dropdown секцијата каде што менаџерот одбира што позиција ќе работи нововработениот. [[Image(change-position-or-remove-UI.png​, width=800)]] [[Image(change-position-controller.png, width=800)]] [[Image(change-position-service.png​, width=800)]] [[Image(change-position-metod.png​, width=800)]] Доколку менаџерот сака да отстрани некој вработен, тоа е овозможено со помош на копчето „Remove“. Исто како и кај додавањето така и тука, но овој пат се испраќа DELETE барање. [[Image(change-position-or-remove-UI.png​, width=800)]] [[Image(remove-worker-controller.png, width=800)]] [[Image(remove-worker-service.png​, width=800)]] Но исто така, многу битно, менаџерот може да регистрира вработени преку e-mail. Односно тој испраќа e-mail до корисникот, каде што корисникот преку клик на тој линк го води на директна најава така што добива привилегии за вработен во тој локал. [[Image(email-UI.png​, width=800)]] [[Image(email-ui-2.png, width=800)]] [[Image(email-ui-3.png, width=800)]] Целиот овој момент е реализиран на backend страната. Имаме контролер кој се справува со барањето кога менаџерот ќе испрати e-mail до корисникот. Сервисниот слој го обработува барањето, односно целиот момент што го погледнавме погоре, сервисниот слој се грижи за тоа. [[Image(invite-worker-controller.png​, width=800)]] [[Image(invite-worker-service.png, width=800)]] [[Image(worker-mail-template.png, width=800)]] === ИД 17 - Доделување/одземање на пристап до локал на менаџер Администраторот по претходно додаден локал има пристап до админ панелот каде што може да ги прегледува и контролира менаџерите кои сеуште не менаџираат никаков локал. [[Image(admin-dashboard.png​​, width=800)]] Администраторот има две опции со кои може да ги контролира менаџерите, односно може да додели менаџер на одреден локал или пак да отстрани менаџер кои бил доделен на некој локал. Доколку сака да додели менаџер на некој локал тоа го прави со клик на копчето „Add Manager“, при што се праќа POST барање до backend, каде што контролерот го превзема барањето и со помош на сервисниот слој го обработува истото. [[Image(add-manager.png​​, width=800)]] [[Image(add-manager-submit.png​​, width=800)]] [[Image(assign-manager-controller.png, width=800)]] [[Image(assing-manager-service.png​, width=800)]] [[Image(assign-remove-pomosna-metoda-service.png, width=800)]] Доколку сака да отстрани некој менаџер од локал не е ништо покомплицирано, администраторот во овој случај кликнува на „Edit Managers“ каде што има листа од менаџери за тој локал. Кликнува на копчето „Remove“ и како и кај доделувањето се праќа барање до backend-от но во овој случај тоа барање е DELETE. Контролерот го превзема барањето и повторно со сервисниот слој го обработува. [[Image(edit(delete)-manager.png​​​, width=800)]] [[Image(delete-manager-submit.png​, width=800)]] [[Image(remove-manager-controller.png, width=800)]] [[Image(remove-manager-service.png​​, width=800)]] [[Image(assign-remove-pomosna-metoda-service.png, width=800)]]