Files
monitoring-app/src/frontend/config/api.ts
amaliadwiy 3e1a923d6a feat: PDF report lengkap dengan summary, top 5, attention villages, trend, peak hours
- PDF report memuat 6 ringkasan kartu: desa aktif/nonaktif/no-activity,
  total aktivitas, pengguna aktif/nonaktif
- Section Top 5 desa paling aktif dengan progress bar dan medal emoji
- Section Villages Needing Attention untuk desa nonaktif atau tanpa aktivitas
- Tabel semua desa dengan kolom trend vs periode sebelumnya
- Section Peak Activity Hours dalam layout dua kolom bersama Top 5
- Menggunakan window.open + HTML string untuk output yang bersih dan terbaca
2026-05-28 15:39:57 +08:00

102 lines
5.8 KiB
TypeScript

const DESA_PLUS_PROXY = '/api/proxy/desa-plus'
export const API_URLS = {
getVillages: (page: number, search: string) =>
`${DESA_PLUS_PROXY}/api/monitoring/get-villages?page=${page}&search=${encodeURIComponent(search)}`,
infoVillages: (id: string) =>
`${DESA_PLUS_PROXY}/api/monitoring/info-villages?id=${id}`,
gridVillages: (id: string) =>
`${DESA_PLUS_PROXY}/api/monitoring/grid-villages?id=${id}`,
graphLogVillages: (id: string, time: string, dateFrom?: string, dateTo?: string) => {
const params = new URLSearchParams({ id, time })
if (dateFrom) params.set('dateFrom', dateFrom)
if (dateTo) params.set('dateTo', dateTo)
return `${DESA_PLUS_PROXY}/api/monitoring/graph-log-villages?${params}`
},
getRecentVillageLogs: (id: string) =>
`${DESA_PLUS_PROXY}/api/monitoring/recent-village-logs?id=${id}`,
getUsers: (page: number, search: string, isActive?: string, idUserRole?: string, idVillage?: string, orderBy?: string, orderDir?: string) => {
const params = new URLSearchParams({ page: String(page), search })
if (isActive !== undefined) params.set('isActive', isActive)
if (idUserRole) params.set('idUserRole', idUserRole)
if (idVillage) params.set('idVillage', idVillage)
if (orderBy) params.set('orderBy', orderBy)
if (orderDir) params.set('orderDir', orderDir)
return `${DESA_PLUS_PROXY}/api/monitoring/user?${params}`
},
getLogsAllVillages: (page: number, search: string, action?: string, idVillage?: string, dateFrom?: string, dateTo?: string) => {
const params = new URLSearchParams({ page: String(page), search })
if (action) params.set('action', action)
if (idVillage) params.set('idVillage', idVillage)
if (dateFrom) params.set('dateFrom', dateFrom)
if (dateTo) params.set('dateTo', dateTo)
return `${DESA_PLUS_PROXY}/api/monitoring/log-all-villages?${params}`
},
getStaleVillages: (days: 7 | 14 | 30 = 7) => `${DESA_PLUS_PROXY}/api/monitoring/stale-villages?days=${days}`,
getPeakHours: (idVillage?: string) => {
const params = new URLSearchParams()
if (idVillage) params.set('idVillage', idVillage)
return `${DESA_PLUS_PROXY}/api/monitoring/peak-hours?${params}`
},
getInactiveUsers: (days: 7 | 14 | 30 = 7, idVillage?: string, page = 1) => {
const params = new URLSearchParams({ days: String(days), page: String(page) })
if (idVillage) params.set('idVillage', idVillage)
return `${DESA_PLUS_PROXY}/api/monitoring/inactive-users?${params}`
},
getGridOverview: () => `${DESA_PLUS_PROXY}/api/monitoring/grid-overview`,
getDailyActivity: (range: 7 | 30 | 90 = 7) => `${DESA_PLUS_PROXY}/api/monitoring/daily-activity?range=${range}`,
getComparisonActivity: (range: 7 | 30 | 90 = 7) => `${DESA_PLUS_PROXY}/api/monitoring/comparison-activity?range=${range}`,
postVersionUpdate: () => `${DESA_PLUS_PROXY}/api/monitoring/version-update`,
createVillages: () => `${DESA_PLUS_PROXY}/api/monitoring/create-villages`,
createUser: () => `${DESA_PLUS_PROXY}/api/monitoring/create-user`,
listRole: () => `${DESA_PLUS_PROXY}/api/monitoring/list-userrole-villages`,
listGroup: (id: string) => `${DESA_PLUS_PROXY}/api/monitoring/list-group-villages?id=${id}`,
listPosition: (id: string) => `${DESA_PLUS_PROXY}/api/monitoring/list-position-villages?id=${id}`,
editUser: () => `${DESA_PLUS_PROXY}/api/monitoring/edit-user`,
updateStatusVillages: () => `${DESA_PLUS_PROXY}/api/monitoring/update-status-villages`,
editVillages: () => `${DESA_PLUS_PROXY}/api/monitoring/edit-villages`,
getGlobalLogs: (page: number, search: string, type: string, userId: string, dateFrom?: string, dateTo?: string) => {
const params = new URLSearchParams({ page: String(page), search, type, userId })
if (dateFrom) params.set('dateFrom', dateFrom)
if (dateTo) params.set('dateTo', dateTo)
return `/api/logs?${params}`
},
getLogOperators: () => `/api/logs/operators`,
getOperators: (page: number, search: string) =>
`/api/operators?page=${page}&search=${encodeURIComponent(search)}`,
getOperatorStats: () => `/api/operators/stats`,
createOperator: () => `/api/operators`,
editOperator: (id: string) => `/api/operators/${id}`,
deleteOperator: (id: string) => `/api/operators/${id}`,
getBugs: (page: number, search: string, app: string, status: string, source?: string, dateFrom?: string, dateTo?: string) => {
const params = new URLSearchParams({ page: String(page), search: encodeURIComponent(search), app, status })
if (source && source !== 'all') params.set('source', source)
if (dateFrom) params.set('dateFrom', dateFrom)
if (dateTo) params.set('dateTo', dateTo)
return `/api/bugs?${params}`
},
createBug: () => `/api/bugs`,
getBugStats: (range: 7 | 30 | 90 = 30) => `/api/bugs/stats?range=${range}`,
uploadImage: () => `/api/upload/image`,
updateBugStatus: (id: string) => `/api/bugs/${id}/status`,
updateBugFeedback: (id: string) => `/api/bugs/${id}/feedback`,
createLog: () => `/api/logs`,
exportLogs: (search: string, action?: string, idVillage?: string, dateFrom?: string, dateTo?: string) => {
const params = new URLSearchParams({ search })
if (action) params.set('action', action)
if (idVillage) params.set('idVillage', idVillage)
if (dateFrom) params.set('dateFrom', dateFrom)
if (dateTo) params.set('dateTo', dateTo)
return `${DESA_PLUS_PROXY}/api/monitoring/export-logs?${params}`
},
getVillageReport: (range: 7 | 30 | 90 = 7) =>
`${DESA_PLUS_PROXY}/api/monitoring/village-report?range=${range}`,
exportUsers: (search: string, isActive?: string, idUserRole?: string, idVillage?: string) => {
const params = new URLSearchParams({ search })
if (isActive) params.set('isActive', isActive)
if (idUserRole) params.set('idUserRole', idUserRole)
if (idVillage) params.set('idVillage', idVillage)
return `${DESA_PLUS_PROXY}/api/monitoring/export-users?${params}`
},
}