TP-48508 | Fixing context canceled issue (#327)
This commit is contained in:
@@ -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
|
||||
}
|
||||
|
||||
@@ -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, "")
|
||||
}
|
||||
|
||||
|
||||
Reference in New Issue
Block a user