Latihan 1 dari materi Validasi Input di API — praktek dengan editor kode interaktif, test case otomatis, dan hint terpandu. Langsung jalan di browser.
Lengkapi POST /users di starter. name, email, dan errors sudah disiapkan, biarkan tetap.
name wajib, berupa string, dan minimal 2 karakter. Kalau gagal, isi errors.name dengan pesan.
email wajib dan harus mengandung @. Kalau gagal, isi errors.email dengan pesan.
Kalau errors punya isi, jawab res.status(422).json({ errors }). 422 artinya body-nya terbaca tapi isinya melanggar aturan; 400 untuk body yang gak bisa dibaca sama sekali.
Kalau semua lolos, jawab res.status(201).json({ id: 1, name, email }).
Tester-nya mengirim:
{"name":"A","email":"[email protected]"}: harus 422, namanya cuma 1 karakter.
{"name":"Budi","email":"tanpa-tanda"}: harus 422, email-nya gak punya @.
body bawaannya, dengan nameTest dan email[email protected]: harus 201.
Kodemu juga harus memuat status(422), errors.name = ... dan errors.email = ....
Hint
Dua field dengan syarat berbeda: name diukur panjangnya, email dicari tanda @-nya. Kesalahannya dikumpulkan dulu di object errors, lalu dijawab sekali.
name gagal kalau typeof name !== "string" atau name.length < 2 (panjang tepat 2 masih sah). email gagal kalau kosong atau !email.includes("@"). Ada error kalau Object.keys(errors).length > 0.