Code Coverage |
||||||||||
Classes and Traits |
Functions and Methods |
Lines |
||||||||
Total | |
100.00% |
1 / 1 |
|
100.00% |
3 / 3 |
CRAP | |
100.00% |
20 / 20 |
Directory | |
100.00% |
1 / 1 |
|
100.00% |
3 / 3 |
9 | |
100.00% |
20 / 20 |
add | |
100.00% |
1 / 1 |
3 | |
100.00% |
7 / 7 |
|||
update | |
100.00% |
1 / 1 |
5 | |
100.00% |
11 / 11 |
|||
delete | |
100.00% |
1 / 1 |
1 | |
100.00% |
2 / 2 |
<?php | |
/** | |
* Crowdin API implementation in PHP. | |
* | |
* @copyright Copyright (C) 2016 Nikolai Plath (elkuku) | |
* @license WTFPL - See license.txt | |
*/ | |
namespace ElKuKu\Crowdin\Package; | |
use ElKuKu\Crowdin\Package; | |
use Psr\Http\Message\ResponseInterface; | |
/** | |
* Class Directory | |
* | |
* @since 1.0.3 | |
*/ | |
Class Directory extends Package | |
{ | |
/** | |
* Add directory to Crowdin project. | |
* | |
* @param string $name The name of the directory to add. | |
* @param boolean $isBranch If set to 1 the directory will be marked as a version branch. | |
* Acceptable values are: 1 or 0. | |
* @param string $branch The name of related version branch. | |
* | |
* @see https://crowdin.com/page/api/add-directory | |
* @since 1.0.3 | |
* | |
* @return ResponseInterface | |
*/ | |
public function add(string $name, bool $isBranch = false, string $branch = '') : ResponseInterface | |
{ | |
$parameters = ['name' => $name]; | |
if ($isBranch) | |
{ | |
$parameters['is_branch'] = '1'; | |
} | |
if ($branch) | |
{ | |
$parameters['branch'] = $branch; | |
} | |
return $this->getHttpClient() | |
->post($this->getBasePath('add-directory'), ['form_params' => $parameters]); | |
} | |
/** | |
* Rename directory or modify its attributes. | |
* When renaming directory the path can not be changed | |
* (it means new_name parameter can not contain path, name only). | |
* | |
* @param string $name Full directory path that should be modified (e.g. /MainPage/AboutUs). | |
* @param string $newName New directory name. | |
* @param string $title New directory title to be displayed in Crowdin UI. | |
* @param string $exportPattern New directory export pattern. | |
* Is used to create directory name and path in resulted translations bundle. | |
* @param string $branch The name of related version branch. | |
* | |
* @see https://crowdin.com/page/api/change-directory | |
* @since 1.0.3 | |
* | |
* @return ResponseInterface | |
*/ | |
public function update(string $name, string $newName = '', string $title = '', string $exportPattern = '', string $branch = '') : ResponseInterface | |
{ | |
$data = ['name' => $name]; | |
if ($newName) | |
{ | |
$data['new_name'] = $newName; | |
} | |
if ($title) | |
{ | |
$data['title'] = $title; | |
} | |
if ($exportPattern) | |
{ | |
$data['export_pattern'] = $exportPattern; | |
} | |
if ($branch) | |
{ | |
$data['branch'] = $branch; | |
} | |
return $this->getHttpClient() | |
->post($this->getBasePath('change-directory'), ['form_params' => $data]); | |
} | |
/** | |
* Delete Crowdin project directory. | |
* All nested files and directories will be deleted too. | |
* | |
* @param string $name The name of the directory to delete. | |
* | |
* @see https://crowdin.com/page/api/delete-directory | |
* @since 1.0.3 | |
* | |
* @return ResponseInterface | |
*/ | |
public function delete(string $name) : ResponseInterface | |
{ | |
return $this->getHttpClient() | |
->post($this->getBasePath('delete-directory'), ['form_params' => ['name' => $name]]); | |
} | |
} |