| [Home](home) | [**Escopo**](escopo) | [Processo](processo) | [Design/Mockups](design_mockups) | [Gerência](gerencia) | [Estudos](estudos) | [Arquitetura](arquitetura) | [Contratos](contratos) | [BD](banco_dados) | [Qualidade](qualidade) | [Configuração](configuracao) | [Instalação](instalacao) | [Instruções](instrucoes) | [Utilização](utilizacao) | [Analytics](Analytics) | [Infraestrutura](infraestrutura) | [Dicas](dicas) | | :-------: | :---------------------: | :---------------: | :---------------------------: | :----------------: | :-------------: | :---------------------: | :-----------------: | :------------: | :-----------------: | :-------------------------: | :---------------------: | :---------------------: | :---------------------: | :-----------------: | :---------------------------: | :---------: | # Users - usuários fields: ```js id: number; email: string; password: string; role: Role; username: string; first_name: string; last_name: string; gender: Gender; active: boolean; ``` Endpoints: ## Create POST http://localhost:3000/users/ request: ```json { "email": "fernanda.amaral@gmail.com", "password": "cpplanta" } ``` response: ```json { "id": 15, "username": null, "email": "fernanda.amaral@gmail.com", "active": true, "role": "DEFAULT", "first_name": null, "last_name": null, "gender": "OTHER", "created_at": "19/10/2024 01:50:35", "updated_at": "19/10/2024 01:50:35" } ``` Observações: "role" serve para diferenciar o papel, por exemplo: ADMIN (Cássio), ROOT (sistema), DEMO (demonstração/ apresentação final) O campo "active", onde ocorrer, serve para exclusão lógica do registro. Quando não houver, a remoção é física. ## FindAll GET http://localhost:3000/users/ request: no body QueryParams: orderBy fields: 'id', 'username', 'email', 'first_name', 'last_name', 'gender', 'role', 'created_at', 'updated_at' response: ```json [ { "id": 10, "username": "root", "email": "root@gmail.com", "active": true, "role": "ROOT", "first_name": "CP", "last_name": "Planta", "gender": "MALE", "created_at": "18/10/2024 00:09:25", "updated_at": "18/10/2024 00:09:25" }, { "id": 11, "username": "Cassio", "email": "cassio@gmail.com", "active": true, "role": "ROOT", "first_name": "Cassio", "last_name": "Santos", "gender": "MALE", "created_at": "18/10/2024 00:09:25", "updated_at": "18/10/2024 00:09:25" }, { "id": 12, "username": "Roberto", "email": "fulano@gmail.com", "active": true, "role": "DEMO", "first_name": "Roberto", "last_name": "Da Silva", "gender": "MALE", "created_at": "18/10/2024 00:09:25", "updated_at": "18/10/2024 00:09:25" }, (...) ] ``` ## FindById GET http://localhost:3000/users/12 request: no body response: ```json { "id": 12, "username": "Roberto", "email": "fulano@gmail.com", "active": true, "role": "DEMO", "first_name": "Roberto", "last_name": "Da Silva", "gender": "MALE", "created_at": "18/10/2024 00:09:25", "updated_at": "18/10/2024 00:09:25" } ``` ## Update PATH http://localhost:3000/users/12 request: - queryparams: ![request](../resources/images/backend/1729314551145.jpg) response: ```json { "id": 12, "username": "fernanda", "email": "meunovoemail@gmail.com", "active": true, "role": "DEFAULT", "first_name": "Fernanda", "last_name": "Silva", "gender": "FEMALE", "created_at": "18/10/2024 00:09:25", "updated_at": "19/10/2024 02:07:17" } ``` ## Delete DELETE http://localhost:3000/users/12 request: no body response: ```json { "message": "User ID 12 deleted successfully" } ``` ## Reactvate POST http://localhost:3000/users/activate/12 request: no body response: ```json { "message": "User ID 12 activated successfully" } ```