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); ], 400);
} }
$longUrl = $postData['longUrl']; $longUrl = $postData['longUrl'];
$tags = isset($postData['tags']) && is_array($postData['tags']) ? $postData['tags'] : [];
try { try {
$shortCode = $this->urlShortener->urlToShortCode(new Uri($longUrl)); $shortCode = $this->urlShortener->urlToShortCode(new Uri($longUrl), $tags);
$shortUrl = (new Uri())->withPath($shortCode) $shortUrl = (new Uri())->withPath($shortCode)
->withScheme($this->domainConfig['schema']) ->withScheme($this->domainConfig['schema'])
->withHost($this->domainConfig['hostname']); ->withHost($this->domainConfig['hostname']);

View File

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