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

Студенттеріңізбен қолдануыңызды ашыңыз. Осы сабақ материалымен танысып, студент деректерінің нысанын құратын функция жазыңыз.