wiki:UseCaseImplementationsFinal

Version 6 (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.

ИД: 7 - Експорт / импорт на податоци

Корисникот сака да ги управува своите финансиски транзакции со можност за import на CSV фајлови и export на веќе постоечките транзакции.

Кога ќе се кликне на export, се прави GET request до backend endpoint /api/transactions/export. Фајлот се симнува автоматски на корисникот.

/api/transactions/export генерира CSV од базата и го враќа како application/csv.

Endpoint /api/transactions/import прима CSV фајл (@RequestPart("file") MultipartFile file) и ги парсира редовите.

Attachments (22)

Download all attachments as: .zip

Note: See TracWiki for help on using the wiki.