-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathREADME
More file actions
43 lines (36 loc) · 2 KB
/
Copy pathREADME
File metadata and controls
43 lines (36 loc) · 2 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
----------------------------- Tema 3 PCOM -----------------------------------------
Florian Silviu-Gabriel
323CC
Scopul temei a fost acela de a crea un client capabil sa interactioneze
cu un server prin requesturi.
Am pornit de la skeletul din laboraotrul 10. Pentru parsarea json-urilor
am folosit recomandarea din cerinta temei pentru c++, libraria "nlohmann".
Pentru lucrul cu datele am folosit string si stringStream din c++.
Prima data am creat clientul, pentru asigurarea datelor am folosit 2 functii:
isNumber - verifica daca un string este numar si daca lungimea lui e 0
hasSpaces - verifica daca un string are spatii si daca lungimea lui e 0
Pentru asigurarea faptului ca userul este logat si are acces la libarie
am folosit variabilele bool:
-is_logged -> e true daca userul e logat, atunci cand se delogheaza devine
false
-has_access -> e true daca userul are acces la biblioteca
-logout -> verifica daca user-ul s-a delogat, impiedicand delogarea lui
ulterioara unei comenzi de logout valide
-token -> un string care retine tokenul
-cookie -> string care retine cookie ul de sesiune
Pentru partea de requests am realizat 3 functii
-POST -> realizeaza un request de tip POST si returneaza un string in
functie de raspuns
-GET -> realizeaza un reqest de tip GET si returneaza un obiect json
-DELETE -> realizeaza un request de tip DELETE si e folosit pentru
stergerea unei carti
Pentru fiecare comanda data clientului se verifica unde este necesar
daca userul este logat, are acess la biblioteca si ii updateaza
statusul. Se verifica si datele luate de la tastatura, credentialele
trebuie sa fie sir de caractere cu lungime mai mare decat 0 si fara
spatii, id ul trebuie sa fie un intreg pozitiv iar titlul si celelalte
informatii legate de carte trebuie sa aiba o lungime mai mare de 0.
In client se verifica datele si statusul userului pe cat se poate, iar
in requests se realizeaza requesturile si se returneaza mesaje in functie
de tipul raspunsului unde raspunsul serverlui nu este sigur ca v-a fi unul
lipsit de erori.