wiki:UseCaseImplementationsFinal

Version 5 (modified by 231020, 3 weeks ago) ( diff )

--

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

Додатни случаи на употреба опфатени во финалната верзија:

ID Use Case
7 Најава на корисник со Google профил преку OAuth2
8 Нотификации за измена на цена и продажба / купување на акција
9 Експорт / импорт на податоци

ИД: 7 - Најава на корисник со Google профил преку OAuth2

Корисникот сака да се логира со Google налог наместо да внесува username и password. Ако Google налогот постои, корисникот се логира. Ако Google налогот не е поврзан со internal account, корисникот треба да го поврзе.

Компонентата GoogleLogin од @react-oauth/google се користи. На onSuccess, се повикува handleGoogleLogin која праќа credential token до backend.

Ако backend врати 409, се чува pendingToken и се отвора modal за поврзување со internal account.

Backend прима credential од frontend, проверува дали корисникот постои.

case A: email не е пронајден - се креира корисник, се генерира токен.

case B: email постои но само со интерен акаунт - backend враќа 409 и pending token

case C: Корисникот постои со google акаунт, се креира JWT и се враќа на frontend.

Кај pendingToken токените се валидни само за кратко време (expiresAt), поради сигурност.

ИД: 8 - Нотификации за измена на цена на акција

Корисникот има достапен Watchlist, прикажува листа на акции кои се следат, Има Trash icon за бришење на акција, може да додава нова акција (Price Above / Price Below).

Frontend праќа GET request до /api/watchlist со Authorization header (JWT), POST request до /api/watchlist за додавање нов entry, DELETE request до /api/watchlist/{id} за бришење.

Во backend, GET /api/watchlist-враќа листа на акции за тековниот корисник. POST /api/watchlist- додава нов WatchlistEntry, DELETE /api/watchlist-брише entry.

Секој 60 секунди се проверува дали акциите се над/под поставените граници.

Mail се праќа со истата логика и кога админ/брокер, ќе одобри/одбие tradeRequest.

Attachments (22)

Download all attachments as: .zip

Note: See TracWiki for help on using the wiki.