docs: contract RAR verificat live + plan unic consolidat
Verificat contractul RAR AUTOPASS pe endpoint-ul de test si compilat sursa de adevar `docs/api-rar-contract.md`. Corectii majore fata de planurile vechi: - JWT TTL = 30h (nu scurt); worker se re-logheaza, retry neplafonat - b64Image optional; tipPrestatie generat de server (nu se trimite) - anulare/corectie prin API inexistente pentru FINALIZATA - needs_data determinist pe R-ODO/I-ODO; reguli validare exacte (VIN/data/nrInm) Rulat plan-eng-review + plan-design-review, apoi consolidat ambele intr-un singur plan executabil `docs/plans/plan.md` (design ca anexa). Outside voice a prins lost-ack double-submit (P1) -> reconciliere inainte de re-send. Re-push din ROAAUTO scos din v1 (durabilitate = SQLite persistent + restart). - mutat fisierele spec oficiale RAR in docs/ - adaugat raspunsul oficial al programatorilor RAR (api-rar-documentatie-oficiala.md) - sterse plan-eng-review.md + plan-design-review.md (consolidate in plan.md) Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
This commit is contained in:
413
docs/Documentatie Serviciu AutoPass_Final.txt
Normal file
413
docs/Documentatie Serviciu AutoPass_Final.txt
Normal file
@@ -0,0 +1,413 @@
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
SERVICIU WEB PENTRU SCHIMB DE DATE
|
||||
R.A.R.-R.A. <20> Diverse institutii
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
Proprietar :
|
||||
Registrul Auto Rom<6F>n R.A.
|
||||
Data:
|
||||
08.04.2024
|
||||
Versiunea:
|
||||
0.0.1
|
||||
Departament:
|
||||
D.T.I.C.
|
||||
?ef Departament:
|
||||
Manuel Farca?
|
||||
?ef Dezvoltare:
|
||||
Cristian Mardare
|
||||
Analist Programator:
|
||||
Razvan Chirculescu
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
Document control
|
||||
|
||||
Versiunea
|
||||
Data
|
||||
Observa?ii
|
||||
0.0.1
|
||||
08.04.2024
|
||||
Start Proiect
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
Con?inut:
|
||||
|
||||
|
||||
1. Introducere Pag. 4
|
||||
2. Mesaje definite si metode de acces Pag. 4
|
||||
3. Modele de date Pag.10
|
||||
|
||||
|
||||
|
||||
1. Introducere
|
||||
|
||||
General
|
||||
|
||||
<EFBFBD>n acest document sunt definite metodele expuse in vederea transmiterii de catre agentii economici autorizati a informatiilor necesare emiterii raportului RAR-Autopass conform Legii 142/2023 si OM 210/2024
|
||||
|
||||
Scop
|
||||
|
||||
Colecterea de informatiilor despre interventiile asupra anumitor sisteme ale vehiculelor precum si informatiile privind indicatia odometrului, cu ocazia prezentarii vehiculelor in unitati service autorizate RAR
|
||||
|
||||
2. Mesaje definite si Metode de acces
|
||||
|
||||
2.1. Endpoint: account-controller
|
||||
|
||||
a. Metoda addClient - Adaugare utilizator
|
||||
- Adresa access: /rar-autopass/account/addClient
|
||||
- Tip apel: POST
|
||||
- Tip access: Securizat
|
||||
- Descriere:
|
||||
Agentul economic (rol ADMIN) poate crea utilizatori cu rol CLIENT, vor primi pe email un link de confirmare a adresei de e-mail si o parola initiala, iar contul va deveni activ doar dupa ce acestia vor accesa linkul.
|
||||
Linkul de activare al contului este valid 24 de ore.
|
||||
Daca nu se confirma in acest interval, atunci contul va trebui sa fie creat din nou.
|
||||
- Payload: PostUtilizatoriDTO
|
||||
- Response: ApiResponseMessage
|
||||
|
||||
b. Metoda changePass - Schimba parola unui utilizator
|
||||
- Adresa access: /rar-autopass/account/changePass
|
||||
- Tip apel: POST
|
||||
- Tip access: Securizat
|
||||
- Descriere: Se transmite un obiect compus din UserID, parola veche, parola noua, reconfirmare parola noua.
|
||||
- Payload: RequestChangePassword
|
||||
- Raspuns: String
|
||||
|
||||
|
||||
c. Metoda getAllUsers - Lista de utilizatori in functie de rolul userului logat
|
||||
- Adresa access: /rar-autopass/account/getAllUsers
|
||||
- Tip apel: GET
|
||||
- Tip access: Securizat
|
||||
- Descriere:
|
||||
Raspunde cu o lista de obiecte de tip USER in functie de rolul utilizatorului logat.
|
||||
Daca utilizatorul este ADMIN atunci lista va contine utilizatorii creati de client.
|
||||
|
||||
- Payload/Parametru:
|
||||
- Raspuns: CustomResponseForMapping
|
||||
|
||||
|
||||
|
||||
d. Metoda getRoles - Interogare lista roluri
|
||||
- Adresa access: /rar-autopass/account/getRoles
|
||||
- Tip apel: GET
|
||||
- Tip access: Securizat
|
||||
- Descriere: Intoarce un obiect de roluri de utilizator cu ID-urile corespunzatoare.
|
||||
- Payload/Parametru:
|
||||
- Raspuns: GetUtilizatoriDTO
|
||||
|
||||
e. Metoda getUserById/{id} - Detalii utilizator
|
||||
- Adresa access: /rar-autopass/account/getUserById/{id}
|
||||
- Tip apel: GET
|
||||
- Tip access: Securizat
|
||||
- Descriere: Cere un parametru ID si raspunde cu un obiect de tip user.
|
||||
- Payload/Parametru: id
|
||||
- Raspuns: GetUtilizatoriDTO
|
||||
|
||||
f. Metoda inactivateUser/{id} - Dezactiveaza utilizator
|
||||
- Adresa access: /rar-autopass/account/inactivateUser/{id}
|
||||
- Tip apel: PATCH
|
||||
- Tip access: Securizat
|
||||
- Descriere:
|
||||
Endpoint de tip PATCH, care primeste un parametru ID si seteaza utilizatorul ca inactiv.
|
||||
Raspunde cu un obiect de tip {key:"raspuns", value:"descriere raspuns"}.
|
||||
Daca utilizatorul a fost inactivat cu success raspunsul va fi "USER_INACTIVE" ("Utilizatorul a fost dezactivat!"), iar cand nu, atunci utilizatorul nu exista:
|
||||
"USER_NOT_PRESENT" ("Utilizator inexistent!").
|
||||
- Payload/Parametru: id
|
||||
- Raspuns: ApiResponseMessage
|
||||
|
||||
g. Metoda patchUser/{userId} - Modificare utilizator
|
||||
- Adresa access: /rar-autopass/account/patchUser/{userId}
|
||||
- Tip apel: PATCH
|
||||
- Tip access: Securizat
|
||||
- Descriere:
|
||||
Endpoint de tip PATCH pentru modificarea campurilor unui utilizator. Primeste un obiect de tip PostUtilizatorDTO si un parametru ID,
|
||||
si raspunde cu un obiect de tip {key:"raspuns", value:"descriere raspuns"}.
|
||||
Daca userul a fost modificat cu succes
|
||||
raspunsul va fi "USER_UPDATED" ("Utilizatorul a fost actualizat!"),
|
||||
iar cand nu, atunci utilizatorul nu exista:
|
||||
"USER_NOT_PRESENT" ("Utilizator inexistent!").
|
||||
- Payload/Parametru: user
|
||||
- Raspuns: ApiResponseMessage
|
||||
|
||||
h. Metoda reactivateUser/{id} - Reactiveaza utilizator
|
||||
- Adresa access: /rar-autopass/account/reactivateUser/{id}
|
||||
- Tip apel: PATCH
|
||||
- Tip access: Securizat
|
||||
- Descriere:
|
||||
Endpoint de tip PATCH, care primeste un parametru ID si seteaza userul ca activ.
|
||||
Raspunde cu un obiect de tip {key:"raspuns", value:"descriere raspuns"}.
|
||||
Daca userul a fost reactivat cu succes raspunsul va fi "USER_REACTIVATED" ("Utilizatorul a fost reactivat!"),
|
||||
iar cand nu, atunci utilizatorul nu exista:
|
||||
"USER_NOT_PRESENT" ("Utilizator inexistent!").
|
||||
- Payload/Parametru: id
|
||||
- Raspuns: ApiResponseMessage
|
||||
|
||||
i. Metoda resetPassToDefault - Reseteaza parola unui utilizator
|
||||
- Adresa access: /rar-autopass/account/resetPassToDefault/{id} - Reseteaza parola unui utilizator
|
||||
- Tip apel: POST
|
||||
- Tip access: Securizat
|
||||
- Descriere: Endpoint de tip POST, care primeste ca parametru ID si trimite utilizatorului o noua parola pe emailul asociat.
|
||||
- Payload/Parametru: id
|
||||
- Raspuns: GetUtilizatoriDTO
|
||||
-
|
||||
j. Metoda makeAdminClient/{id}
|
||||
- Adresa access: /rar-autopass/account/makeAdminClient/{id}
|
||||
- Tip apel: POST
|
||||
- Tip access: Securizat
|
||||
- Descriere:
|
||||
Endpoint de tip POST, care permite userului cu rol ADMIN sa aloce rol ADMIN_CLIENT conturilor cu rol de CLIENT deja existente. Primeste un parametru ID si schimba rolul userului din CLIENT in ADMIN_CLIENT.
|
||||
Raspunde cu un obiect de tip {key:"raspuns", value:"descriere raspuns"}.
|
||||
Daca rolul este deja ADMIN_CLIENT raspunsul va fi <20>USER_ALREADY_ADMIN<49>(<28>Userul are deja rol admin<69>)
|
||||
Daca rolul a fost schimbat cu succes raspunsul va fi "USER_ROLE_UPDATED" ("Rolul a fost modificat in ADMIN_CLIENT!"),
|
||||
iar cand nu, atunci utilizatorul nu exista:
|
||||
"USER_UPDATE_FAILED" ("Eroare la actualizarea userului!").
|
||||
- Payload/Parametru: id
|
||||
- Raspuns: ApiResponseMessage
|
||||
|
||||
|
||||
|
||||
|
||||
2.2. Endpoint: nomenclator-controller
|
||||
|
||||
a. Metoda getNomenclatorPrestatii <20> Afiseaza lista prestatiilor
|
||||
- Adresa access: /rar-autopass/nomenclator/getNomenclatorPrestatii
|
||||
- Tip apel: GET
|
||||
- Tip access: Securizat
|
||||
- Descriere: Afiseaza lista prestatiilor.
|
||||
- Payload/Parametri: ---
|
||||
- Response: CustomResponseForMapping
|
||||
|
||||
b. Metoda getPrestatieByCodPrestatie <20> Afiseaza prestatie dupa cod
|
||||
- Adresa access:
|
||||
/rar-autopass/nomenclator/getPrestatieByCodPrestatie/{cod}
|
||||
- Tip apel: GET
|
||||
- Tip access: Securizat
|
||||
- Descriere: Afiseaza prestatie dupa cod.
|
||||
- Payload/Parametri: cod
|
||||
- Response: NomenclatorPrestatii
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
2.3. Endpoint: prezentari-controller
|
||||
|
||||
a. Metoda getAllPrezentari <20> Afiseaza toate prezentarile active ale utilizatorului logat
|
||||
- Adresa access: /rar-autopass/prezentari/getAllPrezentari
|
||||
- Tip apel: GET
|
||||
- Tip access: Securizat
|
||||
- Descriere: Afiseaza toate prezentarile active ale utilizatorulului logat.
|
||||
- Payload/Parametri: ---
|
||||
- Response: CustomResponseForMapping
|
||||
|
||||
b. Metoda getPrezentare/{id} <20> Afiseaza prezentare dupa ID
|
||||
- Adresa access: /rar-autopass/prezentari/getPrezentare/{id}
|
||||
- Tip apel: GET
|
||||
- Tip access: Securizat
|
||||
- Descriere: Afiseaza prezentare dupa ID.
|
||||
- Payload/Parametri: id
|
||||
- Response: Prezentari
|
||||
|
||||
c. Metoda markPrezentareAnulataById/{id} <20>
|
||||
Marcheaza o prezentare ca ANULATA
|
||||
- Adresa access: /rar-autopass/prezentari/getPrezentare/{id}
|
||||
- Tip apel: PATCH
|
||||
- Tip access: Securizat
|
||||
- Descriere: Marcheaza o prezentare ca ANULATA.
|
||||
- Payload/Parametri: id
|
||||
- Raspuns: ApiResponseMessage
|
||||
|
||||
d. Metoda patchPrezentare/{id} <20>
|
||||
Modifica fielduri pentru o prezentare deja existenta
|
||||
- Adresa access: /rar-autopass/prezentari/patchPrezentare/{id}
|
||||
- Tip apel: PATCH
|
||||
- Tip access: Securizat
|
||||
- Descriere: Marcheaza o prezentare ca ANULATA.
|
||||
- Payload/Parametri: id
|
||||
- Raspuns: PostPrezentareUpdateDTO
|
||||
|
||||
e. Metoda postPrezentare <20> Salveaza o noua prezentare
|
||||
- Adresa access: /rar-autopass/prezentari/patchPrezentare/{id}
|
||||
- Tip apel: POST
|
||||
- Tip access: Securizat
|
||||
- Descriere: Salveaza o noua prezentare.
|
||||
- Payload: Prezentari
|
||||
- Raspuns: CustomResponseForMapping
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
2.4. Endpoint: public-controller
|
||||
|
||||
a. Metoda checkIfEmailExists <20> Verificare async daca email este deja existent
|
||||
- Adresa access: /rar-autopass/public/checkIfEmailExists/{email}
|
||||
- Tip apel: GET
|
||||
- Tip access: Public
|
||||
- Descriere: Verificare async daca email este deja existent.
|
||||
- Payload/Parametri: email
|
||||
- Raspuns: ApiResponseMessage
|
||||
|
||||
b. Metoda confirmationEmailAccount <20> Confirmare adresa de email
|
||||
- Adresa access: /rar-autopass/public/checkIfEmailExists/{email}
|
||||
- Tip apel: GET
|
||||
- Tip access: Public
|
||||
- Descriere: Confirmare adresa de email.
|
||||
- Payload/Parametri: uuid
|
||||
- Raspuns: ApiResponse
|
||||
|
||||
c. Metoda confirmationPassReset <20>
|
||||
Resetare parola cu token, parola noua si confirmare parola noua
|
||||
- Adresa access: /rar-autopass/public/confirmationPassReset
|
||||
- Tip apel: POST
|
||||
- Tip access: Public
|
||||
- Descriere: Resetare parola cu token, parola noua si confirmare parola noua.
|
||||
- Payload/Parametri: requestForgotPassword
|
||||
- Raspuns: ApiResponse
|
||||
|
||||
|
||||
d. Metoda forgotPasswordLink/{email} <20> Parola uitata
|
||||
- Adresa access: rar-autopass/public/forgotPasswordLink/{email}
|
||||
- Tip apel: POST
|
||||
- Tip access: Public
|
||||
- Descriere:
|
||||
Endpoint pentru setarea unei noi parole in cazul in care parola actuala a fost uitata. Primeste parametru EMAIL si raspunde cu un link pe email pentru resetare.
|
||||
- Payload/Parametri: email
|
||||
- Raspuns: ApiResponseMessage
|
||||
|
||||
e. Metoda login <20> Endpoint pentru login
|
||||
- Adresa access: /rar-autopass/public/login
|
||||
- Tip apel: POST
|
||||
- Tip access: Public
|
||||
- Descriere:
|
||||
Primeste 2 parametri, email si password, genereaza token utilizatorului si autentifica login.
|
||||
- Payload/Parametri: email, password
|
||||
- Raspuns: GetUtilizatoriDTO
|
||||
|
||||
Nota: Pentru toate metodele cu tip acces securizat se va folosi metoda de autentificare de tip JWT Token.
|
||||
Tokenul de autentificare se obtine prin apel la metoda LOGIN din controller-ul public. Token-ul primit in raspuns trebuie atasat fiecarui request in HEADER AUTHORIZATION,in forma <20>Bearer: {token}<7D>
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
3. Models/Modele
|
||||
|
||||
(1) ApiResponseMessage{
|
||||
< * >:
|
||||
string
|
||||
}
|
||||
|
||||
ApiResponseMessage
|
||||
|
||||
|
||||
(2) ApiResponse{
|
||||
description
|
||||
string
|
||||
details
|
||||
string
|
||||
status
|
||||
stringEnum:
|
||||
[<5B>INVALID_EMAIL, INVALID_TOKEN, NOT_OK, OK<4F>]
|
||||
}
|
||||
|
||||
|
||||
(3) CreateAgentEconomicDTO{
|
||||
codAtelier
|
||||
string
|
||||
confirmPassword
|
||||
string
|
||||
email
|
||||
string
|
||||
key
|
||||
string
|
||||
nume
|
||||
string
|
||||
password
|
||||
string
|
||||
prenume
|
||||
string
|
||||
}
|
||||
|
||||
|
||||
|
||||
|
||||
(4) CustomResponseForMapping{
|
||||
data
|
||||
{
|
||||
|
||||
}
|
||||
message
|
||||
string
|
||||
statusCode
|
||||
integer($int32)
|
||||
}
|
||||
|
||||
|
||||
(5) GetUtilizatoriDTO{
|
||||
activ
|
||||
integer($int64)
|
||||
authorities
|
||||
[GrantedAuthority{
|
||||
authority
|
||||
Reference in New Issue
Block a user