Skip to content

Latest commit

 

History

History
2290 lines (1958 loc) · 39.9 KB

DOCUMENTATION.md

File metadata and controls

2290 lines (1958 loc) · 39.9 KB

Documentação

Esta é a documentação da Utilização da API Ecothink

Autenticação

Esta API usa 3 tipos de Tokens:

  • Token de Usuário - Tem a duração de 1 dia
    • Administrador
    • Organização e Padrão
  • Token de Recuperação de Senha - Tem a duração de 10 minutos
  • Token de Confirmação de Conta - Tem a duração de 10 minutos

Obs: A identificação de Usuário Administrador, Organização e Padrão será feita no backend via JWT

Rotas da API

Índice

Sobre Headers

Rotas com paginação retornam a Header 'X-Total-Count' que mostra o total de dados daquela rota.

A rota Evento - Mostrar Um retorna a Header 'X-Total-Subscribers-Count' que mostra o total de inscritos daquele evento.

Login

Login - Logar Usuário

Rota: POST /login
Autenticação: Não
Body:

{
  "email": "usuario@email.com",
  "senha": "senha"
}

Response:
{
  "auth": true, //Boolean
  "token": "*Token de Usuário*" //String
}
Refresh Token - Renovar Token de Usuário

Rota: POST /refreshToken
Autenticação: Sim
Header:

{ 
  Authorization: Bearer *Token de Usuário* 
}

Response:
{
  "auth": true, //Boolean
  "token": "*Token de Usuário*" //String
}

Recuperação de Senha

Solicitar Token - Token será enviado ao e-mail do usuário

Rota: POST /recoveryPassword
Autenticação: Não
Body:

{
  "email": "usuario@email.com"
}

Response:
{
  "success": "Token enviado para o e-mail do usuário" //String
}
Alterar Senha - Altera senha do Usuário

Rota: PUT /recoveryPassword
Autenticação: Sim
Header:

{ 
  Authorization: Bearer *Token de Recuperação de Senha* 
}

Body:
{
  "senha": "senha"
}

Response:
{
  "success": "Senha alterada com sucesso" //String
}

Confirmação de Conta

Solicitar Token - Token será enviado ao e-mail do usuário

Rota: POST /usuario/confirmacao
Autenticação: Sim
Header:

{ 
  Authorization: Bearer *Token de Usuário* 
}

Response:
{
  "success": "Token enviado para o e-mail do usuário" //String
}
Confirmar E-mail - Confirma o cadastro do Usuário

Rota: PUT /usuario/confirmacao/confirmar
Autenticação: Sim
Header:

{ 
  Authorization: Bearer *Token de Confirmação de Conta* 
}

Response:
{
  "success": "E-mail confirmado com sucesso" //String
}

Estado

Mostrar Todos - Retorna os valores de todos os estados

Rota: GET /estado
Autenticação: Não
Response:

[
  {
      "codigo": 1, //Number
      "nome": "Estado", //String
      "sigla": "SG" //String
  },
  ...
]
Mostrar Um - Retorna os valores de um estado

Rota: GET /estado/:codigo
Autenticação: Não
Response:

{
  "codigo": 1, //Number
  "nome": "Estado", //String
  "sigla": "SG" //String
}
Cadastrar Estado - Acesso Permitido somente à Administradores

Rota: POST /estado
Autenticação: Sim
Header:

{ 
  Authorization: Bearer *Token de Usuário* 
}

Body:
{
  "nome": "Estado",
  "sigla": "SG"
}

Response:
{
  "codigo": 1, //Number
  "nome": "Estado", //String
  "sigla": "SG" //String
}
Atualizar Estado - Acesso Permitido somente à Administradores

Rota: PUT /estado/:codigo
Autenticação: Sim
Header:

{ 
  Authorization: Bearer *Token de Usuário* 
}

Body:

Só serão atualizados os dados presentes na requisição.

{
  "nome": "Estado",
  "sigla": "SG"
}

Response:
{
  "estado": {
      "codigo": 1, //Number
      "nome": "Estado", //String
      "sigla": "SG" //String
  },
  "success": "Estado - atualizado com sucesso" //String
}
Excluir Estado - Acesso Permitido somente à Administradores

