Latihan 1: Audit Logs & Auth Trail — Auth

Latihan 1 dari materi Audit Logs & Auth Trail di Auth — praktek dengan editor kode interaktif, test case otomatis, dan hint terpandu. Langsung jalan di browser.

Lengkapi dua function di kode awal.

  1. createAuditLog(userId, action, resource, success, metadata): kembalikan object dengan field userId, action, resource, success, metadata (semua apa adanya dari argumen) dan timestamp berisi new Date().toISOString().
  2. queryAuditLogs(logs, filters): filters bisa berisi userId, action dan success (boolean). Kembalikan array log yang cocok dengan semua filter yang dikirim. Filter yang gak dikirim (undefined) gak mempersempit hasil. Periksa dengan !== undefined, karena success: false juga sebuah filter.

Semua console.log dan array logs (empat log) di kode awal sudah ada, biarkan. Output-nya harus persis tujuh baris ini, berurutan:

  1. user1
  2. login
  3. true
  4. string (jenis timestamp)
  5. 2 (log yang gagal)
  6. 3 (log milik user1)
  7. 1 (log user1 yang gagal)

Dicek juga: createAuditLog("u9", "logout", "sesi", false, {}) menyimpan resource dan success apa adanya, dan queryAuditLogs dengan { userId: "u9", success: false } atas log itu ditambah satu log u9 yang berhasil menghasilkan 1 log. Gabungannya "sesi|false|1".

Hint