no empty document error for client
This commit is contained in:
+17
-11
@@ -346,9 +346,6 @@ func (s *tenderService) GetDocuments(ctx context.Context, id string) (*TenderDoc
|
||||
if id == "" {
|
||||
return nil, fmt.Errorf("tender ID cannot be empty")
|
||||
}
|
||||
if s.aiSummarizerStorage == nil {
|
||||
return nil, ErrTenderDocumentStorageUnavailable
|
||||
}
|
||||
|
||||
tender, err := s.repository.GetByID(ctx, id)
|
||||
if err != nil {
|
||||
@@ -358,25 +355,34 @@ 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{
|
||||
TenderID: id,
|
||||
Documents: []TenderDocumentResponse{},
|
||||
}
|
||||
}
|
||||
|
||||
if s.aiSummarizerStorage == nil {
|
||||
s.logger.Debug("AI summarizer storage not configured; returning empty tender documents list", map[string]interface{}{
|
||||
"tender_id": id,
|
||||
})
|
||||
return empty(), nil
|
||||
}
|
||||
|
||||
if strings.TrimSpace(tender.ContractFolderID) == "" {
|
||||
return nil, fmt.Errorf("tender has no contract folder id")
|
||||
}
|
||||
if strings.TrimSpace(tender.NoticePublicationID) == "" {
|
||||
return nil, fmt.Errorf("tender notice publication ID is empty")
|
||||
return empty(), nil
|
||||
}
|
||||
|
||||
storedDocuments, err := s.listDocumentsForTender(ctx, tender)
|
||||
if err != nil {
|
||||
s.logger.Error("Failed to list tender documents from storage", map[string]interface{}{
|
||||
s.logger.Warn("Listing tender documents failed; returning empty list", map[string]interface{}{
|
||||
"tender_id": id,
|
||||
"contract_folder_id": tender.ContractFolderID,
|
||||
"notice_id": tender.NoticePublicationID,
|
||||
"error": err.Error(),
|
||||
})
|
||||
return nil, fmt.Errorf("failed to list tender documents: %w", err)
|
||||
storedDocuments = nil
|
||||
}
|
||||
|
||||
documents := make([]TenderDocumentResponse, 0, len(storedDocuments))
|
||||
|
||||
Reference in New Issue
Block a user