Rota: DELETE /estado/:codigo
Autenticação: Sim
Header:

{ 
  Authorization: Bearer *Token de Usuário* 
}

Response:
{
  "success": "Estado - excluido com sucesso" //String
}

Cidade

Mostrar Todos - Retorna os valores de todas as cidades

Rota: GET /cidade
Paginação (10 por página): ?page=
Autenticação: Não
Response:

[
  {
      "codigo": 1, //Number
      "nome": "Cidade", //String
      "idEstado": 1 //Number
  },
  ...
]
Mostrar Todos (por Estado) - Retorna os valores de todas as cidades de um estado

Rota: GET cidade/estado/:codigo
Autenticação: Não
Response:

[
  {
      "codigo": 1, //Number
      "nome": "Cidade", //String
      "idEstado": 1 //Number
  },
  ...
]
Mostrar Um - Retorna os valores de uma cidade

Rota: GET /cidade/:codigo
Autenticação: Não
Response:

{
  "codigo": 1, //Number
  "nome": "Estado", //String
  "idEstado": 1 //Number
}
Cadastrar Cidade - Acesso Permitido somente à Administradores

Rota: POST /cidade
Autenticação: Sim
Header:

{ 
  Authorization: Bearer *Token de Usuário* 
}

Body:
{
  "nome": "Cidade",
  "idEstado": 1
}

Response:
{
  "codigo": 1, //Number
  "nome": "Cidade", //String
  "idEstado": 1 //Number
}
Atualizar Cidade - Acesso Permitido somente à Administradores

Rota: PUT /cidade/:codigo
Autenticação: Sim
Header:

{ 
  Authorization: Bearer *Token de Usuário* 
}

Body:

Só serão atualizados os dados presentes na requisição.

{
  "nome": "Estado",
  "idEstado": 1
}

Response:
{
  "cidade": {
      "codigo": 1, //Number
      "nome": "Estado", //String
      "idEstado": 1 //Number
  },
  "success": "Cidade - atualizado com sucesso" //String
}
Excluir Cidade - Acesso Permitido somente à Administradores

Rota: DELETE /cidade/:codigo
Autenticação: Sim
Header:

{ 
  Authorization: Bearer *Token de Usuário* 
}

Response:
{
  "success": "Cidade - excluido com sucesso" //String
}

Endereço

Mostrar Todos (Usuários) - Retorna os endereços de todos os usuários

Rota: GET /endereco/usuario
Paginação (10 por página): ?page=
Autenticação: Sim
Header:

{ 
  Authorization: Bearer *Token de Usuário* 
}

Response:
[
  {
      "codigo": 1, //Number
      "cep": "12345678", //String
      "logradouro": "Logradouro", //String
      "bairro": "Bairro", //String
      "numero": 1, //Number
      "idCidade": 1, //Number
      "usuario": {
          "codigo": 1, //Number
          "nome": "Usuario" //String
      }
  },
  ...
]
Mostrar Todos (Eventos) - Retorna os endereços de todos os eventos

Rota: GET /endereco/evento
Paginação (10 por página): ?page=
Autenticação: Sim
Header:

{ 
  Authorization: Bearer *Token de Usuário* 
}

Response:
[
  {
      "codigo": 1, //Number
      "cep": "12345678", //String
      "logradouro": "Logradouro", //String
      "bairro": "Bairro", //String
      "numero": 1, //Number
      "idCidade": 1, //Number
      "usuario": {
          "codigo": 1, //Number
          "nome": "Usuario" //String
      }
  },
  ...
]
Mostrar Um - Retorna os valores de um endereco

Rota: GET /endereco/:codigo
Autenticação: Sim
Header:

{ 
  Authorization: Bearer *Token de Usuário* 
}

Response:
{
  "codigo": 1, //Number
  "cep": "12345678", //String
  "logradouro": "Logradouro", //String
  "bairro": "Bairro", //String
  "numero": 1, //Number
  "idCidade": 1 //Number
}
Cadastrar Endereço (Usuário) - Acesso Permitido somente ao Usuário

Rota: POST /endereco/usuario/:codigo
Autenticação: Sim
Header:

{ 
  Authorization: Bearer *Token de Usuário* 
}

