mirror of
https://github.com/shlinkio/shlink.git
synced 2025-02-25 18:45:27 -06:00
Removed duplicated code by using a utils trait
This commit is contained in:
parent
038ba3b006
commit
a33151248d
@ -6,6 +6,7 @@ namespace Shlinkio\Shlink\CLI\Command\Shortcode;
|
|||||||
use Shlinkio\Shlink\Core\Exception\InvalidUrlException;
|
use Shlinkio\Shlink\Core\Exception\InvalidUrlException;
|
||||||
use Shlinkio\Shlink\Core\Exception\NonUniqueSlugException;
|
use Shlinkio\Shlink\Core\Exception\NonUniqueSlugException;
|
||||||
use Shlinkio\Shlink\Core\Service\UrlShortenerInterface;
|
use Shlinkio\Shlink\Core\Service\UrlShortenerInterface;
|
||||||
|
use Shlinkio\Shlink\Core\Util\ShortUrlBuilderTrait;
|
||||||
use Symfony\Component\Console\Command\Command;
|
use Symfony\Component\Console\Command\Command;
|
||||||
use Symfony\Component\Console\Input\InputArgument;
|
use Symfony\Component\Console\Input\InputArgument;
|
||||||
use Symfony\Component\Console\Input\InputInterface;
|
use Symfony\Component\Console\Input\InputInterface;
|
||||||
@ -17,7 +18,9 @@ use Zend\I18n\Translator\TranslatorInterface;
|
|||||||
|
|
||||||
class GenerateShortcodeCommand extends Command
|
class GenerateShortcodeCommand extends Command
|
||||||
{
|
{
|
||||||
const NAME = 'shortcode:generate';
|
use ShortUrlBuilderTrait;
|
||||||
|
|
||||||
|
public const NAME = 'shortcode:generate';
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* @var UrlShortenerInterface
|
* @var UrlShortenerInterface
|
||||||
@ -116,9 +119,7 @@ class GenerateShortcodeCommand extends Command
|
|||||||
$customSlug,
|
$customSlug,
|
||||||
$maxVisits !== null ? (int) $maxVisits : null
|
$maxVisits !== null ? (int) $maxVisits : null
|
||||||
)->getShortCode();
|
)->getShortCode();
|
||||||
$shortUrl = (string) (new Uri())->withPath($shortCode)
|
$shortUrl = $this->buildShortUrl($this->domainConfig, $shortCode);
|
||||||
->withScheme($this->domainConfig['schema'])
|
|
||||||
->withHost($this->domainConfig['hostname']);
|
|
||||||
|
|
||||||
$io->writeln([
|
$io->writeln([
|
||||||
\sprintf('%s <info>%s</info>', $this->translator->translate('Processed long URL:'), $longUrl),
|
\sprintf('%s <info>%s</info>', $this->translator->translate('Processed long URL:'), $longUrl),
|
||||||
|
@ -6,10 +6,12 @@ namespace Shlinkio\Shlink\Core\Transformer;
|
|||||||
use Shlinkio\Shlink\Common\Rest\DataTransformerInterface;
|
use Shlinkio\Shlink\Common\Rest\DataTransformerInterface;
|
||||||
use Shlinkio\Shlink\Core\Entity\ShortUrl;
|
use Shlinkio\Shlink\Core\Entity\ShortUrl;
|
||||||
use Shlinkio\Shlink\Core\Entity\Tag;
|
use Shlinkio\Shlink\Core\Entity\Tag;
|
||||||
use Zend\Diactoros\Uri;
|
use Shlinkio\Shlink\Core\Util\ShortUrlBuilderTrait;
|
||||||
|
|
||||||
class ShortUrlDataTransformer implements DataTransformerInterface
|
class ShortUrlDataTransformer implements DataTransformerInterface
|
||||||
{
|
{
|
||||||
|
use ShortUrlBuilderTrait;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* @var array
|
* @var array
|
||||||
*/
|
*/
|
||||||
@ -32,7 +34,7 @@ class ShortUrlDataTransformer implements DataTransformerInterface
|
|||||||
|
|
||||||
return [
|
return [
|
||||||
'shortCode' => $shortCode,
|
'shortCode' => $shortCode,
|
||||||
'shortUrl' => $this->buildShortUrl($shortCode),
|
'shortUrl' => $this->buildShortUrl($this->domainConfig, $shortCode),
|
||||||
'longUrl' => $longUrl,
|
'longUrl' => $longUrl,
|
||||||
'dateCreated' => $dateCreated !== null ? $dateCreated->format(\DateTime::ATOM) : null,
|
'dateCreated' => $dateCreated !== null ? $dateCreated->format(\DateTime::ATOM) : null,
|
||||||
'visitsCount' => $value->getVisitsCount(),
|
'visitsCount' => $value->getVisitsCount(),
|
||||||
@ -43,13 +45,6 @@ class ShortUrlDataTransformer implements DataTransformerInterface
|
|||||||
];
|
];
|
||||||
}
|
}
|
||||||
|
|
||||||
private function buildShortUrl(string $shortCode): string
|
|
||||||
{
|
|
||||||
return (string) (new Uri())->withPath($shortCode)
|
|
||||||
->withScheme($this->domainConfig['schema'] ?? 'http')
|
|
||||||
->withHost($this->domainConfig['hostname'] ?? '');
|
|
||||||
}
|
|
||||||
|
|
||||||
private function serializeTag(Tag $tag): string
|
private function serializeTag(Tag $tag): string
|
||||||
{
|
{
|
||||||
return $tag->getName();
|
return $tag->getName();
|
||||||
|
16
module/Core/src/Util/ShortUrlBuilderTrait.php
Normal file
16
module/Core/src/Util/ShortUrlBuilderTrait.php
Normal file
@ -0,0 +1,16 @@
|
|||||||
|
<?php
|
||||||
|
declare(strict_types=1);
|
||||||
|
|
||||||
|
namespace Shlinkio\Shlink\Core\Util;
|
||||||
|
|
||||||
|
use Zend\Diactoros\Uri;
|
||||||
|
|
||||||
|
trait ShortUrlBuilderTrait
|
||||||
|
{
|
||||||
|
private function buildShortUrl(array $domainConfig, string $shortCode): string
|
||||||
|
{
|
||||||
|
return (string) (new Uri())->withPath($shortCode)
|
||||||
|
->withScheme($domainConfig['schema'] ?? 'http')
|
||||||
|
->withHost($domainConfig['hostname'] ?? '');
|
||||||
|
}
|
||||||
|
}
|
Loading…
Reference in New Issue
Block a user