Includes file extension on bilingual download

It is important to choose the file extension, so including it on the
filename would be the easier way for us, as we already have the
extension when using it.
This commit is contained in:
Bruno F. Fontes 2021-02-11 18:13:38 -03:00
parent 37ebdabc20
commit c88478f7d8
Signed by: brunofontes
GPG Key ID: EE3447CE80048495
2 changed files with 7 additions and 4 deletions

View File

@ -30,13 +30,16 @@ class BilingualFile extends \BrunoFontes\Memsource\BaseApi
*/ */
public function download(string $projectUid, array $jobUids, string $filename): array public function download(string $projectUid, array $jobUids, string $filename): array
{ {
$url = "/api2/v1/projects/{$projectUid}/jobs/bilingualFile"; $fileExtension = pathinfo($filename)['extension'];
$fileNoExtension = basename($filename,'.'.$fileExtension);
;
$url = "/api2/v1/projects/{$projectUid}/jobs/bilingualFile?format=" . strtoupper($fileExtension);
$filenames = []; $filenames = [];
$groupedJobUids = array_chunk($jobUids, 100); $groupedJobUids = array_chunk($jobUids, 100);
for ($i = 0; $i < count($groupedJobUids); $i++) { for ($i = 0; $i < count($groupedJobUids); $i++) {
$apiReadyArray = $this->_convertUidArrayToApiRequest($groupedJobUids[$i]); $apiReadyArray = $this->_convertUidArrayToApiRequest($groupedJobUids[$i]);
$filenames[$i] = count($groupedJobUids) > 1 ? "{$i}_{$filename}" : $filename; $filenames[$i] = count($groupedJobUids) > 1 ? "{$fileNoExtension}_{$i}.{$fileExtension}" : $filename;
$filecontent = $this->fetchApi->fetch('jsonPost', $url, $apiReadyArray); $filecontent = $this->fetchApi->fetch('jsonPost', $url, $apiReadyArray);
if ($this->hasError($filecontent)) { if ($this->hasError($filecontent)) {
$errorMsg = $this->getError($filecontent); $errorMsg = $this->getError($filecontent);

View File

@ -11,14 +11,14 @@ final class BilingualFileTest extends TestCase
$api = new Memsource('fakeToken'); $api = new Memsource('fakeToken');
$this->assertEquals( $this->assertEquals(
[], [],
$api->bilingualFile()->download('uid', [], 'filename') $api->bilingualFile()->download('uid', [], 'filename.xliff')
); );
} }
public function testInvalidDownloadUidsShouldThrowError() public function testInvalidDownloadUidsShouldThrowError()
{ {
$api = new Memsource('fakeToken'); $api = new Memsource('fakeToken');
$this->expectException(\Exception::class); $this->expectException(\Exception::class);
$api->bilingualFile()->download('uid', ['a'], 'filename'); $api->bilingualFile()->download('uid', ['a'], 'filename.xliff');
} }
public function testUploadInexistentFileShouldThrowError() public function testUploadInexistentFileShouldThrowError()