Body:
{
  "cep": "12345678",
  "logradouro": "Logradouro",
  "bairro": "Bairro",
  "numero": 1, // Opcional
  "idCidade": 1
}

Response:
{
  "codigo": 1, //Number
  "cep": "12345678", //String
  "logradouro": "Logradouro", //String
  "bairro": "Bairro", //String
  "numero": 1, //Number
  "idCidade": 1 //Number
}
Atualizar Endereço (Usuário) - Acesso Permitido somente ao Usuário

Rota: PUT /endereco/usuario/:codigo
Autenticação: Sim
Header:

{ 
  Authorization: Bearer *Token de Usuário* 
}

Body:

Só serão atualizados os dados presentes na requisição.

{
  "cep": "12345678",
  "logradouro": "Logradouro",
  "bairro": "Bairro",
  "numero": 1, // Opcional
  "idCidade": 1
}

Response:
{
  "endereco" : {
      "codigo": 1, //Number
      "cep": "12345678", //String
      "logradouro": "Logradouro", //String
      "bairro": "Bairro", //String
      "numero": 1, //Number
      "idCidade": 1 //Number
  },
  "success": "Endereco - atualizado com sucesso" //String
}
Atualizar Endereço (Evento) - Acesso Permitido somente ao Usuário Organizador do Evento

Rota: PUT /endereco/evento/:codigo
Autenticação: Sim
Header:

{ 
  Authorization: Bearer *Token de Usuário* 
}

Body:

Só serão atualizados os dados presentes na requisição.

{
  "cep": "12345678",
  "logradouro": "Logradouro",
  "bairro": "Bairro",
  "numero": 1, // Opcional
  "idCidade": 1
}

Response:
{
  "endereco" : {
      "codigo": 1, //Number
      "cep": "12345678", //String
      "logradouro": "Logradouro", //String
      "bairro": "Bairro", //String
      "numero": 1, //Number
      "idCidade": 1 //Number
  },
  "success": "Endereco - atualizado com sucesso" //String
}

Palavra Chave

Mostrar Todos - Retorna os valores de todas as Palavras Chave

Rota: GET /palavrachave
Paginação (10 por página): ?page=
Autenticação: Sim
Header:

{ 
  Authorization: Bearer *Token de Usuário* 
}

Response:
[
  {
      "codigo": 1, //Number
      "palavra": "Palavra" //String
  },
  ...
]
Mostrar Um - Retorna os valores de uma Palavra Chave

Rota: GET /palavrachave/:codigo
Autenticação: Sim
Header:

{ 
  Authorization: Bearer *Token de Usuário* 
}

Response:
{
  "codigo": 1, //Number
  "palavra": "Palavra" //String
}
Cadastrar Palavra Chave - Acesso Permitido somente à Administradores

Rota: POST /palavrachave
Autenticação: Sim
Header:

{ 
  Authorization: Bearer *Token de Usuário* 
}

Body:
{
  "palavra": "Palavra"
}

Response:
{
  "codigo": 1, //Number
  "palavra": "Palavra" //String
}
Atualizar Palavra Chave - Acesso Permitido somente à Administradores

Rota: PUT /palavrachave/:codigo
Autenticação: Sim
Header:

{ 
  Authorization: Bearer *Token de Usuário* 
}

Body:

Só serão atualizados os dados presentes na requisição.

{
  "palavra": "Palavra"
}

Response:
{
  "palavra": {
      "codigo": 1, //Number
      "palavra": "Palavra" //String
  },
  "success": "Palavra Chave - atualizado com sucesso" //String
}
Excluir Palavra Chave - Acesso Permitido somente à Administradores

Rota: DELETE /palavrachave/:codigo
Autenticação: Sim
Header:

{ 
  Authorization: Bearer *Token de Usuário* 
}

Response:
{
  "success": "Palavra Chave - excluido com sucesso" //String
}

Foto

Mostrar Todos (por Evento) - Retorna os valores de todas as Fotos

Rota: GET /foto/evento/:codigo
Paginação (10 por página): ?page=
Autenticação: Sim
Header:

{ 
  Authorization: Bearer *Token de Usuário* 
}

