Feat/gunakan api untuk berita desa gabungan#1649
Open
pandigresik wants to merge 3 commits into
Open
Conversation
Contributor
|
🔄 AI PR Review sedang antri di server...
|
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Pull Request: feat: Ubah berita desa dari RSS ke API Database Gabungan
Description
Halaman berita desa saat ini mengambil data dari RSS feed setiap website desa secara server-side menggunakan SimplePie. PR ini mengubah pengambilan data menjadi client-side API yang mengambil dari database gabungan, hanya berlaku ketika sinkronisasi database gabungan aktif. Jika tidak aktif, tetap menggunakan RSS seperti sebelumnya.
Changes made:
PageController@beritaDesa()— menambahkan pengecekanisDatabaseGabungan(). Jika aktif, mengarahkan ke viewdesa_apidenganapiBaseURL ke database gabungan API. Jika tidak aktif, tetap menggunakan RSS.themes/opendk/default/resources/views/pages/berita/desa_api.blade.php— view baru untuk mode API, mengambil data dari database gabungan secara client-side menggunakan$.getJSON(), dengan filter desa, pencarian, sort tanggal, dan pagination.PageController.phpdanroutes/web.php.Reason for change:
kode_kecamatan, data hanya mengambil artikel dari kecamatan yang sesuai.Impact of change:
✅ Performance: Pengambilan data lebih cepat karena satu API call menggantikan banyak RSS request
✅ Konsistensi: Mengikuti pola yang sama dengan halaman berita kecamatan (client-side API fetching)
✅ Backward Compatible: Jika database gabungan tidak aktif, tetap menggunakan RSS seperti sebelumnya
Related Issue
Steps to Reproduce
Before fix (RSS mode):
/berita-desaAfter fix (API mode, database gabungan aktif):
/berita-desakode_kecamatanAfter fix (database gabungan tidak aktif):
/berita-desaChecklist
Technical Details
Technical Explanation
Pada
PageController@beritaDesa(), ditambahkan pengecekan$this->isDatabaseGabungan()(yang mengecek settingsinkronisasi_database_gabungan). Jika aktif:Controller membangun
apiBaseURL ke database gabungan API ({api_server}/api/v1/artikel-kecamatan) dengan parameter filter:kode_kecamatan— diambil dariconfig('profil.kecamatan_id')tanpa titikfilter[enabled]= 1page[size]dari configartikel_desa_perhalamansort=-tgl_uploadView
desa_api.blade.phpmenerimaapiBaseURL dan melakukan fetch secara client-side menggunakan$.getJSON().JavaScript meng-handle filter (desa, pencarian, sort) dengan menambahkan query parameter ke API URL.
Flow Chart
Dependencies
https://github.com/OpenSID/API-Database-Gabungan/pull/444
Testing
Manual Testing
/berita-desadengan database gabungan aktif — data loaded dari API/berita-desadengan database gabungan tidak aktif — tetap menggunakan RSSScreenshots / Video
simplescreenrecorder-2026-07-13_10.42.40.mp4
Before (RSS Mode):
Loading lama karena fetch RSS dari banyak website desa
After (API Mode):
Loading cepat karena satu API call ke database gabungan
Breaking Changes
None — backward compatible. Jika database gabungan tidak aktif, tetap menggunakan RSS.
Migration Guide
Not required.
References
Catatan Penting: Gambar artikel dari website desa yang menggunakan Cloudflare kemungkinan tidak tampil karena diblok oleh Cloudflare (header
cross-origin-resource-policy: same-origindancross-origin-embedder-policy: require-corp). Ini adalah limitasi dari sisi server desa, bukan dari kode ini. Gambar fallback akan ditampilkan jika gambar tidak dapat dimuat.