From 1fe55d516e088e845c814454ce527c9b86a8b6b0 Mon Sep 17 00:00:00 2001 From: Habib Fatkhul Rohman Date: Tue, 9 Dec 2025 11:42:31 +0700 Subject: [PATCH] feat: rename ReadErrorLog to ReadRouteLog and update routes accordingly --- .../controller/monitor_controller.go | 41 ++++++++++--------- modules/monitoring/routes.go | 2 +- 2 files changed, 22 insertions(+), 21 deletions(-) diff --git a/modules/monitoring/controller/monitor_controller.go b/modules/monitoring/controller/monitor_controller.go index b6f5a19..85d079b 100644 --- a/modules/monitoring/controller/monitor_controller.go +++ b/modules/monitoring/controller/monitor_controller.go @@ -11,13 +11,19 @@ import ( type MonitoringController interface { HealthCheck(ctx *gin.Context) - ReadErrorLog(ctx *gin.Context) + ReadRouteLog(ctx *gin.Context) ReadQueryLog(ctx *gin.Context) ReadAppLog(ctx *gin.Context) } type monitoringController struct{} +var validMonths = map[string]bool{ + "january": true, "february": true, "march": true, "april": true, + "may": true, "june": true, "july": true, "august": true, + "september": true, "october": true, "november": true, "december": true, +} + // ReadAppLog implements MonitoringController. func (c *monitoringController) ReadAppLog(ctx *gin.Context) { // Ambil query param 'month', default ke bulan sekarang jika tidak ada @@ -25,9 +31,12 @@ func (c *monitoringController) ReadAppLog(ctx *gin.Context) { if month == "" { month = time.Now().Format("January") // contoh: "December" } else { - // Pastikan format bulan sesuai dengan nama bulan bahasa Inggris - // Misal: "december" -> "December" - month = strings.Title(strings.ToLower(month)) + month = strings.ToLower(month) + if !validMonths[month] { + ctx.JSON(http.StatusBadRequest, gin.H{"error": "Invalid month"}) + return + } + month = strings.ToTitle(month) } logFile := strings.ToLower(month) + "_app.log" // contoh: "december_app.log" @@ -35,10 +44,6 @@ func (c *monitoringController) ReadAppLog(ctx *gin.Context) { // Cari file log di beberapa lokasi locations := []string{ "config/logs/query_log/" + logFile, // lokasi log sesuai permintaan - "./logs/" + logFile, - "/tmp/" + logFile, - "/var/log/" + logFile, - "./" + logFile, } var content string @@ -81,20 +86,19 @@ func (c *monitoringController) ReadQueryLog(ctx *gin.Context) { if month == "" { month = time.Now().Format("January") // contoh: "December" } else { - // Pastikan format bulan sesuai dengan nama bulan bahasa Inggris - // Misal: "december" -> "December" - month = strings.Title(strings.ToLower(month)) + month = strings.ToLower(month) + if !validMonths[month] { + ctx.JSON(http.StatusBadRequest, gin.H{"error": "Invalid month"}) + return + } + month = strings.ToTitle(month) } logFile := strings.ToLower(month) + "_query.log" // contoh: "december_query.log" // Lokasi file log locations := []string{ - "config/logs/query_log/" + logFile, - "./logs/" + logFile, - "/tmp/" + logFile, - "/var/log/" + logFile, - "./" + logFile, + "config/logs/query_log/" + logFile, // lokasi log sesuai permintaan } var content string @@ -141,14 +145,11 @@ func (c *monitoringController) HealthCheck(ctx *gin.Context) { }) } -func (c *monitoringController) ReadErrorLog(ctx *gin.Context) { +func (c *monitoringController) ReadRouteLog(ctx *gin.Context) { logFile := "gin.log" // Cari file error di beberapa lokasi locations := []string{ - "./logs/" + logFile, - "/tmp/" + logFile, - "/var/log/" + logFile, "./" + logFile, } diff --git a/modules/monitoring/routes.go b/modules/monitoring/routes.go index 240900e..73060be 100644 --- a/modules/monitoring/routes.go +++ b/modules/monitoring/routes.go @@ -12,7 +12,7 @@ func RegisterRoutes(server *gin.Engine) { monitoring := server.Group("/monitoring") { monitoring.GET("/health", monitoringController.HealthCheck) - monitoring.GET("/errors", monitoringController.ReadErrorLog) + monitoring.GET("/routes", monitoringController.ReadRouteLog) // get log query_log and app_log monitoring.GET("/logs/query", monitoringController.ReadQueryLog) monitoring.GET("/logs/app", monitoringController.ReadAppLog)