Redux'ta Ürün Veri Nesnesi Oluşturma

Satıcı nesnesi oluşturan fonksiyonumuz var, şimdi ürüne geçelim. Bu nesneyi oluşturmak biraz daha karmaşık olacak, çünkü daha fazla veri alanı içeriyor. Haydi başlayalım.

Ürün uygulamamızı açalım ve içindeki server.js dosyasını açalım. getRandInt fonksiyonunun altına createProductData fonksiyonumuzu yazalım:

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

Şimdi ihtiyacımız olan özellikleri yazalım. name, price ve amount için değerleri, bir önceki derste yazdığımız getRandInt fonksiyonunu kullanarak oluşturacağız:

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

Açıklama oluşturmak için ise başka bir kullanışlı şeyden faydalanacağız. Bu, faker kütüphanesidir ve farklı dillerde sahte isimler, adresler, e-postalar, sokak isimleri, metinler vb. oluşturmayı sağlar. Haydi terminale aşağıdaki satırı girerek bu kütüphaneyi uygulamamıza kuralım:

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

Ve ardından dosyamıza import edelim:

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

Şimdi içinde ünlü 'Lorem ipsum' metnini içeren cümleler oluşturmayı kullanalım. Açıklamanın 3 ile 5 arasında bu tür cümle içermesini sağlayalım:

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

Şimdi nesnemize tepkiler alanını ekleyelim, değer olarak yerinde create komutuyla oluşturulmuş bir nesneyi ileteceğiz (içindeki tepkiler şimdilik 0 olacak):

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

Ve son özellik olarak, önceden oluşturulmuş satıcı nesnesini ekleyeceğiz, ki bu nesneyi mutlaka createProductData fonksiyonuna parametre olarak iletmeliyiz. İşte ürün nesnesi oluşturma fonksiyonunun tam kodu şöyle görünüyor:

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

Öğrenci uygulamanızı açın. Bu dersin materyalini inceledikten sonra, öğrenci veri nesnesi oluşturmak için bir fonksiyon yazın.