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": res.BundleData.Nromatricula, } if err != nil { l.log.Error("get product tolerance data failed", err, logFields) } else { l.log.Info("get product tolerance 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, } }