Improve error handling for tender retrieval by adding specific checks for "tender not found" in handler and service layers.
This commit is contained in:
@@ -447,6 +447,9 @@ func (h *TenderHandler) GetDocuments(c echo.Context) error {
|
|||||||
if errors.Is(err, orm.ErrDocumentNotFound) {
|
if errors.Is(err, orm.ErrDocumentNotFound) {
|
||||||
return response.NotFound(c, "Tender not found")
|
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")
|
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)
|
download, err := h.service.DownloadDocuments(c.Request().Context(), id)
|
||||||
if err != nil {
|
if err != nil {
|
||||||
|
if err.Error() == "tender not found" {
|
||||||
|
return response.NotFound(c, "Tender not found")
|
||||||
|
}
|
||||||
if errors.Is(err, ErrTenderDocumentNotFound) {
|
if errors.Is(err, ErrTenderDocumentNotFound) {
|
||||||
return response.NotFound(c, "Tender documents not found")
|
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 {
|
func (h *TenderHandler) streamDocumentDownload(c echo.Context, tenderID, filename string) error {
|
||||||
download, err := h.service.DownloadDocument(c.Request().Context(), tenderID, filename)
|
download, err := h.service.DownloadDocument(c.Request().Context(), tenderID, filename)
|
||||||
if err != nil {
|
if err != nil {
|
||||||
|
if err.Error() == "tender not found" {
|
||||||
|
return response.NotFound(c, "Tender not found")
|
||||||
|
}
|
||||||
if errors.Is(err, ErrTenderDocumentNotFound) {
|
if errors.Is(err, ErrTenderDocumentNotFound) {
|
||||||
return response.NotFound(c, "Tender document not found")
|
return response.NotFound(c, "Tender document not found")
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -498,6 +498,9 @@ func (s *tenderService) GetDocuments(ctx context.Context, id string) (*TenderDoc
|
|||||||
})
|
})
|
||||||
return nil, fmt.Errorf("failed to get tender: %w", err)
|
return nil, fmt.Errorf("failed to get tender: %w", err)
|
||||||
}
|
}
|
||||||
|
if tender == nil {
|
||||||
|
return nil, fmt.Errorf("tender not found")
|
||||||
|
}
|
||||||
|
|
||||||
empty := func() *TenderDocumentsResponse {
|
empty := func() *TenderDocumentsResponse {
|
||||||
return &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)
|
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)
|
noticeID := strings.TrimSpace(t.NoticePublicationID)
|
||||||
emptyResp := func(source string) *AISummaryResponse {
|
emptyResp := func(source string) *AISummaryResponse {
|
||||||
|
|||||||
Reference in New Issue
Block a user