Skip to content

Matheusvic112/API-WebAgenda

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

36 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

WebAgenda API | API REST (Back-end)

Iniciando o projeto

Para instalar as dependências, utilize o seguinte comando no prompt de comando:

$ yarn

Passo 2 - Rodar uma migração ⚙️

Após instalar as dependências, você pode rodar uma migração utilizando o seguinte comando no prompt de comando:
$ yarn migration:run

Passo 3 - Iniciar o servidor de desenvolvimento 🚀

$ yarn dev

Agora você tem uma aplicação em pleno funcionamento e esperando para ser rodada. 🚀

🔥 Server running 🔥


Este é o backend da aplicação WebAgenda API para gerenciamento de clientes e contatos.

  • A API disponível em https://fullstack-api-ncj2.onrender.com
  • Clientes (Endpoints)

    Rotas Sem Autenticação

  • Criação de um Cliente:

  • Observação: O campo "telefone" precisa ter 11 digitos

    POST /client - FORMATO DA REQUISIÇÃO - STATUS 201

    {
        "nome_completo": "Msqs Silva",
        "email": "testes@mail.com",
        "telefone": "11 9832915597",
    }

    Caso dê tudo certo, a resposta será assim:

    POST /client - FORMATO DA RESPOSTA - STATUS 201

    {
    	"id": "711a43eb-d36a-4f70-81d4-9245d688fab7",
    	"nome_completo": "Msqs Silva",
    	"email": "testes@mail.com",
    	"telefone": "11 9832915597",
    	"createdAt": "2023-03-24T01:51:28.923Z",
    	"contatos": []
    },
    

  • Login do Cliente

  • POST /client/login - FORMATO DA REQUISIÇÃO - STATUS 201

    {
        "email": "testes@mail.com",
        "password": "1234567"
    }

    Caso dê tudo certo, a resposta será assim:

    POST /client/login - FORMATO DA RESPOSTA - STATUS 201

    {
        "token": "eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJpZCI6IjcxMWE0M2ViLWQzNmEtNGY3MC04MWQ0LTkyNDVkNjg4ZmFiNyIsImlhdCI6MTY4MDEyOTAwNSwiZXhwIjoxNjgwMjE1NDA1LCJzdWIiOiI3MTFhNDNlYi1kMzZhLTRmNzAtODFkNC05MjQ1ZDY4OGZhYjcifQ.pu5TsJwCRwaFLqsrcsVdbBw0529OQBcd6aKr2-qBgdM"
    }

    Caso dê um erro irá retornar o seguinte erro:

    {
        "message": "wrong email"
    
    }
    
    {
        "message": "wrong password"
    }

    Rotas Com Autenticação

    Rotas que necessitam de autorização deve ser informado no cabeçalho da requisição o campo "Authorization", dessa forma:

    Authorization: Bearer {token}

    Caso você tente acessar os endpoints sem um token válido receberá o seguinte erro


    (Exemplo) POST /contact/ - 401 Sem Autorização

    {
        "message": "Invalid token"
    }

    Caso seja informado um id inválido ou diferente do id do usuário logado irá retornar:

    {
        "message": "Token required"
    }


  • Podemos acessar um cliente específico utilizando o endpoint:

  • GET /client/:id - FORMATO DA RESPOSTA - STATUS 200

    	{
    	"id": "711a43eb-d36a-4f70-81d4-9245d688fab7",
    	"nome_completo": "Msqs Silva",
    	"email": "testes@mail.com",
    	"telefone": "11 9832915597",
    	"createdAt": "2023-03-24T01:51:28.923Z",
    	"contatos": []
    	},
  • Atualização de um cliente

  • PATCH /client/:id - FORMATO DA REQUISIÇÃO

    {
        "email": "teste13@gmail.com"
    }

    Caso dê tudo certo, a resposta será assim:

    PATCH /client/:id - FORMATO DA RESPOSTA - STATUS 200

    {
    	"nome_completo": "Msqs Silva",
    	"email": "testes13@mail.com",
    	"telefone": "11 9832915597",
    	
    }
  • Podemos deletar um cliente específico utilizando o endpoint:

  • DELETE /client/:id - FORMATO DA RESPOSTA - STATUS 204

    {}

  • Outra Possível Mensagem de Erro:

  • {
        "message": "Client Not Found"
    }

    Contatos (Endpoints)

  • Criando um contato a partir do cliente logado:

  • POST /contact - FORMATO DA REQUISIÇÃO

    {
        "nome_completo": "teste Silva",
        "email": "testandoSilva@mail.com",
        "telefone": "11 983191199"
    }

    Caso dê tudo certo, a resposta será assim:

    POST /contact - FORMATO DA RESPOSTA - STATUS 201

    {
    	"id": "e4e3b1a3-5e77-464c-8879-bb666b9164c6",
    	"nome_completo": "teste Silva",
    	"email": "testandoSilva@mail.com",
    	"telefone": "11 9831915197",
    	"createdAt": "2023-03-29T22:35:01.883Z",
    	"updatedAt": "2023-03-29T22:35:01.883Z",
    	"cliente": {
    		"id": "711a43eb-d36a-4f70-81d4-9245d688fab7",
    		"nome_completo": "Msqs Silva",
    		"email": "testes@mail.com",
    		"telefone": "11 9832915597",
    		"createdAt": "2023-03-24T01:51:28.923Z",
    		"updatedAt": "2023-03-29T22:34:09.952Z"
    	}
    },
    
    
  • Acessando um contato

  • GET /contact/:id - FORMATO DA RESPOSTA - STATUS 200

    {
      {
    	"id": "e4e3b1a3-5e77-464c-8879-bb666b9164c6",
    	"nome_completo": "teste Silva",
    	"email": "testandoSilva@mail.com",
    	"telefone": "11 9831915197",
    	"createdAt": "2023-03-29T22:35:01.883Z",
    	"updatedAt": "2023-03-29T22:35:01.883Z"
    
        }
    }
  • Atualização de um cliente

  • PATCH /contact/:id - FORMATO DA REQUISIÇÃO

    {
    	"nome_completo":"testes Silva",
    	"email":"teste33@mail.com",
    	"telefone":"11 9831915197"
    	
    }
  • Caso dê tudo certo, a resposta será assim:
  • PATCH /contacts/:id - FORMATO DA RESPOSTA - STATUS 200

    {
    	"id": "a4637f1e-20c8-4b7d-bb5f-53f6a61d14ed",
    	"nome_completo": "testes Silva",
    	"email": "teste33@mail.com",
    	"telefone": "11 9831915197",
    	"createdAt": "2023-03-28T03:54:13.856Z",
    	"updatedAt": "2023-03-28T03:54:13.856Z",
    	"cliente": {
    		"id": "711a43eb-d36a-4f70-81d4-9245d688fab7",
    		"nome_completo": "Msqs Silva",
    		"email": "testes@mail.com",
    		"telefone": "11 9832915597",
    		"createdAt": "2023-03-24T01:51:28.923Z",
    		"updatedAt": "2023-03-29T22:34:09.952Z"
    	}
    }
  • Podemos deletar um contato específico utilizando o endpoint:

  • DELETE /contact/:id - FORMATO DA RESPOSTA - STATUS 204

    {}

  • Outra Possível Mensagem de Erro:

  • {
        "message": "Contact Not Found"
    }

    About

    No description, website, or topics provided.

    Resources

    Stars

    Watchers

    Forks

    Releases

    No releases published

    Packages

    No packages published