Създаване на обект с данни за продукт в 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

Отворете вашето приложение със студенти. След като се запознаете с материала от този урок, напишете функция за създаване на обект с данни за студент.