mirror of
https://github.com/shlinkio/shlink.git
synced 2024-11-27 16:26:37 +03:00
Add --path-prefix to short URL creation
This commit is contained in:
parent
f08951a9b9
commit
7673232793
2 changed files with 13 additions and 2 deletions
|
@ -12,6 +12,11 @@ The format is based on [Keep a Changelog](https://keepachangelog.com), and this
|
||||||
This is supported both by the `GET /visits/orphan` API endpoint via `type=...` query param, and by the `visit:orphan` CLI command, via `--type` flag.
|
This is supported both by the `GET /visits/orphan` API endpoint via `type=...` query param, and by the `visit:orphan` CLI command, via `--type` flag.
|
||||||
|
|
||||||
* [#1904](https://github.com/shlinkio/shlink/issues/1904) Allow to customize QR codes foreground color, background color and logo.
|
* [#1904](https://github.com/shlinkio/shlink/issues/1904) Allow to customize QR codes foreground color, background color and logo.
|
||||||
|
* [#1884](https://github.com/shlinkio/shlink/issues/1884) Allow a path prefix to be provided during short URL creation.
|
||||||
|
|
||||||
|
This can be useful to let Shlink generate partially random URLs, but with a known prefix.
|
||||||
|
|
||||||
|
Path prefixes are validated and filtered taking multi-segment slugs into consideration, which means slashes are replaced with dashes as long as multi-segment slugs are disabled.
|
||||||
|
|
||||||
### Changed
|
### Changed
|
||||||
* [#1935](https://github.com/shlinkio/shlink/issues/1935) Replace dependency on abandoned `php-middleware/request-id` with userland simple middleware.
|
* [#1935](https://github.com/shlinkio/shlink/issues/1935) Replace dependency on abandoned `php-middleware/request-id` with userland simple middleware.
|
||||||
|
|
|
@ -70,6 +70,12 @@ class CreateShortUrlCommand extends Command
|
||||||
InputOption::VALUE_REQUIRED,
|
InputOption::VALUE_REQUIRED,
|
||||||
'If provided, this slug will be used instead of generating a short code',
|
'If provided, this slug will be used instead of generating a short code',
|
||||||
)
|
)
|
||||||
|
->addOption(
|
||||||
|
'path-prefix',
|
||||||
|
'p',
|
||||||
|
InputOption::VALUE_REQUIRED,
|
||||||
|
'Prefix to prepend before the generated short code or provided custom slug',
|
||||||
|
)
|
||||||
->addOption(
|
->addOption(
|
||||||
'max-visits',
|
'max-visits',
|
||||||
'm',
|
'm',
|
||||||
|
@ -138,7 +144,6 @@ class CreateShortUrlCommand extends Command
|
||||||
|
|
||||||
$explodeWithComma = static fn (string $tag) => explode(',', $tag);
|
$explodeWithComma = static fn (string $tag) => explode(',', $tag);
|
||||||
$tags = array_unique(flatten(array_map($explodeWithComma, $input->getOption('tags'))));
|
$tags = array_unique(flatten(array_map($explodeWithComma, $input->getOption('tags'))));
|
||||||
$customSlug = $input->getOption('custom-slug');
|
|
||||||
$maxVisits = $input->getOption('max-visits');
|
$maxVisits = $input->getOption('max-visits');
|
||||||
$shortCodeLength = $input->getOption('short-code-length') ?? $this->options->defaultShortCodesLength;
|
$shortCodeLength = $input->getOption('short-code-length') ?? $this->options->defaultShortCodesLength;
|
||||||
|
|
||||||
|
@ -147,8 +152,9 @@ class CreateShortUrlCommand extends Command
|
||||||
ShortUrlInputFilter::LONG_URL => $longUrl,
|
ShortUrlInputFilter::LONG_URL => $longUrl,
|
||||||
ShortUrlInputFilter::VALID_SINCE => $input->getOption('valid-since'),
|
ShortUrlInputFilter::VALID_SINCE => $input->getOption('valid-since'),
|
||||||
ShortUrlInputFilter::VALID_UNTIL => $input->getOption('valid-until'),
|
ShortUrlInputFilter::VALID_UNTIL => $input->getOption('valid-until'),
|
||||||
ShortUrlInputFilter::CUSTOM_SLUG => $customSlug,
|
|
||||||
ShortUrlInputFilter::MAX_VISITS => $maxVisits !== null ? (int) $maxVisits : null,
|
ShortUrlInputFilter::MAX_VISITS => $maxVisits !== null ? (int) $maxVisits : null,
|
||||||
|
ShortUrlInputFilter::CUSTOM_SLUG => $input->getOption('custom-slug'),
|
||||||
|
ShortUrlInputFilter::PATH_PREFIX => $input->getOption('path-prefix'),
|
||||||
ShortUrlInputFilter::FIND_IF_EXISTS => $input->getOption('find-if-exists'),
|
ShortUrlInputFilter::FIND_IF_EXISTS => $input->getOption('find-if-exists'),
|
||||||
ShortUrlInputFilter::DOMAIN => $input->getOption('domain'),
|
ShortUrlInputFilter::DOMAIN => $input->getOption('domain'),
|
||||||
ShortUrlInputFilter::SHORT_CODE_LENGTH => $shortCodeLength,
|
ShortUrlInputFilter::SHORT_CODE_LENGTH => $shortCodeLength,
|
||||||
|
|
Loading…
Reference in a new issue