cml04-l2-rsm-out/internal/logging/logging.go

87 lines
2.4 KiB
Go
Raw Permalink Normal View History

2024-08-20 10:07:14 +02:00
package logging
import (
"context"
"time"
"git.espin.casa/albert/cml04-gdm-int/pkg/api"
"git.espin.casa/albert/cml04-l2-rsm-out/internal/service"
"git.espin.casa/albert/logger"
)
type LoggingService struct {
log logger.LoggerAdapter
next service.IService
}
// SendEdRollData implements service.IService.
func (svc *LoggingService) SendEdRollData(ctx context.Context, rollData *api.EdRollData) (err error) {
defer func(start time.Time) {
logFields := logger.LogFields{
"took": time.Since(start),
"ed_roll_id": rollData.GetEdRollId(),
}
if err != nil {
svc.log.Error("Send level 2 ED roll data failed", err, logFields)
} else {
svc.log.Info("Send level 2 ED roll success", logFields)
}
}(time.Now())
return svc.next.SendEdRollData(ctx, rollData)
}
// SendUfRollData implements service.IService.
func (svc *LoggingService) SendUfRollData(ctx context.Context, rollData *api.UfRollData) (err error) {
defer func(start time.Time) {
logFields := logger.LogFields{
"took": time.Since(start),
"uf_roll_id": rollData.GetUfRollId(),
}
if err != nil {
svc.log.Error("Send level 2 UF roll data failed", err, logFields)
} else {
svc.log.Info("Send level 2 UF roll success", logFields)
}
}(time.Now())
return svc.next.SendUfRollData(ctx, rollData)
}
// SendUrRollData implements service.IService.
func (svc *LoggingService) SendUrRollData(ctx context.Context, rollData *api.UrRollData) (err error) {
defer func(start time.Time) {
logFields := logger.LogFields{
"took": time.Since(start),
"ur_roll_id": rollData.GetUrRollId(),
}
if err != nil {
svc.log.Error("Send level 2 UR roll data failed", err, logFields)
} else {
svc.log.Info("Send level 2 UR roll success", logFields)
}
}(time.Now())
return svc.next.SendUrRollData(ctx, rollData)
}
// SendBdRollData implements service.IService.
func (svc *LoggingService) SendBdRollData(ctx context.Context, rollData *api.BdRollData) (err error) {
defer func(start time.Time) {
logFields := logger.LogFields{
"took": time.Since(start),
"bd_roll_id": rollData.GetBdRollId(),
}
if err != nil {
svc.log.Error("Send level 2 BD roll data failed", err, logFields)
} else {
svc.log.Info("Send level 2 BD roll success", logFields)
}
}(time.Now())
return svc.next.SendBdRollData(ctx, rollData)
}
func NewLogginService(log logger.LoggerAdapter, svc service.IService) service.IService {
return &LoggingService{
log: log,
next: svc,
}
}