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
|
|
|
|
}
|
|
|
|
|
|
|
|
// 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,
|
|
|
|
},
|
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{
|
|
|
|
"payload": payload,
|
|
|
|
"error": err.Error(),
|
|
|
|
})
|
2021-08-09 04:33:23 +00:00
|
|
|
}
|
|
|
|
}
|