diff --git a/spec/Akeneo/Crowdin/Api/ExportFileSpec.php b/spec/Akeneo/Crowdin/Api/ExportFileSpec.php new file mode 100644 index 0000000..d75b79a --- /dev/null +++ b/spec/Akeneo/Crowdin/Api/ExportFileSpec.php @@ -0,0 +1,34 @@ +getHttpClient()->willReturn($http); + $client->getProjectIdentifier()->willReturn('akeneo'); + $client->getProjectApiKey()->willReturn('1234'); + $this->beConstructedWith($client); + } + + public function it_should_be_an_api() + { + $this->shouldBeAnInstanceOf('Akeneo\Crowdin\Api\AbstractApi'); + } + + public function it_retrieves_translation_file(HttpClient $http, Request $request, Response $response) + { + $content = 'file-content'; + $response->getBody()->willReturn($content); + $http->get('project/akeneo/export-file?key=1234')->willReturn($response); + $this->execute()->shouldBe($content); + } +} diff --git a/src/Akeneo/Crowdin/Api/ExportFile.php b/src/Akeneo/Crowdin/Api/ExportFile.php new file mode 100644 index 0000000..5e37be5 --- /dev/null +++ b/src/Akeneo/Crowdin/Api/ExportFile.php @@ -0,0 +1,29 @@ + + * @see https://support.crowdin.com/api/export-file/ + */ +class ExportFile extends AbstractApi +{ + /** + * {@inheritdoc} + */ + public function execute() + { + $this->addUrlParameter('key', $this->client->getProjectApiKey()); + + $path = sprintf( + "project/%s/export-file?%s", + $this->client->getProjectIdentifier(), + $this->getUrlQueryString() + ); + $response = $this->client->getHttpClient()->get($path); + + return $response->getBody(); + } +} diff --git a/src/Akeneo/Crowdin/Client.php b/src/Akeneo/Crowdin/Client.php index 91aa04d..c46d6a6 100644 --- a/src/Akeneo/Crowdin/Client.php +++ b/src/Akeneo/Crowdin/Client.php @@ -71,6 +71,9 @@ public function api($method) case 'export': $api = new Api\Export($this); break; + case 'export-file': + $api = new Api\ExportFile($this); + break; case 'add-directory': $api = new Api\AddDirectory($this); break;