Skip to content

SerraZ3/ecommerce

Repository files navigation

Ecommerce Aprendizado

Anotações do curso da Udemy Ecommerce real time com Node.js e Adonis Framework

Estudo realizado por Henrique A. Serra 😄 🤘

Pré-configurações do projeto

Crie o banco de dados da aplicação

No arquivo .env altere o DB_CONNECTION para mysql, o DB_USER, DB_PASSWORD e o DB_DATABASE para as configurações do seu banco de dados

Acesse o config/database.js e altere o segundo parametro na linha 19 para mysql caso esse seja o banco de dados utilizado

Instale o mysql na aplicação com o comando npm i --save mysql


A pasta app serve para ter toda a lógica da aplicação

Instalação de ferramentas

E-mail

Comando para instalar dependencias de e-mail na aplicação adonis

adonis install @adonisjs/mail

Configurações na pasta start/app.js

const providers = [
  ...
  '@adonisjs/mail/providers/MailProvider'
]

Exemplo de como usuar o e-email

const Mail = use('Mail')

await Mail.send('emails.welcome', {}, (message) => {
  message.from('[email protected]')
  message.to('[email protected]')
})

Validator

Comando para instalar dependencias do validator no projeto

adonis install @adonisjs/validator

Configurações na pasta start/app.js

const providers = [
  '@adonisjs/validator/providers/ValidatorProvider'
]

Exemplo de como usuar o Validator

Route
  .post('users', 'UserController.store')
  .validator('User')

Websocket

O websocket permite troca de informação simultanea com o servidor através de requisições. Mais informações aqui

Comando para instalar dependencias do websocket no projeto

adonis install @adonisjs/websocket

Configurações na pasta start/app.js

const providers = [
  '@adonisjs/websocket/providers/WsProvider'
]

Caso os arquivos start/socket.js e start/wsKernel.js não estiverem configurados adicionar, respectivamente:

const Ws = use('Ws')

Ws.channel('chat', ({ socket }) => {
  console.log('new socket joined %s', socket.id)
})
const Ws = use('Ws')

const globalMiddleware = []
const namedMiddleware = {}

Ws
  .registerGlobal(globalMiddleware)
  .registerNamed(namedMiddleware)

Adonis acl

Seria o nivel de acesso de cada usuário para a api

Para duvidas na instalação clique aqui

Comando para instalar dependencias do websocket no projeto

adonis install adonis-acl

Configurações na pasta start/app.js

const providers = [
  ...
  'adonis-acl/providers/AclProvider',
  ...
]
const aceProviders = [
  ...
  'adonis-acl/providers/CommandsProvider',
  ...
]
const aliases = {
  ...
  Role: 'Adonis/Acl/Role',
  Permission: 'Adonis/Acl/Permission',
  ...
}

Em app/Models/User.js faça

class User extends Model {
  ...
  static get traits () {
    return [
      '@provider:Adonis/Acl/HasRole',
      '@provider:Adonis/Acl/HasPermission'
    ]
  }
  ...
}

Em start/kernel.js faça

const namedMiddleware = {
  ...
  is: 'Adonis/Acl/Is',
  can: 'Adonis/Acl/Can',
  ...
}
const globalMiddleware = [
  ...
  'Adonis/Acl/Init'
  ...
]

Após realizar as configurações, dar o seguinte comando:

adonis acl:setup

Bumblebee

Auxilia no trabalho da informações da aplicação

Para instalação:

adonis install adonis-bumblebee

Configuração em start/app.js

const providers = [
  'adonis-bumblebee/providers/BumblebeeProvider'
]
const aceProviders = [
  'adonis-bumblebee/providers/CommandsProvider'
]

Manipulação do Banco de dados

Migrations

O migration é baseado na biblioteca knex.js. Em seu site é possivel ver a documentação que ajudará a montar uma tabela

Para criar uma estrutura do banco de dados, o adonis, utiliza o comando de migration. Ele cria um arquivo com uma estrutura que facilita criar tabelas e relações entre elas no banco de dados

O comando tem a seguinte estrutura:

adonis make:migration name

Onde se é criado o arquivo onde estará a estrutura da tabela que você nomeou

Mais informações sobre o migration aqui. Nesse link conterá a comandos de relação e criação de tabelas

O migration é divido em up() e down(). O up() é usada para criação ou alteração de uma tabela, enquanto o down() seria para reverter as alterações do up().

Exemplo de como eles são utilizado:

'use strict'

const Schema = use('Schema')

class UsersSchema extends Schema {
  up () {
    // Quando o up é chamado ele cria uma tabela com essas características
    this.create('users', (table) => {
      table.increments()
      table.string('username', 80).notNullable().unique()
      table.string('email', 254).notNullable().unique()
      table.string('password', 60).notNullable()
      table.timestamps()
    })
    // Pode-se haver mais de uma criação ou relação
  }

  down () {
    // Quando o down é chamado ele desfaz a tabela users
    this.drop('users')
    // Outros comandos também podem ser atribuidos nesse caso
  }
}

module.exports = UsersSchema

Para rodar todos os up() deve-se dar o comando adonis migration:run. Ele irá pegar todos os migrations e dar um up().

Para ver o status das migrations deve-se dar o comando adonis migration:status. Com ele você poderá ver se a migration já foi realizada ou não.

Além disso é possivel ver o "lote", onde irá mostrar qual foi a versão que o migration foi realizado. Pode-se também retornar para um lote anterior com o comando adonis migration:rollback, ou retornar para o lote 0 com adonis migration:reset, além de poder retornar para o lote 0 e reniciá-las com adonis migration:refresh

About

No description, website, or topics provided.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published