Improve error handling for tender retrieval by adding specific checks for "tender not found" in handler and service layers.

This commit is contained in:
Mazyar
2026-06-02 12:24:48 +03:30
parent 2457b76df9
commit 48340d961d
2 changed files with 15 additions and 0 deletions
+9
View File
@@ -447,6 +447,9 @@ func (h *TenderHandler) GetDocuments(c echo.Context) error {
if errors.Is(err, orm.ErrDocumentNotFound) {
return response.NotFound(c, "Tender not found")
}
if err.Error() == "tender not found" {
return response.NotFound(c, "Tender not found")
}
return response.InternalServerError(c, "Failed to retrieve tender documents")
}
@@ -478,6 +481,9 @@ func (h *TenderHandler) DownloadDocuments(c echo.Context) error {
download, err := h.service.DownloadDocuments(c.Request().Context(), id)
if err != nil {
if err.Error() == "tender not found" {
return response.NotFound(c, "Tender not found")
}
if errors.Is(err, ErrTenderDocumentNotFound) {
return response.NotFound(c, "Tender documents not found")
}
@@ -502,6 +508,9 @@ func (h *TenderHandler) DownloadDocuments(c echo.Context) error {
func (h *TenderHandler) streamDocumentDownload(c echo.Context, tenderID, filename string) error {
download, err := h.service.DownloadDocument(c.Request().Context(), tenderID, filename)
if err != nil {
if err.Error() == "tender not found" {
return response.NotFound(c, "Tender not found")
}
if errors.Is(err, ErrTenderDocumentNotFound) {
return response.NotFound(c, "Tender document not found")
}
+6
View File
@@ -498,6 +498,9 @@ func (s *tenderService) GetDocuments(ctx context.Context, id string) (*TenderDoc
})
return nil, fmt.Errorf("failed to get tender: %w", err)
}
if tender == nil {
return nil, fmt.Errorf("tender not found")
}
empty := func() *TenderDocumentsResponse {
return &TenderDocumentsResponse{
@@ -1082,6 +1085,9 @@ func (s *tenderService) GetAISummary(ctx context.Context, id string) (*AISummary
})
return nil, fmt.Errorf("failed to get tender: %w", err)
}
if t == nil {
return nil, fmt.Errorf("tender not found")
}
noticeID := strings.TrimSpace(t.NoticePublicationID)
emptyResp := func(source string) *AISummaryResponse {