diff --git a/internal/handler/message_log.go b/internal/handler/message_log.go new file mode 100644 index 0000000..ccb1cdd --- /dev/null +++ b/internal/handler/message_log.go @@ -0,0 +1,37 @@ +package handler + +import ( + "net/http" + + "aiaa-notification-service/internal/store" + + "github.com/gin-gonic/gin" +) + +type MessageLogHandler struct { + store *store.Store +} + +func NewMessageLogHandler(s *store.Store) *MessageLogHandler { + return &MessageLogHandler{store: s} +} + +func (h *MessageLogHandler) List(c *gin.Context) { + var filter store.MessageLogFilter + if err := c.ShouldBindQuery(&filter); err != nil { + c.JSON(http.StatusBadRequest, gin.H{"error": err.Error()}) + return + } + + logs, total, err := h.store.ListMessageLogs(c.Request.Context(), filter) + if err != nil { + c.JSON(http.StatusInternalServerError, gin.H{"error": err.Error()}) + return + } + + c.JSON(http.StatusOK, gin.H{ + "data": logs, + "total": total, + "page": filter.Page, + }) +}