Cria um novo usuário
Deve receber name, username e password via corpo da requisição:
{ "name": "Nome do Usuário", "username": "nome.usuario", "password": "senhadousuario" }
Retorno (sucesso):
- Status 201 Created
{ "username": "nome.usuario" }
Retorno (erro: validação):
- Status 400 Bad Request
{ "message": "Mensagem de erro" }
Retorno (erro: usuário já existente):
- Status 422 Unprocessable Entity
{ "message": "Mensagem de erro" }
Autentica um usuário existente
Deve receber username e password via corpo da requisição:
{ "username": "nome.usuario", "password": "senhadousuario" }
Retorno (sucesso):
- Status 200 Ok
{ "username": "nome.usuario" }
Retorno (erro: validação):
- Status 400 Bad Request
{ "message": "Mensagem de erro" }
Retorno (erro: usuário e/ou senha incorretos):
- Status 422 Unprocessable Entity
{ "message": "Mensagem de erro" }
Cria um novo projeto
Deve receber cost, deadline, title e zip_code via corpo da requisição:
{ "cost": 1000, "deadline": "2022-12-02", "title": "Nome do projeto", "zip_code": "26700000" }Deve receber username via header da requisição:
{ "username": "nome.usuario" }
Retorno (sucesso):
- Status 201 Created
{ "id": "uuid", "title": "'Nome do projeto'", "zip_code": "26700000", "cost": 1000, "done": false, "deadline": "2022-12-02T00:00:00.000Z", "username": "nome.usuario", "created_at": "2022-12-01T00:00:00.000Z", "updated_at": "2022-12-01T00:00:00.000Z" }
Retorno (erro: validação):
- Status 400 Bad Request
{ "message": "Mensagem de erro" }
Retorno (erro: sem username no header):
- Status 406 Not Acceptable
{ "message": "Mensagem de erro" }
Busca um projeto pelo id
Deve receber id como parâmetro na rota
Deve receber username via header da requisição:
{ "username": "nome.usuario" }
Retorno (sucesso):
- Status 200 Ok
{ "id": "uuid", "title": "'Nome do projeto'", "location": "Mendes/RJ", "cost": 1000, "done": false, "deadline": "2022-12-02T00:00:00.000Z", "username": "nome.usuario", "created_at": "2022-12-01T00:00:00.000Z", "updated_at": "2022-12-01T00:00:00.000Z" }
Retorno (erro: validação):
- Status 400 Bad Request
{ "message": "Mensagem de erro" }
Retorno (erro: projeto não encontrado):
- Status 404 Not Found
{ "message": "Mensagem de erro" }
Retorno (erro: sem username no header):
- Status 406 Not Acceptable
{ "message": "Mensagem de erro" }
Busca todos os projetos
Deve receber username via header da requisição:
{ "username": "nome.usuario" }
Retorno (sucesso):
- Status 200 Ok
{ "projects": [ { "id": "uuid", "title": "'Nome do projeto'", "location": "Mendes/RJ", "cost": 1000, "done": false, "deadline": "2022-12-02T00:00:00.000Z", "username": "nome.usuario", "created_at": "2022-12-01T00:00:00.000Z", "updated_at": "2022-12-01T00:00:00.000Z" } ] }
Retorno (nenhum projeto encontrado):
- Status 200 Ok
{ "projects": [] }
Retorno (erro: validação):
- Status 400 Bad Request
{ "message": "Mensagem de erro" }
Retorno (erro: sem username no header):
- Status 406 Not Acceptable
{ "message": "Mensagem de erro" }
Marca um projeto como concluído
Deve receber id como parâmetro na rota
Deve receber username via header da requisição:
{ "username": "nome.usuario" }
Retorno (sucesso):
- Status 200 Ok
{ "id": "uuid", "title": "'Nome do projeto'", "zip_code": "26700000", "cost": 1000, "done": true, "deadline": "2022-12-02T00:00:00.000Z", "username": "nome.usuario", "created_at": "2022-12-01T00:00:00.000Z", "updated_at": "2022-12-01T00:00:00.000Z" }
Retorno (erro: validação):
- Status 400 Bad Request
{ "message": "Mensagem de erro" }
Retorno (erro: o projeto não é do usuário):
- Status 403 Forbidden
{ "message": "Mensagem de erro" }
Retorno (erro: sem username no header):
- Status 406 Not Acceptable
{ "message": "Mensagem de erro" }
Altera as informações de um projeto
Deve receber id como parâmetro na rota
Deve receber cost, deadline, title e zip_code via corpo da requisição:
{ "cost": 2000, "deadline": "2023-11-03", "title": "Nome do projeto atualizado", "zip_code": "88010400" }Deve receber username via header da requisição:
{ "username": "nome.usuario" }
Retorno (sucesso):
- Status 200 Ok
{ "id": "uuid", "title": "'Nome do projeto atualizado'", "zip_code": "88010400", "cost": 2000, "done": false, "deadline": "2023-11-03T00:00:00.000Z", "username": "nome.usuario", "created_at": "2022-12-01T00:00:00.000Z", "updated_at": "2022-12-01T00:00:00.000Z" }
Retorno (erro: validação):
- Status 400 Bad Request
{ "message": "Mensagem de erro" }
Retorno (erro: o projeto não é do usuário):
- Status 403 Forbidden
{ "message": "Mensagem de erro" }
Retorno (erro: sem username no header):
- Status 406 Not Acceptable
{ "message": "Mensagem de erro" }
Exclui um projeto
Deve receber id como parâmetro na rota
Deve receber username via header da requisição:
{ "username": "nome.usuario" }
Retorno (sucesso):
- Status 204 No Content
Retorno (erro: validação):
- Status 400 Bad Request
{ "message": "Mensagem de erro" }
Retorno (erro: o projeto não é do usuário):
- Status 403 Forbidden
{ "message": "Mensagem de erro" }
Retorno (erro: sem username no header):
- Status 406 Not Acceptable
{ "message": "Mensagem de erro" }