Ustvarjanje objekta s podatki o izdelku v Redux

Funkcijo za ustvarjanje objekta s prodajalcem imamo, pojdimo k izdelku. Ustvarjanje tega objekta bo nekoliko bolj zapleteno, saj vsebuje več polj s podatki. Pa začnimo.

Odprimo našo aplikacijo z izdelki, in v njej datoteko server.js. Spodaj za funkcijo getRandInt napišimo našo funkcijo createProductData:

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

Zdaj določimo potrebne lastnosti. Vrednosti za name, price in amount bomo generirali s pomočjo getRandInt, ki smo jo napisali v prejšnji lekciji:

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

Za generiranje opisa pa bomo uporabili še eno uporabno stvar. To je knjižnica faker, ki omogoča generiranje lažnih imen, naslovov, e-pošte, imen ulic, besedil itd. v različnih jezikih. Vpišimo v terminal naslednjo vrstico in namestimo to knjižnico za našo aplikacijo:

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

in nato uvozimo v našo datoteko:

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

Uporabimo generiranje stavek, ki vsebujejo dobro znano besedilo-"ribe" 'Lorem ipsum'. Naj opis vsebuje od 3 do 5 takih stavkov:

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

Zdaj dodajmo v naš objekt polje z reakcijami, vrednost mu bomo določili z generiranim na mestu z ukazom create, objektom (reakcije za zdaj bodo v njem 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(),
  }
}

In kot zadnjo lastnost dodajmo že generiran objekt prodajalca, ki ga moramo zagotovo posredovati kot parameter v funkcijo createProductData. Takole izgleda polna koda funkcije za ustvarjanje objekta izdelka:

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

Odprite vašo aplikacijo s študenti. Po seznanitvi z gradivom te lekcije, napišite funkcijo za ustvarjanje objekta s podatki študenta.