= Финална имплементација на случаи на употреба == Регистриран корисник - Работобарател (Job Seeker) === ИД X - Најава со Google **За ова сценарио, потребно е да вклучиме неколку dependencies поврзани со OAuth2. Исто така треба да креираме проект на Google Cloud Console каде треба да се внесат некои податоци за апликацијата, како и да се вклучат Google+ и Identity Toolkit API-њата. Дополнително, во application.properties фајлот, треба да се постават следните конфигурации, каде client id-то и client secret-от ги добиваме по креирање на проектот, на претходно наведената страна.** [[Image(id_x.1_resized.png)]] **За најава со Google акаунт, корисникот тоа го прави со притискање на копчето „Sign in with Google“ каде се отвара прозорец со сите негови сметки.** [[Image(id_7.1_resized.png)]] **По одбирање на соодветниот акаунт, се повикува функција која испраќа POST request до backend апликацијата заедно со tokenId.** [[Image(id_7.2_resized.png)]] [[Image(id_7.3_resized.png)]] **Во backend апликацијата, request-от е пресретнат од контролер кој што содржи метод со соодветен API endpoint, кој пак го проследува токенот до сервис каде што се наоѓа целата логика.** [[Image(id_7.4_resized.png)]] **Методот кој што се повикува од сервисот прво го автентификува корисникот преку неговиот токен со Google Id Token Verifier (достапно во целосниот изворен код), а потоа користејќи ја неговата е-маил адреса, се обидуваме преку repository-то за Job Seeker да го пронајдеме во датабазата. Доколку најдеме корисник со таа е-маил адреса, генерираме JWT и го испраќаме назад, заедно со неговото име, улога и останати работи. Во спротивно, дополнително креираме нов објект од класата Job Seeker, каде ги поставуваме соодветните податоци за корисникот, без лозинка и го зачувуваме корисникот во датабаза преку repository-то. Веднаш потоа се повикува и методот submitGoogleProfilePic кој служи за зачувување на неговата профилна слика.** [[Image(id_7.5_resized.png)]] **Имено тука прво правиме објект од тип URL преку string-от, каде преку него ја читаме сликата како Buffered Image. Потоа на сликата се прави конверзија во низа од бајти и така се зачувува како Multipart File. Од тука се повикува стандардниот метод за зачувување на слики во датабазата, истиот кој се користи и при upload на профилни слики на корисниците.** [[Image(id_7.6_resized.png)]] == Регистриран корисник - Работодавец (Recruiter) === ИД 7 - Ажурирање на статус на апликација (Е-маил нотификации)