From 961387ab56736060e44653699010f6eb2e26c636 Mon Sep 17 00:00:00 2001 From: "aditya.siregar" Date: Wed, 14 Aug 2024 00:10:53 +0700 Subject: [PATCH] Invalid QR Code --- internal/common/errors/errors.go | 7 +++++++ internal/handlers/response/handler.go | 5 +++++ internal/services/order/order.go | 4 ++++ 3 files changed, 16 insertions(+) diff --git a/internal/common/errors/errors.go b/internal/common/errors/errors.go index 6e58919..134d516 100644 --- a/internal/common/errors/errors.go +++ b/internal/common/errors/errors.go @@ -66,6 +66,13 @@ func NewError(errType ErrType, message string) *ServiceException { } } +func NewErrorMessage(errType *ServiceException, message string) *ServiceException { + return &ServiceException{ + errorType: errType.ErrorType(), + message: message, + } +} + func (s *ServiceException) ErrorType() ErrType { return s.errorType } diff --git a/internal/handlers/response/handler.go b/internal/handlers/response/handler.go index 6572cb2..010262b 100644 --- a/internal/handlers/response/handler.go +++ b/internal/handlers/response/handler.go @@ -25,6 +25,11 @@ func ErrorWrapper(c *gin.Context, err error) { if validErr, ok := err.(errors.Error); ok { status = validErr.MapErrorsToHTTPCode() code = validErr.MapErrorsToCode() + + if code.GetHTTPCode() != 0 { + status = code.GetHTTPCode() + } + message = code.GetMessage() } diff --git a/internal/services/order/order.go b/internal/services/order/order.go index 0f0d213..ccc842c 100644 --- a/internal/services/order/order.go +++ b/internal/services/order/order.go @@ -125,6 +125,10 @@ func (s *OrderService) CreateOrder(ctx mycontext.Context, req *entity.OrderReque func (s *OrderService) CheckInInquiry(ctx mycontext.Context, qrCode string, partnerID *int64) (*entity.CheckinResponse, error) { order, err := s.repo.FindByQRCode(ctx, qrCode) if err != nil { + if errors.Is(err, gorm.ErrRecordNotFound) { + return nil, errors2.NewErrorMessage(errors2.ErrorInvalidRequest, "Not Valid QR Code") + } + logger.ContextLogger(ctx).Error("error when getting order by QR code", zap.Error(err)) return nil, err }