Skip to content

anderson-896/desafio-.Net

 
 

Repository files navigation

API RESTful de usuários + login

Criar aplicação que exponha uma API RESTful de criação de usuários com login.

A aplicação deve aceitar e responder apenas em JSON.

Nós esperamos que as mensagens de erro tenham o seguinte formato:

    {"message": "Error message", "errorCode": 123}

/signup

  • Essa rota espera um usuário com os campos abaixo:
    • firstName [String]
    • lastName [String]
    • email [String]
    • password [String]
    • phones [List]
      • number [Number]
      • area_code [Number]
      • country_code [String]
  • Segue abaixo um exemplo do formato:
    {
        "firstName": "Hello",
        "lastName": "World",
        "email": "hello@world.com"
        "password": "hunter2",
        "phones": [
            {
                "number": 988887888,
                "area_code": 81,
                "country_code": "+55"
            }
        ]
    }

Obs: O id do usuário pode ser um sequencial gerado pelo banco ou um id único.

  • Responder o código de status HTTP apropriado

  • Em caso de sucesso você deve retornar uma mensagem de sucesso;

  • Em caso de erro:

    • E-mail existente [retornar um erro com a mensagem "E-mail already exists"];
    • Campos inválidos [retornar um erro com a mensagem "Invalid fields"];
    • Campos não preenchidos [retornar um erro com a mensagem "Missing fields"];

/signin

  • Essa rota espera um objeto com os campos abaixo:

    • email [String]
    • password [String]
  • Em caso de sucesso você deve retornar uma mensagem de sucesso com informaçÕes do usuário logado;

  • Em caso de erro:

    • E-mail inexistente ou senha errada [retornar um erro com a mensagem "Invalid e-mail or password"];
    • Campos não preenchidos [retornar um erro com a mensagem "Missing fields"];

/me

  • Essa rota espera o login do usuário (via header):

    • Authorization [string]
  • Em caso de sucesso você deve retornar:

    • firstName: Nome do usuário;
    • lastName: Sobrenome do usuário;
    • email: E-mail do usuário;
    • phones: Lista de telefones do usuário;
    • created_at: Data da criação do usuário;
    • last_login: Data da última vez que o usuário realizou login;
  • Em caso de erro:

    • Token não enviado [retornar um erro com a mensagem "Unauthorized"];
    • Token expirado [retornar um erro com a mensagem "Unauthorized - invalid session"];

Requisitos

  • Banco de dados em memória.
  • Persistência com Entity Framework ou NHibernate.
  • Framework IOC de sua escolha.
  • Utilizar .Net framework ou .Net Core.

Requisitos desejáveis

  • Testes unitários

About

No description, website, or topics provided.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages

  • C# 88.1%
  • HTML 7.2%
  • JavaScript 3.8%
  • Other 0.9%