Skip to content

feat(rt): crud RT - #65

Merged
hanchan-dev merged 1 commit into
devfrom
feature/rts
Sep 3, 2026
Merged

feat(rt): crud RT#65
hanchan-dev merged 1 commit into
devfrom
feature/rts

Conversation

@aaz132

@aaz132 aaz132 commented Sep 3, 2026

Copy link
Copy Markdown
Contributor

Summary

CRUD untuk resource rts (RT): list (dengan filter rw_id), tambah, edit, dan hapus.

Jira Ticket

Ticket: EV5-7-S1

Type of Change

  • Bug fix
  • New feature
  • Refactor
  • Documentation update
  • Configuration change

Changes Made

  • Tambah method indexRts, storeRt, updateRt, destroyRt di RegionController.php
  • Guard otorisasi: hanya role petugas_desa yang boleh create/update/delete RT (403 untuk role lain)
  • Guard integritas data: RT yang masih punya warga aktif tidak bisa dinonaktifkan atau dihapus (409)
  • Validasi number RT harus unik per rw_id, dengan pesan error custom Bahasa Indonesia
  • full_label di-generate otomatis format "RT 001 / RW 001", konsisten dengan konvensi WilayahSeeder
  • Route baru di routes/api.php dalam group auth:sanctum: GET/POST /rts, PATCH/DELETE /rts/{rt}
  • Tambah 5 feature test baru di RegionControllerTest.php (total sekarang 14 test: 5 hamlets + 4 rws + 5 rts): create/list/update/delete sukses, non-petugas_desa ditolak, duplicate number ditolak, guard nonaktifkan & hapus dengan warga aktif

How to Test

  1. Generate token Sanctum buat user role=petugas_desa yang punya village_id terisi lewat php artisan tinker
  2. Test lewat Postman pakai Authorization: Bearer <token>:
    • GET /api/rts?rw_id=1 → daftar RT di RW tersebut
    • POST /api/rts body {"rw_id": 1, "number": "002"} → 201
    • POST /api/rts dengan rw_id + number yang sama lagi → 422 (duplikat)
    • PATCH /api/rts/{id} body {"is_active": false} → 200 kalau tidak ada warga aktif, 409 kalau masih ada
    • DELETE /api/rts/{id} → 200 kalau tidak ada warga terdaftar, 409 kalau masih ada

Screenshots (if applicable)

Checklist

  • Kode sudah di-test secara lokal
  • Tidak ada console.log / dd() / dump() yang tertinggal
  • Tidak ada conflict dengan branch target
  • Nama branch mengikuti konvensi (feature/nama-fitur, fix/nama-bug)
  • PR ditujukan ke branch dev (bukan langsung ke main)

@hanchan-dev
hanchan-dev merged commit a7939c8 into dev Sep 3, 2026
3 checks passed
@hanchan-dev
hanchan-dev deleted the feature/rts branch September 3, 2026 12:14
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants