Skip to content

Latest commit

 

History

History
473 lines (450 loc) · 7.11 KB

File metadata and controls

473 lines (450 loc) · 7.11 KB

POST /users

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"
}

POST /users/login

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"
}

POST /project

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"
}

GET /project/:id

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"
}

GET /projects

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"
}

PATCH /projects/:id/done

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"
}

PUT /project/:id

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"
}

DELETE /project/:id

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"
}