Создание объекта с данными продукта в Redux

Функция для создания объекта с продавцом у нас есть, перейдем к продукту. Создание этого объекта будет чуточку сложнее, поскольку он содержит больше полей с данными. Приступим.

Давайте откроем наше приложение с продуктами, а в нем файл server.js. Ниже после функции getRandInt напишем нашу функцию createProductData:

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

Теперь пропишем нужные нам свойства. Значения для name, price и amount мы сгенерируем при помощи getRandInt, которую мы написали на прошлом уроке:

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

А для того, чтобы сгенерировать описание, мы воспользуемся еще одной полезной штукой. Это библиотека faker, которая позволяет генерировать фейковые имена, адреса, мэйлы, названия улиц, тексты и пр. на разных языках. Давайте введем в терминале следующую строку и установим эту библиотечку для нашего приложения:

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

А затем импортируем в наш файл:

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

Давайте воспользуемся в ней генерацией предложений, содержащими общеизвестный текст-"рыбу" 'Lorem ipsum'. Пусть описание содержит от 3 до 5 таких предложений:

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),
  }
}

Теперь добавим в наш объект поле с реакциями, значением ему мы передадим, сгенерированный на месте командой create, объект (реакции пока в нем будут по 0):

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(),
  }
}

И последним свойством добавим уже сгенерированный объект продавца, который мы обязательно должны передать параметром в функцию createProductData. Вот так выглядит полный код функции создания объекта продукта:

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

Откройте ваше приложение со студентами. Ознакомившись с материалом этого урока, напишите функцию для создания объекта с данными студента.