Laravel Logo

Projeto em Laravel, CRUD para atender a modelagem e autenticação com Sanctum.


Requisitos


Configurações

  • Execute composer install para instalar as dependências
  • Execute cp .env.example .env para criar o .env
  • Configure o banco de dados no .env criado e insira um valor em API_KEY
  • Execute php artisan key:generate para gerar a chave de criptografia
  • Execute php artisan migrate para gerar as tabelas, ou se preferir execute php artisan migrate:fresh --seed para gerar as tabelas populadas com dados de exemplo
  • Para iniciar o servidor execute php artisan serve

Por padrão o Token está para expirar a cada 24 horas, você pode alterar em Project\config\sanctum.php:41


Endpoints

Todos os endpoints com update e store são necessários permissão de admin na tabela user (Exceto o endpoint auth e user)

  • /auth

    • POST /login: Entra em uma conta com os dados informados
      • headers
        • REQUIRED x-api-key: API Key configurada no .env
      • body
        • REQUIRED email: E-mail do usuário
        • REQUIRED password: Senha do usuário
    • POST /register: Registra um novo usuário com os dados informados
      • headers
        • REQUIRED x-api-key: API Key configurada no .env
      • body
        • REQUIRED first_name: Primeiro nome do usuário
        • REQUIRED last_name: Último nome do usuário
        • REQUIRED email: E-mail do usuário
        • REQUIRED password: Senha do usuário
    • POST /logout: Sai da conta do Token informado
      • headers
        • REQUIRED x-api-key: API Key configurada no .env
        • REQUIRED Authorization: Bearer {USER_TOKEN}: Token do usuário
  • /user

    • GET /: Obtém todos os usuários
      • headers
        • REQUIRED x-api-key: API Key configurada no .env
    • GET /{id}: Obtém o usuário do id informado
      • headers
        • REQUIRED x-api-key: API Key configurada no .env
      • request
        • REQUIRED id: ID do usuário
    • POST /{id}: Atualiza o usuário do id informado
      • headers
        • REQUIRED x-api-key: API Key configurada no .env
        • REQUIRED Authorization: Bearer {USER_TOKEN}: Token do usuário
      • request
        • REQUIRED id: ID do usuário
      • body
        • OPTIONAL first_name: Primeiro nome do usuário
        • OPTIONAL last_name: Último nome do usuário
        • OPTIONAL email: E-mail do usuário
        • OPTIONAL password: Senha do usuário
        • OPTIONAL status: Usuário ativo ou não
        • OPTIONAL admin: Usuário é administrador ou não
        • OPTIONAL company_id: ID da empresa em que o usuário está lotado
    • DELETE /{id}: Deleta o usuário do id informado
      • headers
        • REQUIRED x-api-key: API Key configurada no .env
        • REQUIRED Authorization: Bearer {USER_TOKEN}: Token do usuário
      • request
        • REQUIRED id: ID do usuário
  • /company

    • GET /: Obtém todas as empresas
      • headers
        • REQUIRED x-api-key: API Key configurada no .env
    • GET /{id}: Obtém a empresa do id informado
      • request
        • REQUIRED id: ID da empresa
    • POST /{id}: Atualiza a empresa do id informado
      • headers
        • REQUIRED x-api-key: API Key configurada no .env
        • REQUIRED Authorization: Bearer {USER_TOKEN}: Token do usuário
      • request
        • REQUIRED id: ID da empresa
      • body
        • OPTIONAL address: Endereço da empresa
        • OPTIONAL phone: Endereço da empresa
        • OPTIONAL email: Endereço da empresa
        • OPTIONAL status: Endereço da empresa
    • POST /: Adiciona uma nova empresa com os dados informados
      • headers
        • REQUIRED x-api-key: API Key configurada no .env
        • REQUIRED Authorization: Bearer {USER_TOKEN}: Token do usuário
      • body
        • REQUIRED address: Endereço da empresa
        • REQUIRED phone: Endereço da empresa
        • REQUIRED email: Endereço da empresa
    • DELETE /{id}: Deleta a empresa do id informado
      • headers
        • REQUIRED x-api-key: API Key configurada no .env
        • REQUIRED Authorization: Bearer {USER_TOKEN}: Token do usuário
      • request
        • REQUIRED id: ID da empresa
  • /product

    • GET /: Obtém todos os produtos
      • headers
        • REQUIRED x-api-key: API Key configurada no .env
    • GET /{id}: Obtém o produto do id informado
      • headers
        • REQUIRED x-api-key: API Key configurada no .env
      • request
        • REQUIRED id: ID do produto
    • POST /{id}: Atualiza o produto do id informado
      • headers
        • REQUIRED x-api-key: API Key configurada no .env
        • REQUIRED Authorization: Bearer {USER_TOKEN}: Token do usuário
      • request
        • REQUIRED id: ID do produto
      • body
        • OPTIONAL name: Nome do produto
        • OPTIONAL description: Descrição do produto
        • OPTIONAL model: Modelo do produto
        • OPTIONAL brand: Marca do produto
        • OPTIONAL price: Preço do produto
        • OPTIONAL stock: Quantidade de produto no estoque
        • OPTIONAL status: Produto ativo ou não
    • POST /: Adiciona um novo produto com os dados informados
      • headers
        • REQUIRED x-api-key: API Key configurada no .env
        • REQUIRED Authorization: Bearer {USER_TOKEN}: Token do usuário
      • body
        • REQUIRED name: Nome do produto
        • REQUIRED description: Descrição do produto
        • REQUIRED model: Modelo do produto
        • REQUIRED brand: Marca do produto
        • REQUIRED price: Preço do produto
        • REQUIRED stock: Quantidade de produto no estoque
    • DELETE /{id}: Deleta o produto do id informado
      • headers
        • REQUIRED x-api-key: API Key configurada no .env
        • REQUIRED Authorization: Bearer {USER_TOKEN}: Token do usuário
      • request
        • REQUIRED id: ID do produto
  • /companyproduct

    • GET /: Obtém todos os produtos de todas as empresas
      • headers
        • REQUIRED x-api-key: API Key configurada no .env
    • GET /{id}: Obtém o produto da empresa do id informado
      • headers
        • REQUIRED x-api-key: API Key configurada no .env
      • request
        • REQUIRED id: ID do produto da empresa
    • GET /company/{id}: Obtém o produto da empresa pelo id da empresa informada
      • headers
        • REQUIRED x-api-key: API Key configurada no .env
      • request
        • REQUIRED id: ID da empresa
    • POST /{id}: Atualiza o produto da empresa do id informado
      • headers
        • REQUIRED x-api-key: API Key configurada no .env
        • REQUIRED Authorization: Bearer {USER_TOKEN}: Token do usuário
      • request
        • REQUIRED id: ID do produto da empresa
      • body
        • OPTIONAL sell_period: Data e hora de até quando o produto está disponível para venda
        • OPTIONAL product_id: ID do produto
        • OPTIONAL company_id: ID da empresa
    • POST /: Adiciona um novo produto da empresa com os dados informados
      • headers
        • REQUIRED x-api-key: API Key configurada no .env
        • REQUIRED Authorization: Bearer {USER_TOKEN}: Token do usuário
      • body
        • REQUIRED sell_period: Data e hora de até quando o produto está disponível para venda
        • REQUIRED product_id: ID do produto
        • REQUIRED company_id: ID da empresa
    • DELETE /{id}: Deleta o produto da empresa do id informado
      • headers
        • REQUIRED x-api-key: API Key configurada no .env
        • REQUIRED Authorization: Bearer {USER_TOKEN}: Token do usuário
      • request
        • REQUIRED id: ID do produto da empresa
  • /userproduct

    • GET /: Obtém todos os produtos de todos os usuários
      • headers
        • REQUIRED x-api-key: API Key configurada no .env
    • GET /{id}: Obtém o produto do usuário do id informado
      • headers
        • REQUIRED x-api-key: API Key configurada no .env
      • request
        • REQUIRED id: ID do produto do usuário
    • GET /user/{id}: Obtém o produto do usuário pelo id do usuário informado
      • headers
        • REQUIRED x-api-key: API Key configurada no .env
      • request
        • REQUIRED id: ID do usuário
    • POST /{id}: Atualiza o produto do usuário do id informado
      • headers
        • REQUIRED x-api-key: API Key configurada no .env
        • REQUIRED Authorization: Bearer {USER_TOKEN}: Token do usuário
      • request
        • REQUIRED id: ID do produto do usuário
      • body
        • OPTIONAL enable: Se o usuário pode ou não vender o produto
        • OPTIONAL product_id: ID do produto
        • OPTIONAL user_id: ID do usuário
    • POST /: Adiciona um novo produto do usuário com os dados informados
      • headers
        • REQUIRED x-api-key: API Key configurada no .env
        • REQUIRED Authorization: Bearer {USER_TOKEN}: Token do usuário
      • body
        • REQUIRED enable: Se o usuário pode ou não vender o produto
        • REQUIRED product_id: ID do produto
        • REQUIRED user_id: ID do usuário
    • DELETE /{id}: Deleta o produto do usuário do id informado
      • headers
        • REQUIRED x-api-key: API Key configurada no .env
        • REQUIRED Authorization: Bearer {USER_TOKEN}: Token do usuário
      • request
        • REQUIRED id: ID do produto do usuário