TP-48508 | Fixing context canceled issue (#327)

This commit is contained in:
Sriram Bhargav
2023-12-15 14:42:45 +05:30
committed by GitHub
parent 29fbf519e5
commit be6a5942f2
2 changed files with 18 additions and 33 deletions

View File

@@ -12,7 +12,6 @@ import (
"net/http"
"os"
"sort"
"sync"
"time"
)
@@ -135,38 +134,24 @@ func (driveService *Service) DownloadTranscripts(directory *drive.File, mimeType
logger.Error(fmt.Sprintf("Error searching for files in directory %v: %v", directory.Name, err))
return "", err
}
var driveFileDownloadWaitGroup sync.WaitGroup
errorsFound := false
for _, driveFile := range fileList.Files {
driveFile := driveFile
driveFileDownloadWaitGroup.Add(1)
go func() {
defer driveFileDownloadWaitGroup.Done()
exportResponse, err := driveService.DownloadFile(driveFile, mimeType)
if err != nil {
logger.Error(fmt.Sprintf("Error downloading file %v: %v", driveFile.Name, err))
errorsFound = true
return
}
err = util.WriteToFile(downloadDirectory, driveFile.Name+util.GetFileExtensionFromMimeType(mimeType),
exportResponse.Body)
if err != nil {
logger.Error(fmt.Sprintf("Error writing file %v to directory %v: %v", driveFile.Name,
downloadDirectory, zap.Error(err)))
errorsFound = true
return
}
err = exportResponse.Body.Close()
if err != nil {
logger.Error(fmt.Sprintf("Error closing response body: %v", err))
errorsFound = true
return
}
}()
}
driveFileDownloadWaitGroup.Wait()
if errorsFound {
return "", errors.New("error occurred while downloading files")
exportResponse, err := driveService.DownloadFile(driveFile, mimeType)
if err != nil {
logger.Error(fmt.Sprintf("Error downloading file %v: %v", driveFile.Name, err))
return "", err
}
err = util.WriteToFile(downloadDirectory, driveFile.Name+util.GetFileExtensionFromMimeType(mimeType),
exportResponse.Body)
if err != nil {
logger.Error(fmt.Sprintf("Error writing file %v to directory %v: %v", driveFile.Name, downloadDirectory,
zap.Error(err)))
return "", err
}
err = exportResponse.Body.Close()
if err != nil {
logger.Error(fmt.Sprintf("Error closing response body: %v", err))
return "", err
}
}
return downloadDirectory, nil
}

View File

@@ -346,7 +346,7 @@ func (suite *DriveServiceSuite) Test_DownloadTranscripts_ExportFileError() {
driveActions.ExportFileMock.When(suite.driveActionTimeOut, inputFile.Id, util.ContentTypeTextHTML).Then(nil, errors.New("error exporting file"))
driveService := NewDriveService(driveActions)
directoryPath, err := driveService.DownloadTranscripts(inputFile, util.ContentTypeTextHTML)
suite.Assert().Equal(err.Error(), "error occurred while downloading files")
suite.Assert().Equal(err.Error(), "error exporting file")
suite.Assert().Equal(directoryPath, "")
}