Response:
[
  {
      "codigo": 1, //Number
      "url": "*URL da Foto*", //String
      "idUsuario": 1, //Number
      "idEvento": 1 //Number
  },
  ...
]
Mostrar Um - Retorna os valores de uma Foto

Rota: GET /foto/:codigo
Autenticação: Sim
Header:

{ 
  Authorization: Bearer *Token de Usuário* 
}

Response:
{
  "codigo": 1, //Number
  "url": "*URL da Foto*", //String
  "idUsuario": 1, //Number
  "idEvento": 1 //Number
}
Cadastrar Foto (Evento) - Acesso Permitido somente ao Usuário Organizador do Evento

Rota: POST /foto/usuario/:cdUsuario/evento/:cdEvento
Autenticação: Sim
Header:

{ 
  Authorization: Bearer *Token de Usuário* 
}

Body:
{
  "base64": "*Foto em Base64*"
}

Response:
{
  "codigo": 1, //Number
  "url": "*URL da Foto*", //String
  "idUsuario": 1, //Number
  "idEvento": 1 //Number
}
Cadastrar Foto de Perfil (Usuário) - Acesso Permitido somente ao Usuário

Rota: POST /foto/usuario/:codigo
Autenticação: Sim
Header:

{ 
  Authorization: Bearer *Token de Usuário* 
}

Body:
{
  "base64": "*Foto em Base64*"
}

Response:
{
  "codigo": 1, //Number
  "url": "*URL da Foto*", //String
  "idUsuario": 1 //Number
}
Atualizar Foto de Perfil (Usuário) - Acesso Permitido somente ao Usuário

Rota: PUT /foto/usuario/:codigo
Autenticação: Sim
Header:

{ 
  Authorization: Bearer *Token de Usuário* 
}

Body:

Só serão atualizados os dados presentes na requisição.

{
  "base64": "*Foto em Base64*"
}

Response:
{
  "success": "Foto de Perfil - atualizado com sucesso" //String
}
Excluir Foto (Evento) - Acesso Permitido somente ao Usuário Organizador do Evento

Rota: DELETE /foto/:cdFoto/usuario/:cdUsuario/evento/:cdEvento
Autenticação: Sim
Header:

{ 
  Authorization: Bearer *Token de Usuário* 
}

Response:
{
  "success": "Foto - excluido com sucesso" //String
}
Excluir Foto de Perfil (Usuário) - Acesso Permitido somente ao Usuário

Rota: DELETE /foto/usuario/:codigo
Autenticação: Sim
Header:

{ 
  Authorization: Bearer *Token de Usuário* 
}

Response:
{
  "success": "Foto de Perfil - excluido com sucesso" //String
}

Evento

Mostrar Todos - Retorna os valores de todos os Eventos

Rota: GET /evento
Paginação (10 por página): ?page=
Em Ordem Aleátoria: ?random=true
Autenticação: Sim
Header:

{ 
  Authorization: Bearer *Token de Usuário* 
}

Response:
[
  {
      "codigo": 1, //Number
      "nome": "Evento", //String
      "dataInicio": "*Data Formato ISO*", //String
      "dataFinal": "*Data Formato ISO*", //String
      "descricao": "Descrição", //String
      "dataCadastro": "*Data Formato ISO*", //String
      "dataAlteracao": "*Data Formato ISO*", //String
      "idOrganizador": 1, //Number
      "idEndereco": 1, //Number
      "status": "aberto", //Ou "fechado" //String
      "palavra": [
          {
              "codigo": 1, //Number
              "palavra": "Palavra" //String
          },
          ...
      ]
  },
  ...
]
Mostrar Todos (por Cidade) - Retorna os valores de todos os Eventos de uma Cidade

Rota: GET /evento/cidade/:codigo
Paginação (10 por página): ?page=
Autenticação: Sim
Header:

{ 
  Authorization: Bearer *Token de Usuário* 
}

