Termékadatok objektum létrehozása a Redux-ban

Megvan a függvényünk az eladó objektum létrehozásához, most térjünk át a termékre. Ennek az objektumnak a létrehozása egy kicsit bonyolultabb lesz, mivel több adatmezőt tartalmaz. Kezdjük.

Nyissuk meg a termékalkalmazásunkat, és benne a server.js fájlt. Az getRandInt függvény alá írjuk a createProductData függvényünket:

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

Most adjuk meg a szükséges tulajdonságokat. Az name, price és amount értékeit az előző leckén megírt getRandInt függvénnyel fogjuk generálni:

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

A leírás generálásához pedig használjunk egy másik hasznos eszközt. Ez a faker könyvtár, amely hamis neveket, címeket, e-maileket, utcaneveket, szövegeket stb. generál különböző nyelveken. Gépeljük be a terminálba a következő parancsot és telepítsük ezt a könyvtárat az alkalmazásunkba:

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

Majd importáljuk a fájlunkba:

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

Használjuk benne a mondatok generálását, amely a híres "Lorem ipsum" szöveget tartalmazza. Legyen a leírás 3 és 5 ilyen mondatból:

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

Most adjuk hozzá az objektumunkhoz a reakciók mezőt, értékének átadunk egy, a create paranccsal generált objektumot (a reakciók egyelőre 0 lesznek benne):

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

Utolsó tulajdonsággént pedig adjuk hozzá a már generált eladó objektumot, amit paraméterként kell átadnunk a createProductData függvénynek. Íme a termék objektum létrehozásának teljes kódja:

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

Nyisd meg a diákalkalmazásodat. Miután megismerted ezen lecke anyagát, írj egy függvényt diák adatobjektum létrehozásához.