220 lines
6.7 KiB
Go
220 lines
6.7 KiB
Go
package logging
|
|
|
|
import (
|
|
"context"
|
|
"time"
|
|
|
|
cml04eventer "git.espin.casa/albert/cml04-eventer"
|
|
"git.espin.casa/albert/cml04-mediciones-service/internal/service"
|
|
"git.espin.casa/albert/cml04-mediciones-service/internal/types"
|
|
"git.espin.casa/albert/logger"
|
|
)
|
|
|
|
type LoggingService struct {
|
|
log logger.LoggerAdapter
|
|
next service.IService
|
|
}
|
|
|
|
// GetExcel implements service.IService.
|
|
func (svc *LoggingService) GetExcel(ctx context.Context, req types.GetExcelReq) (res types.GetExcelRes, err error) {
|
|
defer func(start time.Time) {
|
|
logFields := logger.LogFields{
|
|
"took": time.Since(start),
|
|
}
|
|
if err != nil {
|
|
svc.log.Error("create excel failed", err, logFields)
|
|
} else {
|
|
svc.log.Info("create excel success", logFields)
|
|
}
|
|
}(time.Now())
|
|
return svc.next.GetExcel(ctx, req)
|
|
}
|
|
|
|
// ValidarUsuario implements service.IService.
|
|
func (svc *LoggingService) ValidarUsuario(ctx context.Context, req types.ValidarUsuarioReq) (res types.ValidarUsuarioRes, err error) {
|
|
defer func(start time.Time) {
|
|
logFields := logger.LogFields{
|
|
"took": time.Since(start),
|
|
}
|
|
if err != nil {
|
|
svc.log.Error("validate user failed", err, logFields)
|
|
} else {
|
|
svc.log.Info("validate user success", logFields)
|
|
}
|
|
}(time.Now())
|
|
return svc.next.ValidarUsuario(ctx, req)
|
|
}
|
|
|
|
// CreateUsuario implements service.IService.
|
|
func (svc *LoggingService) CreateUsuario(ctx context.Context, req types.CreateUsuarioReq) (res types.CreateUsuarioRes, err error) {
|
|
defer func(start time.Time) {
|
|
logFields := logger.LogFields{
|
|
"took": time.Since(start),
|
|
}
|
|
if err != nil {
|
|
svc.log.Error("create usuario failed", err, logFields)
|
|
} else {
|
|
svc.log.Info("create usuario success", logFields)
|
|
}
|
|
}(time.Now())
|
|
return svc.next.CreateUsuario(ctx, req)
|
|
}
|
|
|
|
// GetUsuario implements service.IService.
|
|
func (svc *LoggingService) GetUsuario(ctx context.Context, req types.GetUsuarioReq) (res types.GetUsuarioRes, err error) {
|
|
defer func(start time.Time) {
|
|
logFields := logger.LogFields{
|
|
"took": time.Since(start),
|
|
}
|
|
if err != nil {
|
|
svc.log.Error("get medicion failed", err, logFields)
|
|
} else {
|
|
svc.log.Info("get medicion success", logFields)
|
|
}
|
|
}(time.Now())
|
|
return svc.next.GetUsuario(ctx, req)
|
|
}
|
|
|
|
// GetMedicion implements service.IService.
|
|
func (svc *LoggingService) GetMedicion(ctx context.Context, req types.GetMedicionReq) (res types.GetMedicionRes, err error) {
|
|
defer func(start time.Time) {
|
|
logFields := logger.LogFields{
|
|
"took": time.Since(start),
|
|
}
|
|
if err != nil {
|
|
svc.log.Error("get medicion failed", err, logFields)
|
|
} else {
|
|
svc.log.Info("get medicion success", logFields)
|
|
}
|
|
}(time.Now())
|
|
return svc.next.GetMedicion(ctx, req)
|
|
}
|
|
|
|
// GetMediciones implements service.IService.
|
|
func (svc *LoggingService) GetMediciones(ctx context.Context, req types.GetMedicionesReq) (res types.GetMedicionesRes, err error) {
|
|
defer func(start time.Time) {
|
|
logFields := logger.LogFields{
|
|
"took": time.Since(start),
|
|
}
|
|
if err != nil {
|
|
svc.log.Error("get mediciones failed", err, logFields)
|
|
} else {
|
|
svc.log.Info("get mediciones success", logFields)
|
|
}
|
|
}(time.Now())
|
|
return svc.next.GetMediciones(ctx, req)
|
|
}
|
|
|
|
// PostMediciones implements service.IService.
|
|
func (svc *LoggingService) PostMediciones(ctx context.Context, req types.PostMedicionesReq) (res types.PostMedicionesRes, err error) {
|
|
defer func(start time.Time) {
|
|
logFields := logger.LogFields{
|
|
"took": time.Since(start),
|
|
}
|
|
if err != nil {
|
|
svc.log.Error("post mediciones failed", err, logFields)
|
|
} else {
|
|
svc.log.Info("post mediciones success", logFields)
|
|
}
|
|
}(time.Now())
|
|
return svc.next.PostMediciones(ctx, req)
|
|
}
|
|
|
|
// GetProductionOrders implements service.IService.
|
|
func (svc *LoggingService) GetProductionOrders(ctx context.Context, req types.GetProductionOrdersReq) (res types.GetProductionOrdersRes, err error) {
|
|
defer func(start time.Time) {
|
|
logFields := logger.LogFields{
|
|
"took": time.Since(start),
|
|
}
|
|
if err != nil {
|
|
svc.log.Error("get production order data failed", err, logFields)
|
|
} else {
|
|
svc.log.Info("get production order data success", logFields)
|
|
}
|
|
}(time.Now())
|
|
return svc.next.GetProductionOrders(ctx, req)
|
|
}
|
|
|
|
// GetProductionOrder implements service.IService.
|
|
func (svc *LoggingService) GetProductionOrder(ctx context.Context, req types.GetProductionOrderReq) (res types.GetProductionOrderRes, err error) {
|
|
defer func(start time.Time) {
|
|
logFields := logger.LogFields{
|
|
"took": time.Since(start),
|
|
}
|
|
if err != nil {
|
|
svc.log.Error("get production orders data failed", err, logFields)
|
|
} else {
|
|
svc.log.Info("get production orders data success", logFields)
|
|
}
|
|
}(time.Now())
|
|
return svc.next.GetProductionOrder(ctx, req)
|
|
}
|
|
|
|
// CreateProductionOrder implements service.IService.
|
|
func (svc *LoggingService) CreateProductionOrder(ctx context.Context, po *types.OrdenFabricacion) (err error) {
|
|
defer func(start time.Time) {
|
|
logFields := logger.LogFields{
|
|
"took": time.Since(start),
|
|
}
|
|
if err != nil {
|
|
svc.log.Error("create production order failed", err, logFields)
|
|
} else {
|
|
svc.log.Info("create production order success", logFields)
|
|
}
|
|
}(time.Now())
|
|
return svc.next.CreateProductionOrder(ctx, po)
|
|
}
|
|
|
|
// ProcessEvent implements service.IService.
|
|
func (svc *LoggingService) ProcessEvent(ctx context.Context, event *cml04eventer.Event) (err error) {
|
|
defer func(start time.Time) {
|
|
logFields := logger.LogFields{
|
|
"took": time.Since(start),
|
|
}
|
|
if err != nil {
|
|
svc.log.Error("process event failed", err, logFields)
|
|
} else {
|
|
svc.log.Info("process event success", logFields)
|
|
}
|
|
}(time.Now())
|
|
return svc.next.ProcessEvent(ctx, event)
|
|
}
|
|
|
|
// CreateTolerance implements service.IService.
|
|
func (svc *LoggingService) CreateTolerance(ctx context.Context, req types.CreateToleranceReq) (res types.CreateToleranceRes, err error) {
|
|
defer func(start time.Time) {
|
|
logFields := logger.LogFields{
|
|
"took": time.Since(start),
|
|
}
|
|
if err != nil {
|
|
svc.log.Error("create product tolerance failed", err, logFields)
|
|
} else {
|
|
svc.log.Info("create product tolerance success", logFields)
|
|
}
|
|
}(time.Now())
|
|
return svc.next.CreateTolerance(ctx, req)
|
|
}
|
|
|
|
// GetTolerance implements service.IService.
|
|
func (svc *LoggingService) GetTolerance(ctx context.Context, req types.GetToleranciaReq) (res types.GetToleranciaRes, err error) {
|
|
defer func(start time.Time) {
|
|
logFields := logger.LogFields{
|
|
"took": time.Since(start),
|
|
"product_request": req.Medida,
|
|
}
|
|
if err != nil {
|
|
svc.log.Error("get product tolerance data failed", err, logFields)
|
|
} else {
|
|
svc.log.Info("get product tolerance data success", logFields)
|
|
}
|
|
}(time.Now())
|
|
return svc.next.GetTolerance(ctx, req)
|
|
}
|
|
|
|
func NewLoggingService(log logger.LoggerAdapter, svc service.IService) service.IService {
|
|
return &LoggingService{
|
|
log: log,
|
|
next: svc,
|
|
}
|
|
}
|