From ea792f54cda9316ab0618296b6d38c2772703637 Mon Sep 17 00:00:00 2001 From: Mazyar Date: Tue, 2 Jun 2026 21:43:23 +0330 Subject: [PATCH] Improve error handling in feedback retrieval by returning a specific error when feedback is not found for a given tender ID and customer ID. --- internal/feedback/repository.go | 3 +++ internal/feedback/service.go | 12 +++++++----- 2 files changed, 10 insertions(+), 5 deletions(-) diff --git a/internal/feedback/repository.go b/internal/feedback/repository.go index 5eda72a..807696c 100644 --- a/internal/feedback/repository.go +++ b/internal/feedback/repository.go @@ -198,6 +198,9 @@ func (r *feedbackRepository) GetByTenderIDForCustomer(ctx context.Context, tende result, err := r.repo.FindOne(ctx, filter) if err != nil { + if errors.Is(err, orm.ErrDocumentNotFound) { + return nil, ErrFeedbackNotFound + } r.logger.Error("Failed to get feedback by tender ID and customer ID", map[string]interface{}{ "tender_id": tenderID, "customer_id": customerID, diff --git a/internal/feedback/service.go b/internal/feedback/service.go index 5b8facf..786f593 100644 --- a/internal/feedback/service.go +++ b/internal/feedback/service.go @@ -187,11 +187,13 @@ func (s *feedbackService) GetByTenderID(ctx context.Context, tenderID, companyID func (s *feedbackService) GetByTenderIDForCustomer(ctx context.Context, tenderID, customerID string) (*FeedbackResponse, error) { feedback, err := s.feedbackRepo.GetByTenderIDForCustomer(ctx, tenderID, customerID) if err != nil { - s.logger.Error("Failed to get feedback by tender ID for customer", map[string]interface{}{ - "tender_id": tenderID, - "customer_id": customerID, - "error": err.Error(), - }) + if !errors.Is(err, ErrFeedbackNotFound) { + s.logger.Error("Failed to get feedback by tender ID for customer", map[string]interface{}{ + "tender_id": tenderID, + "customer_id": customerID, + "error": err.Error(), + }) + } return nil, err }