Criando um objeto com dados do produto no Redux

Temos a função para criar o objeto com o vendedor, vamos passar para o produto. A criação deste objeto será um pouco mais complexa, pois contém mais campos de dados. Vamos começar.

Vamos abrir nossa aplicação de produtos, e nela o arquivo server.js. Abaixo da função getRandInt, vamos escrever nossa função createProductData:

api/server.jsconst createProductData = () => {}

Agora vamos definir as propriedades que precisamos. Valores para name, price e amount serão gerados usando getRandInt, que escrevemos na lição anterior:

api/server.jsconst createProductData = () => {
  return {
    name: `Product${getRandInt(0, 100)}`,
    price: getRandInt(100, 2000),
    amount: getRandInt(1, 50),
  }
}

E para gerar a descrição, vamos usar outra coisa útil. É a biblioteca faker, que permite gerar nomes falsos, endereços, emails, nomes de ruas, textos etc. em diferentes idiomas. Vamos digitar no terminal a seguinte linha e instalar esta biblioteca para nossa aplicação:

terminalnpm install @faker-js/faker --save-dev

E então importar em nosso arquivo:

api/server.jsimport { faker } from '@faker-js/faker'

Vamos usar a geração de frases, contendo o conhecido texto de "pescador" 'Lorem ipsum'. Deixe a descrição conter de 3 a 5 dessas frases:

api/server.jsconst createProductData = () => {
  return {
    name: `Product${getRandInt(0, 100)}`,
    desc: faker.lorem.sentences({ min: 3, max: 5 }),
    price: getRandInt(100, 2000),
    amount: getRandInt(1, 50),
  }
}

Agora vamos adicionar ao nosso objeto um campo de reações, seu valor será passado, gerado no local pelo comando create, um objeto (as reações nele serão 0 por enquanto):

api/server.jsconst createProductData = () => {
  return {
    name: `Product${getRandInt(0, 100)}`,
    desc: faker.lorem.sentences({ min: 3, max: 5 }),
    price: getRandInt(100, 2000),
    amount: getRandInt(1, 50),
    reactions: db.reaction.create(),
  }
}

E como última propriedade, vamos adicionar o objeto do vendedor já gerado, que devemos passar como parâmetro para a função createProductData. Aqui está o código completo da função de criação do objeto de produto:

api/server.jsconst createProductData = (seller) => {
  return {
    name: `Product${getRandInt(0, 100)}`,
    desc: faker.lorem.sentences({ min: 3, max: 5 }),
    price: getRandInt(100, 2000),
    amount: getRandInt(1, 50),
    reactions: db.reaction.create(),
    seller,
  }
}
Задание 1

Abra sua aplicação de estudantes. Tendo revisado o material desta lição, escreva uma função para criar um objeto com dados do estudante.