Added option to set tags while creating short code from rest API

This commit is contained in:
Alejandro Celaya 2016-08-21 13:07:12 +02:00
parent 322180bde4
commit b6fee0ebaf
2 changed files with 11 additions and 7 deletions

View File

@ -66,9 +66,10 @@ class CreateShortcodeAction extends AbstractRestAction
], 400);
}
$longUrl = $postData['longUrl'];
$tags = isset($postData['tags']) && is_array($postData['tags']) ? $postData['tags'] : [];
try {
$shortCode = $this->urlShortener->urlToShortCode(new Uri($longUrl));
$shortCode = $this->urlShortener->urlToShortCode(new Uri($longUrl), $tags);
$shortUrl = (new Uri())->withPath($shortCode)
->withScheme($this->domainConfig['schema'])
->withHost($this->domainConfig['hostname']);

View File

@ -47,8 +47,9 @@ class CreateShortcodeActionTest extends TestCase
*/
public function properShortcodeConversionReturnsData()
{
$this->urlShortener->urlToShortCode(Argument::type(Uri::class))->willReturn('abc123')
->shouldBeCalledTimes(1);
$this->urlShortener->urlToShortCode(Argument::type(Uri::class), Argument::type('array'))
->willReturn('abc123')
->shouldBeCalledTimes(1);
$request = ServerRequestFactory::fromGlobals()->withParsedBody([
'longUrl' => 'http://www.domain.com/foo/bar',
@ -63,8 +64,9 @@ class CreateShortcodeActionTest extends TestCase
*/
public function anInvalidUrlReturnsError()
{
$this->urlShortener->urlToShortCode(Argument::type(Uri::class))->willThrow(InvalidUrlException::class)
->shouldBeCalledTimes(1);
$this->urlShortener->urlToShortCode(Argument::type(Uri::class), Argument::type('array'))
->willThrow(InvalidUrlException::class)
->shouldBeCalledTimes(1);
$request = ServerRequestFactory::fromGlobals()->withParsedBody([
'longUrl' => 'http://www.domain.com/foo/bar',
@ -79,8 +81,9 @@ class CreateShortcodeActionTest extends TestCase
*/
public function aGenericExceptionWillReturnError()
{
$this->urlShortener->urlToShortCode(Argument::type(Uri::class))->willThrow(\Exception::class)
->shouldBeCalledTimes(1);
$this->urlShortener->urlToShortCode(Argument::type(Uri::class), Argument::type('array'))
->willThrow(\Exception::class)
->shouldBeCalledTimes(1);
$request = ServerRequestFactory::fromGlobals()->withParsedBody([
'longUrl' => 'http://www.domain.com/foo/bar',