Latihan 1: Arsitektur & Best Practices — Laravel

Latihan 1 dari materi Arsitektur & Best Practices di Laravel — praktek dengan editor kode interaktif, test case otomatis, dan hint terpandu. Langsung jalan di browser.

Latihan ini memakai pola yang sama dengan BorrowBook, tapi untuk toko: logika pesanan tinggal di service class, dan route-nya cuma memanggilnya. Kode awal sudah punya class OrderService dengan method place(array $items): array dan route Route::post('/orders', ...) yang menerima OrderService $service. Biarkan nama-nama itu.

  1. Di place(), hitung total harga: untuk tiap item, kalikan price dengan quantity, lalu jumlahkan.
  2. Masih di place(), kembalikan array ["total" => $total, "item_count" => count($items), "status" => "placed"].
  3. Di route POST /orders, panggil $service->place($request->input("items", [])), lalu jawab dengan response()->json($result, 201). Logikanya tetap di service, bukan di route.

Simulator menjalankan route-mu dengan request kosong, jadi total dan item_count di transkrip bernilai 0. Itu wajar. Transkripnya harus memuat dua hal ini persis:

  1. POST /orders → 201
  2. "status":"placed"

Yang dinilai: angka 201 ada di kodemu, ada class untuk service-nya, route-nya Route::post(, dan dua baris transkrip di atas.

Hint