46 lines
886 B
Go
46 lines
886 B
Go
package log
|
|
|
|
import (
|
|
"gorm.io/gorm"
|
|
)
|
|
|
|
type Repository struct {
|
|
gormClient *gorm.DB
|
|
}
|
|
|
|
func NewLogRepository(gormClient *gorm.DB) *Repository {
|
|
return &Repository{
|
|
gormClient: gormClient,
|
|
}
|
|
}
|
|
|
|
func (r *Repository) CreateLog(logEntity *LogEntity) (*LogEntity, error) {
|
|
result := r.gormClient.Create(logEntity)
|
|
if result.Error != nil {
|
|
return nil, result.Error
|
|
}
|
|
|
|
return logEntity, nil
|
|
}
|
|
|
|
func (r *Repository) FetchLogsByRelationNameAndRecordId(relationName string, recordId uint) ([]LogEntity, error) {
|
|
var query = r.gormClient.Model([]LogEntity{})
|
|
var logEntity []LogEntity
|
|
|
|
if len(relationName) != 0 {
|
|
query = query.Where("relation_name = ?", relationName)
|
|
}
|
|
|
|
query = query.Where("record_id = ?", recordId)
|
|
|
|
query = query.Order("created_at ASC")
|
|
|
|
result := query.Find(&logEntity)
|
|
|
|
if result.Error != nil {
|
|
return nil, result.Error
|
|
}
|
|
|
|
return logEntity, nil
|
|
}
|