Response:
[
  {
      "codigo": 1, //Number
      "nome": "Evento", //String
      "dataInicio": "*Data Formato ISO*", //String
      "dataFinal": "*Data Formato ISO*", //String
      "descricao": "Descrição", //String
      "dataCadastro": "*Data Formato ISO*", //String
      "dataAlteracao": "*Data Formato ISO*", //String
      "idOrganizador": 1, //Number
      "idEndereco": 1, //Number
      "status": "aberto", //Ou "fechado" //String
      "palavra": [
          {
              "codigo": 1, //Number
              "palavra": "Palavra" //String
          },
          ...
      ]
  },
  ...
]
Mostrar Todos (por Usuário) - Retorna os valores de todos os Eventos de um Usuário

Rota: GET /evento/usuario/:codigo
Paginação (10 por página): ?page=
Autenticação: Sim
Header:

{ 
  Authorization: Bearer *Token de Usuário* 
}

Response:
[
  {
      "codigo": 1, //Number
      "nome": "Evento", //String
      "dataInicio": "*Data Formato ISO*", //String
      "dataFinal": "*Data Formato ISO*", //String
      "descricao": "Descrição", //String
      "dataCadastro": "*Data Formato ISO*", //String
      "dataAlteracao": "*Data Formato ISO*", //String
      "idOrganizador": 1, //Number
      "idEndereco": 1, //Number
      "status": "aberto", //Ou "fechado" //String
      "palavra": [
          {
              "codigo": 1, //Number
              "palavra": "Palavra" //String
          },
          ...
      ]
  },
  ...
]
Mostrar Todos (por Palavra Chave) - Retorna os valores de todos os Eventos com determinada Palavra Chave

Rota: GET /evento/palavrachave/:codigo
Paginação (10 por página): ?page=
Autenticação: Sim
Header:

{ 
  Authorization: Bearer *Token de Usuário* 
}

Response:
[
  {
      "codigo": 1, //Number
      "nome": "Evento", //String
      "dataInicio": "*Data Formato ISO*", //String
      "dataFinal": "*Data Formato ISO*", //String
      "descricao": "Descrição", //String
      "dataCadastro": "*Data Formato ISO*", //String
      "dataAlteracao": "*Data Formato ISO*", //String
      "idOrganizador": 1, //Number
      "idEndereco": 1, //Number
      "status": "aberto", //Ou "fechado" //String
      "palavra": [
          {
              "codigo": 1, //Number
              "palavra": "Palavra" //String
          },
          ...
      ]
  },
  ...
]
Mostrar Todos (Inscrito) - Retorna os valores de todos os Eventos em que o Usuário está Inscrito

Rota: GET /evento/usuario/:codigo/inscrito
Paginação (10 por página): ?page=
Autenticação: Sim
Header:

{ 
  Authorization: Bearer *Token de Usuário* 
}

Response:
[
  {
      "codigo": 1, //Number
      "nome": "Evento", //String
      "dataInicio": "*Data Formato ISO*", //String
      "dataFinal": "*Data Formato ISO*", //String
      "descricao": "Descrição", //String
      "dataCadastro": "*Data Formato ISO*", //String
      "dataAlteracao": "*Data Formato ISO*", //String
      "idOrganizador": 1, //Number
      "idEndereco": 1, //Number
      "status": "aberto", //Ou "fechado" //String
      "palavra": [
          {
              "codigo": 1, //Number
              "palavra": "Palavra" //String
          },
          ...
      ]
  },
  ...
]
Mostrar Todos (Pesquisa) - Retorna os valores de todos os Eventos com o nome pesquisado

Rota: GET /evento/pesquisa/:pesquisa
Paginação (10 por página): ?page=
Autenticação: Sim
Header:

{ 
  Authorization: Bearer *Token de Usuário* 
}

Response:
[
  {
      "codigo": 1, //Number
      "nome": "Evento", //String
      "dataInicio": "*Data Formato ISO*", //String
      "dataFinal": "*Data Formato ISO*", //String
      "descricao": "Descrição", //String
      "dataCadastro": "*Data Formato ISO*", //String
      "dataAlteracao": "*Data Formato ISO*", //String
      "idOrganizador": 1, //Number
      "idEndereco": 1, //Number
      "status": "aberto", //Ou "fechado" //String
      "palavra": [
          {
              "codigo": 1, //Number
              "palavra": "Palavra" //String
          },
          ...
      ]
  },
  ...
]
Mostrar Um - Retorna os valores de um Evento

Rota: GET /evento/:codigo
Autenticação: Sim
Header:

