39 lines
917 B
Go
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,
|
|
}
|
|
}
|