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:
const 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:
const 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:
npm install @faker-js/faker --save-dev
E então importar em nosso arquivo:
import { 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:
const 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):
const 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:
const 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,
}
}
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.