{ 
  Authorization: Bearer *Token de Usuário* 
}

Response:
{
    "codigo": 1, //Number
    "nome": "Evento", //String
    "dataInicio": "*Data Formato ISO*", //String
    "dataFinal": "*Data Formato ISO*", //String
    "descricao": "Descrição", //String
    "dataCadastro": "*Data Formato ISO*", //String
    "dataAlteracao": "*Data Formato ISO*", //String
    "idOrganizador": 1, //Number
    "idEndereco": 1, //Number
    "status": "aberto", //Ou "fechado" //String
    "palavra": [
        {
            "codigo": 1, //Number
            "palavra": "Palavra" //String
        },
        ...
    ],
    "inscrito": true //Boolean
}
Cadastrar Evento - Acesso Permitido somente ao Usuário

Rota: POST /evento
Autenticação: Sim
Header:

{ 
  Authorization: Bearer *Token de Usuário* 
}

Body:
{
  "nome": "Evento",
  "dataInicio": "AAAA-MM-DD",
  "dataFinal": "AAAA-MM-DD",
  "descricao": "Descrição", //Opcional
  "idOrganizador": 1,
  "cep": "12345678",
  "logradouro": "Logradouro",
  "bairro": "Bairro",
  "numero": 1, //Opcional
  "idCidade": 1
}

Response:
{
  "codigo": 1, //Number
  "nome": "Evento", //String
  "dataInicio": "*Data Formato ISO*", //String
  "dataFinal": "*Data Formato ISO*", //String
  "descricao": "Descrição", //String
  "dataCadastro": "*Data Formato ISO*", //String
  "dataAlteracao": "*Data Formato ISO*", //String
  "idOrganizador": 1, //Number
  "endereco": {
      "codigo": 1, //Number
      "cep": "12345678", //String
      "logradouro": "Logradouro", //String
      "bairro": "Bairro", //String
      "numero": 1, //Number
      "idCidade": 1 //Number
  }
}
Adicionar Palavra Chave - Acesso Permitido somente ao Usuário Organizador do Evento

Rota: POST /evento/:cdEvento/palavrachave/:cdPalavra
Autenticação: Sim
Header:

{ 
  Authorization: Bearer *Token de Usuário* 
}

Response:
{
  "success": "Palavra Chave - Adicionada" //String
}
Atualizar Evento - Acesso Permitido somente ao Usuário Organizador do Evento

Rota: PUT /evento/:codigo
Autenticação: Sim
Header:

{ 
  Authorization: Bearer *Token de Usuário* 
}

Body:

Só serão atualizados os dados presentes na requisição.

{
  "nome": "Evento",
  "dataInicio": "AAAA-MM-DD",
  "dataFinal": "AAAA-MM-DD",
  "descricao": "Descrição",
}

Response:
{
  "evento": {
      "codigo": 1, //Number
      "nome": "Evento", //String
      "dataInicio": "*Data Formato ISO*", //String
      "dataFinal": "*Data Formato ISO*", //String
      "descricao": "Descrição", //String
      "dataCadastro": "*Data Formato ISO*", //String
      "dataAlteracao": "*Data Formato ISO*", //String
      "idOrganizador": 1, //Number
      "idEndereco": 1, //Number
      "status": "aberto", //String
  },
  "success": "Evento - atualizado com sucesso" //String
}
Remover Palavra Chave - Acesso Permitido somente ao Usuário Organizador do Evento

Rota: DELETE /evento/:cdEvento/palavrachave/:cdPalavra
Autenticação: Sim
Header:

{ 
  Authorization: Bearer *Token de Usuário* 
}

Response:
{
  "success": "Palavra Chave - Removida" //String
}
Excluir Evento - Acesso Permitido somente ao Usuário Organizador do Evento

Rota: DELETE /evento/:codigo
Autenticação: Sim
Header:

{ 
  Authorization: Bearer *Token de Usuário* 
}

Response:
{
  "success": "Evento - excluido com sucesso" //String
}

Inscrição

Inscrição no Evento - Acesso Permitido somente ao Usuário

Rota: POST /evento/:cdEvento/usuario/:cdUsuario
Autenticação: Sim
Header:

{ 
  Authorization: Bearer *Token de Usuário* 
}

