Merge pull request 'feedback error handling' (#26) from TM-571 into develop
Reviewed-on: https://repo.ravanertebat.com/TM/tm_back/pulls/26 Reviewed-by: Hadi Barzegar <barzagarhadi@gmail.com>
This commit is contained in:
@@ -1,6 +1,7 @@
|
||||
package feedback
|
||||
|
||||
import (
|
||||
"errors"
|
||||
"tm/internal/customer"
|
||||
"tm/internal/user"
|
||||
"tm/pkg/logger"
|
||||
@@ -97,10 +98,10 @@ func (h *Handler) Get(c echo.Context) error {
|
||||
|
||||
feedback, err := h.service.Get(c.Request().Context(), feedbackID)
|
||||
if err != nil {
|
||||
if err == ErrFeedbackNotFound {
|
||||
if errors.Is(err, ErrFeedbackNotFound) {
|
||||
return response.NotFound(c, "Feedback not found")
|
||||
}
|
||||
if err == ErrFeedbackDeleted {
|
||||
if errors.Is(err, ErrFeedbackDeleted) {
|
||||
return response.NotFound(c, "Feedback has been deleted")
|
||||
}
|
||||
return response.InternalServerError(c, "Failed to retrieve feedback")
|
||||
@@ -262,7 +263,10 @@ func (h *Handler) PublicGet(c echo.Context) error {
|
||||
|
||||
feedback, err := h.service.Get(c.Request().Context(), feedbackID)
|
||||
if err != nil {
|
||||
return response.BadRequest(c, "Failed to get feedback", "")
|
||||
if errors.Is(err, ErrFeedbackNotFound) {
|
||||
return response.NotFound(c, "Feedback not found")
|
||||
}
|
||||
return response.InternalServerError(c, "Failed to get feedback")
|
||||
}
|
||||
|
||||
return response.Success(c, feedback, "Feedback retrieved successfully")
|
||||
@@ -294,7 +298,10 @@ func (h *Handler) PublicGetByTenderID(c echo.Context) error {
|
||||
|
||||
feedback, err := h.service.GetByTenderIDForCustomer(c.Request().Context(), tenderID, customerID)
|
||||
if err != nil {
|
||||
return response.BadRequest(c, "Failed to get feedback", "")
|
||||
if errors.Is(err, ErrFeedbackNotFound) {
|
||||
return response.NotFound(c, "Feedback not found")
|
||||
}
|
||||
return response.InternalServerError(c, "Failed to get feedback")
|
||||
}
|
||||
|
||||
return response.Success(c, feedback, "Feedback retrieved successfully")
|
||||
|
||||
@@ -2,6 +2,7 @@ package feedback
|
||||
|
||||
import (
|
||||
"context"
|
||||
"errors"
|
||||
"time"
|
||||
"tm/pkg/logger"
|
||||
orm "tm/pkg/mongo"
|
||||
@@ -121,6 +122,9 @@ func (r *feedbackRepository) Update(ctx context.Context, feedback *Feedback) err
|
||||
func (r *feedbackRepository) GetByID(ctx context.Context, id string) (*Feedback, error) {
|
||||
feedback, err := r.repo.FindByID(ctx, id)
|
||||
if err != nil {
|
||||
if errors.Is(err, orm.ErrDocumentNotFound) {
|
||||
return nil, ErrFeedbackNotFound
|
||||
}
|
||||
r.logger.Error("Failed to get feedback by ID", map[string]interface{}{
|
||||
"feedback_id": id,
|
||||
"error": err.Error(),
|
||||
@@ -137,6 +141,9 @@ func (r *feedbackRepository) GetByCompanyID(ctx context.Context, companyID strin
|
||||
|
||||
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 company ID and tender ID", map[string]interface{}{
|
||||
"company_id": companyID,
|
||||
"tender_id": tenderID,
|
||||
@@ -171,6 +178,9 @@ func (r *feedbackRepository) GetByTenderID(ctx context.Context, tenderID, compan
|
||||
|
||||
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 company ID", map[string]interface{}{
|
||||
"tender_id": tenderID,
|
||||
"company_id": companyID,
|
||||
|
||||
@@ -2,6 +2,7 @@ package feedback
|
||||
|
||||
import (
|
||||
"context"
|
||||
"errors"
|
||||
"tm/internal/company"
|
||||
"tm/internal/tender"
|
||||
"tm/pkg/logger"
|
||||
@@ -168,10 +169,13 @@ func (s *feedbackService) Delete(ctx context.Context, id string) error {
|
||||
func (s *feedbackService) GetByTenderID(ctx context.Context, tenderID, companyID string) (*FeedbackResponse, error) {
|
||||
feedback, err := s.feedbackRepo.GetByTenderID(ctx, tenderID, companyID)
|
||||
if err != nil {
|
||||
if !errors.Is(err, ErrFeedbackNotFound) {
|
||||
s.logger.Error("Failed to get feedback by tender ID", map[string]interface{}{
|
||||
"tender_id": tenderID,
|
||||
"company_id": companyID,
|
||||
"error": err.Error(),
|
||||
})
|
||||
}
|
||||
return nil, err
|
||||
}
|
||||
|
||||
|
||||
Reference in New Issue
Block a user