audit/action_create.go

57 lines
1.1 KiB
Go
Raw Permalink Normal View History

2021-08-09 04:33:23 +00:00
package audit
import (
"context"
2021-08-17 04:03:21 +00:00
"github.com/Selly-Modules/logger"
2021-08-09 04:33:23 +00:00
"github.com/Selly-Modules/mongodb"
)
// CreatePayload ...
type CreatePayload struct {
Target string
TargetID string
Action string
Data string
2022-06-29 04:34:17 +00:00
Message string
2021-08-09 04:33:23 +00:00
Author CreatePayloadAuthor
}
// CreatePayloadAuthor ...
type CreatePayloadAuthor struct {
ID string
Name string
Type string
2021-08-09 04:33:23 +00:00
}
// Create ...
func (s Service) Create(payload CreatePayload) {
ctx := context.Background()
// Get document
doc := Audit{
ID: mongodb.NewObjectID(),
Target: payload.Target,
TargetID: payload.TargetID,
Action: payload.Action,
Data: payload.Data,
Author: Author{
ID: payload.Author.ID,
Name: payload.Author.Name,
Type: payload.Author.Type,
2021-08-09 04:33:23 +00:00
},
2021-08-09 04:44:33 +00:00
CreatedAt: now(),
2022-06-29 04:34:17 +00:00
Message: payload.Message,
2021-08-09 04:33:23 +00:00
}
// Insert to db
colName := getColName(payload.Target)
if _, err := s.DB.Collection(colName).InsertOne(ctx, doc); err != nil {
2021-08-17 04:03:21 +00:00
logger.Error("audit - Create", logger.LogData{
2022-09-22 08:30:05 +00:00
Source: "audit.action_create.Create",
Message: err.Error(),
Data: payload,
2021-08-17 04:03:21 +00:00
})
2021-08-09 04:33:23 +00:00
}
}