Response:
{
  "success": "Inscrição Bem Sucedida" //String
}
Cancelar Inscrição - Acesso Permitido somente ao Usuário

Rota: DELETE /evento/:cdEvento/usuario/:cdUsuario
Autenticação: Sim
Header:

{ 
  Authorization: Bearer *Token de Usuário* 
}

Response:
{
  "success": "Inscrição Cancelada" //String
}

Usuário

Mostrar Todos - Retorna os valores de todos os Usuários

Rota: GET /usuario
Paginação (10 por página): ?page=
Autenticação: Sim
Header:

{ 
  Authorization: Bearer *Token de Usuário* 
}

Response:
[
  {
      "codigo": 1, //Number
      "nome": "Usuario", //String
      "email": "usuario@email.com", //String
      "celular": "1234567890", //String
      "dataNascimento": "AAAA-MM-DD", //String
      "dataCadastro": "*Data Formato ISO*", //String
      "dataAlteracao": "*Data Formato ISO*", //String
      "nivel": "USU", //String
      "idEndereco": 1, //Number
      "idFotoPerfil": 1 //Number
  },
  ...
]
Mostrar Todos (Padrão) - Retorna os valores de todos os Usuários - Padrão

Rota: GET /usuario/usuarios
Paginação (10 por página): ?page=
Autenticação: Sim
Header:

{ 
  Authorization: Bearer *Token de Usuário* 
}

Response:
[
  {
      "codigo": 1, //Number
      "nome": "Usuario", /String
      "email": "usuario@email.com", /String
      "celular": "1234567890", /String
      "dataNascimento": "AAAA-MM-DD", /String
      "dataCadastro": "*Data Formato ISO*", /String
      "dataAlteracao": "*Data Formato ISO*", /String
      "nivel": "USU", /String
      "idEndereco": 1, //Number
      "idFotoPerfil": 1 //Number
  },
  ...
]
Mostrar Todos (Organizações) - Retorna os valores de todos os Usuários - Organização

Rota: GET /usuario/organizacoes
Paginação (10 por página): ?page=
Autenticação: Sim
Header:

{ 
  Authorization: Bearer *Token de Usuário* 
}

Response:
[
  {
      "codigo": 1, //Number
      "nome": "Usuario", //String
      "email": "usuario@email.com", //String
      "celular": "1234567890", //String
      "dataNascimento": "AAAA-MM-DD", //String
      "dataCadastro": "*Data Formato ISO*", //String
      "dataAlteracao": "*Data Formato ISO*", //String
      "nivel": "ORG", //String
      "idEndereco": 1, //Number
      "idFotoPerfil": 1 //Number
  },
  ...
]
Mostrar Todos (Pesquisa) - Retorna os valores de todos os Usuários com o nome pesquisado

Rota: GET /usuario/pesquisa/:pesquisa
Paginação (10 por página): ?page=
Autenticação: Sim
Header:

{ 
  Authorization: Bearer *Token de Usuário* 
}

Response:
[
  {
      "codigo": 1, //Number
      "nome": "Usuario", //String
      "email": "usuario@email.com", //String
      "celular": "1234567890", //String
      "dataNascimento": "AAAA-MM-DD", //String
      "dataCadastro": "*Data Formato ISO*", //String
      "dataAlteracao": "*Data Formato ISO*", //String
      "nivel": "ORG", //String
      "idEndereco": 1, //Number
      "idFotoPerfil": 1 //Number
  },
  ...
]
Mostrar Um - Retorna os valores de um Usuário

Rota: GET /usuario/:codigo
Autenticação: Sim
Header:

{ 
  Authorization: Bearer *Token de Usuário* 
}

Response:
{
  "codigo": 1, //Number
  "nome": "Usuario", //String
  "email": "usuario@email.com", //String
  "celular": "1234567890", //String
  "dataNascimento": "AAAA-MM-DD", //Somente se Nível: "USU" //String
  "dataCadastro": "*Data Formato ISO*", //String
  "dataAlteracao": "*Data Formato ISO*", //String
  "nivel": "USU", //String
  "idEndereco": 1, //Number
  "idFotoPerfil": 1 //Number
}
Perfil - Acesso Permitido somente ao Usuário

