Skip to content

Commit 6601a4d

Browse files
authored
Merge pull request #59 from acelaya-forks/feature/tags-mode
Add support for tags mode in short URLs list
2 parents ac5edf0 + 8764b2f commit 6601a4d

File tree

5 files changed

+19
-7
lines changed

5 files changed

+19
-7
lines changed

CHANGELOG.md

Lines changed: 4 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -4,16 +4,19 @@ All notable changes to this project will be documented in this file.
44

55
The format is based on [Keep a Changelog](https://keepachangelog.com), and this project adheres to [Semantic Versioning](https://semver.org).
66

7-
## [Unreleased]
7+
## [2.0.0] - 2024-03-11
88
### Added
99
* [#53](https://github.com/shlinkio/shlink-php-sdk/issues/53) Add support for Shlink 4.0.0.
1010

1111
* Short URL redirect rules.
1212
* Filter orphan visits by type.
1313
* Deprecate anything related with device long URLs.
1414

15+
* [#57](https://github.com/shlinkio/shlink-php-sdk/issues/57) Add support for `tagsMode` when listing short URLs.
16+
1517
### Changed
1618
* [#25](https://github.com/shlinkio/shlink-php-sdk/issues/25) Add code coverage collection to integration tests.
19+
* `ShortUrlsFilter::containingTags` renamed to `ShortUrlsFilter::containingSomeTags`.
1720

1821
### Deprecated
1922
* *Nothing*

docs/basic/getting-started.md

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -25,7 +25,7 @@ $httpClient = new HttpClient(
2525
$client = new ShortUrlsClient($httpClient)
2626

2727
$filter = ShortUrlsFilter::create()
28-
->containingTags('foo', 'bar')
28+
->containingSomeTags('foo', 'bar')
2929
->since(Chronos::now()->subDays(10)) // Any object implementing DateTimeInterface
3030
->orderingAscBy(ShortUrlListOrderField::VISITS)
3131
$shortUrls = $client->listShortUrlsWithFilter($filter)

docs/contexts/short-urls.md

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -29,7 +29,7 @@ use Shlinkio\Shlink\SDK\ShortUrls\Model\ShortUrlListOrderField;
2929
use Shlinkio\Shlink\SDK\ShortUrls\Model\ShortUrlsFilter;
3030

3131
$filter = ShortUrlsFilter::create()->searchingBy('foobar')
32-
->containingTags('videogames', 'development')
32+
->containingSomeTags('videogames', 'development')
3333
->orderingDescBy(ShortUrlListOrderField::TITLE);
3434
$filteredShortUrls = $shortUrlsClient->listShortUrlsWithFilter($filter);
3535

src/ShortUrls/Model/ShortUrlsFilter.php

Lines changed: 7 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -35,9 +35,14 @@ public function searchingBy(string $searchTerm): self
3535
return $this->cloneWithProp('searchTerm', $searchTerm);
3636
}
3737

38-
public function containingTags(string ...$tags): self
38+
public function containingSomeTags(string ...$tags): self
3939
{
40-
return $this->cloneWithProp('tags', $tags);
40+
return $this->cloneWithProp('tags', $tags)->cloneWithProp('tagsMode', 'any');
41+
}
42+
43+
public function containingAllTags(string ...$tags): self
44+
{
45+
return $this->cloneWithProp('tags', $tags)->cloneWithProp('tagsMode', 'all');
4146
}
4247

4348
public function excludingMaxVisitsReached(): self

test/ShortUrls/Model/ShortUrlsFilterTest.php

Lines changed: 6 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -36,9 +36,13 @@ public static function providePayloads(): iterable
3636
];
3737
yield [
3838
fn () => ShortUrlsFilter::create()
39-
->containingTags('foo', 'bar')
39+
->containingSomeTags('foo', 'bar')
4040
->searchingBy('searching'),
41-
['tags' => ['foo', 'bar'], 'searchTerm' => 'searching'],
41+
['tags' => ['foo', 'bar'], 'tagsMode' => 'any', 'searchTerm' => 'searching'],
42+
];
43+
yield [
44+
fn () => ShortUrlsFilter::create()->containingAllTags('foo', 'bar'),
45+
['tags' => ['foo', 'bar'], 'tagsMode' => 'all'],
4246
];
4347
yield [
4448
fn () => ShortUrlsFilter::create()->orderingAscBy(ShortUrlListOrderField::VISITS),

0 commit comments

Comments
 (0)