cml04-falcon-system/injector/logging/logging.go
2024-10-04 11:51:55 +02:00

39 lines
917 B
Go

package logging
import (
"context"
"time"
"git.espin.casa/albert/cml04-falcon-system/injector/service"
"git.espin.casa/albert/cml04-falcon-system/injector/types"
"git.espin.casa/albert/logger"
)
type LoggingService struct {
log logger.LoggerAdapter
next service.IService
}
// Bundle implements service.IService.
func (l *LoggingService) Bundle(ctx context.Context, req *types.PostBundleReq) (res *types.PostBundleRes, err error) {
defer func(start time.Time) {
logFields := logger.LogFields{
"took": time.Since(start),
"bundle_id": req.BundleData.Nromatricula,
}
if err != nil {
l.log.Error("post bundle data failed", err, logFields)
} else {
l.log.Info("post bundle data success", logFields)
}
}(time.Now())
return l.next.Bundle(ctx, req)
}
func New(log logger.LoggerAdapter, svc service.IService) service.IService {
return &LoggingService{
log: log,
next: svc,
}
}