Rota: GET /usuario/perfil/:codigo
Autenticação: Sim
Header:

{ 
  Authorization: Bearer *Token de Usuário* 
}

Response:
{
  "codigo": 1, //Number
  "nome": "Usuario", //String
  "email": "usuario@email.com", //String
  "celular": "1234567890", //String
  "dataNascimento": "AAAA-MM-DD", //Somente se Nível: "USU" //String
  "dataCadastro": "*Data Formato ISO*", //String
  "dataAlteracao": "*Data Formato ISO*", //String
  "cpf": "12345678901", //Somente se Nível: "USU" //String
  "cnpj": "12345678901234", //Somente se Nível: "ORG" //String
  "nivel": "USU", //String
  "idEndereco": 1, //Number
  "idFotoPerfil": 1, //Number
  "confirmacao": "confirmado" //Ou "pendente" //String
}
Cadastrar Usuário - Cadastra um Usuário Padrão

Rota: POST /usuario
Autenticação: Não
Body:

{
  "nome": "Usuario",
  "email": "usuario@email.com",
  "celular": "1234567890", //Opcional
  "dataNascimento": "AAAA-MM-DD",
  "cpf": "12345678901", //Opcional
  "senha": "senha"
}

Response:
{
  "usuario": {
      "codigo": 1, //Number
      "nome": "Usuario", //String
      "email": "usuario@email.com", //String
      "celular": "1234567890", //String
      "dataNascimento": "AAAA-MM-DD", //String
      "cpf": "12345678901" //String
  }
  "token": "*Token de Usuário*" //String
}
Cadastrar Organizador - Cadastra um Usuário Organizador

Rota: POST /usuario/organizacao
Autenticação: Não
Body:

{
  "nome": "Usuario",
  "email": "usuario@email.com",
  "celular": "1234567890", //Opcional
  "cnpj": "12345678901234",
  "senha": "senha"
}

Response:
{
  "usuario": {
      "codigo": 1, //Number
      "nome": "Usuario", //String
      "email": "usuario@email.com", //String
      "celular": "1234567890", //String
      "cnpj": "12345678901234", //String
  }
  "token": "*Token de Usuário*" // String
}
Atualizar Usuário - Acesso Permitido somente ao Usuário

Rota: PUT /usuario/:codigo
Autenticação: Sim
Header:

{ 
  Authorization: Bearer *Token de Usuário* 
}

Body:

Só serão atualizados os dados presentes na requisição.

{
  "nome": "Usuario",
  "email": "usuario@email.com",
  "celular": "1234567890",
  "dataNascimento": "AAAA-MM-DD",
  "cpf": "12345678901",
  "senha": "senha"
}

Response:
{
  "usuario": {
      "codigo": 1, //Number
      "nome": "Usuario", //String
      "email": "usuario@email.com", //String
      "celular": "1234567890",
      "dataNascimento": "AAAA-MM-DD", //String
      "cpf": "12345678901" //String
  },
  "success": "Usuário - atualizado com sucesso", //String
  "token": "*Token de Usuário*" //String
}
Atualizar Organizador - Acesso Permitido somente ao Usuário

Rota: PUT /usuario/organizacao/:codigo
Autenticação: Sim
Header:

{ 
  Authorization: Bearer *Token de Usuário* 
}

Body:

Só serão atualizados os dados presentes na requisição.

{
  "nome": "Usuario",
  "email": "usuario@email.com",
  "celular": "1234567890", //Opcional
  "cnpj": "12345678901234",
  "senha": "senha"
}

Response:
{
  "usuario": {
      "codigo": 1, //Number
      "nome": "Usuario", //String
      "email": "usuario@email.com", //String
      "celular": "1234567890", //String
      "cnpj": "12345678901234", //String
  },
  "success": "Usuário - atualizado com sucesso", //String
  "token": "*Token de Usuário*" //String
}
Excluir Evento - Acesso Permitido somente ao Usuário Organizador do Evento

Rota: DELETE /usuario/:codigo
Autenticação: Sim
Header:

{ 
  Authorization: Bearer *Token de Usuário* 
}

Response:
{
  "success": "Usuário - excluido com sucesso" //String
}