Produkta datu objekta izveide Redux

Funkcija pārdevēja objekta izveidei mums ir, pāriesim pie produkta. Šī objekta izveide būs mazliet sarežģītāka, jo tas satur vairāk datu lauku. Sāksim.

Atvērsim mūsu produktu lietotni, un tajā failu server.js. Zem funkcijas getRandInt uzrakstīsim mūsu funkciju createProductData:

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

Tagad norādīsim vajadzīgās īpašības. Vērtības name, price un amount mēs ģenerēsim, izmantojot getRandInt, ko mēs uzrakstījām iepriekšējā nodarbībā:

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

Un, lai ģenerētu aprakstu, mēs izmantosim vēl vienu noderīgu lietu. Šī ir bibliotēka faker, kas ļauj ģenerēt viltus vārdus, adreses, e-pastus, ielu nosaukumus, tekstus utt. dažādās valodās. Ievadīsim terminālī šādu rindiņu un instalēsim šo bibliotēku mūsu lietotnei:

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

Un tad importēsim mūsu failā:

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

Izmantosim tajā teikumu ģenerēšanu, satur pazīstamu tekstu-"zivi" 'Lorem ipsum'. Lai apraksts satur no 3 līdz 5 šādus teikumus:

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

Tagad pievienosim mūsu objektam lauku ar reakcijām, tā vērtībai mēs padod, ģenerētu uz vietas ar komandu create, objektu (reakcijas pagaidām tajā būs pa 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(),
  }
}

Un kā pēdējo īpašību pievienosim jau ģenerēto pārdevēja objektu, kuru mums obligāti jānodod kā parametru funkcijai createProductData. Šādi izskatās pilns produkta objekta izveides funkcijas kods:

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

Atveriet savu studentu lietotni. Iepazīstoties ar šīs nodarbības materiālu, uzrakstiet funkciju studenta datu objekta izveidei.