summaryrefslogtreecommitdiff
path: root/shrine/services/audit.go
diff options
context:
space:
mode:
Diffstat (limited to 'shrine/services/audit.go')
-rw-r--r--shrine/services/audit.go31
1 files changed, 31 insertions, 0 deletions
diff --git a/shrine/services/audit.go b/shrine/services/audit.go
new file mode 100644
index 0000000..3140cf1
--- /dev/null
+++ b/shrine/services/audit.go
@@ -0,0 +1,31 @@
+package services
+
+import (
+ "shrine/enums"
+ "shrine/messages"
+ "shrine/repositories"
+ "shrine/types/audit"
+ "shrine/types/hypertext"
+ "shrine/utils/meta"
+)
+
+func ListAuditLogs(pagination meta.Pagination, action string, targetType string) ([]audit.AuditLogResponse, int64) {
+ logs, total := repositories.ListAuditLogs(pagination, action, targetType)
+
+ items := make([]audit.AuditLogResponse, len(logs))
+ for index, record := range logs {
+ items[index] = record.ToResponse()
+ }
+
+ return items, total
+}
+
+func GetAuditLog(ref string) (*audit.DetailResponse, *hypertext.ServiceError) {
+ record, err := repositories.FindAuditLogByRef(ref)
+ if err != nil {
+ return nil, fail(enums.NotFound, messages.AuditLogNotFound)
+ }
+
+ response := record.ToDetailResponse()
+ return &response, nil
+} \ No newline at end of file