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

Բացեք ձեր ուսանողների հավելվածը։ Ծանոթանալով այս դասի նյութին, գրեք ֆունկցիա ուսանողի տվյալների օբյեկտ ստեղծելու համար։