package audit import ( "net/http" "management/internal/erpserver/model/dto" v1 "management/internal/erpserver/service/v1" "management/internal/erpserver/templ/system/auditlog" "management/internal/pkg/convertor" "management/internal/pkg/render" ) type app struct { render render.Renderer auditLogService v1.AuditLogService } func newApp(render render.Renderer, auditLogService v1.AuditLogService) *app { return &app{ render: render, auditLogService: auditLogService, } } func (a *app) list(w http.ResponseWriter, r *http.Request) { switch r.Method { case http.MethodGet: ctx := r.Context() a.render.Render(ctx, w, auditlog.List(ctx)) case http.MethodPost: var q dto.SearchDto q.SearchTimeBegin, q.SearchTimeEnd = convertor.DefaultStartTimeAndEndTime(r.PostFormValue("timeBegin"), r.PostFormValue("timeEnd")) q.SearchName = r.PostFormValue("name") q.SearchEmail = r.PostFormValue("email") q.Page = convertor.ConvertInt(r.PostFormValue("page"), 1) q.Rows = convertor.ConvertInt(r.PostFormValue("rows"), 10) res, count, err := a.auditLogService.List(r.Context(), q) if err != nil { a.render.JSONErr(w, err.Error()) return } a.render.JSON(w, render.NewResponseList(count, res)) default: http.Error(w, "Method Not Allowed", http.StatusMethodNotAllowed) } }