Alejandro Celaya
|
b0b9902f40
|
Add unit test to cover device URLs edition, and fix bug thanks to it
|
2023-01-22 12:18:36 +01:00 |
|
Alejandro Celaya
|
5aa8de11f4
|
Update version on user agent used to validate URLsç
|
2023-01-22 12:00:16 +01:00 |
|
Alejandro Celaya
|
39adef8ab8
|
Make it impossible to create a short URL with an empty long URL
|
2023-01-22 11:27:16 +01:00 |
|
Alejandro Celaya
|
13e443880a
|
Allow device long URLs to be removed from short URLs by providing null value
|
2023-01-22 11:03:05 +01:00 |
|
Alejandro Celaya
|
48bd97fe41
|
Return deviceLongUrls as part of the short URL data and document API changes
|
2023-01-21 12:05:54 +01:00 |
|
Alejandro Celaya
|
b1b67c497e
|
Add logic to dynamically resolve the long URL to redirect to based on requesting device
|
2023-01-21 11:15:42 +01:00 |
|
Alejandro Celaya
|
237fb95b4b
|
Update ShortUrlRedirectionBuilder to accept a request object instead of a raw query array
|
2023-01-21 10:37:12 +01:00 |
|
Alejandro Celaya
|
c1b7c6ba6c
|
Updated to shlink-common with support for proxies for entities with public readonly props
|
2023-01-21 10:12:52 +01:00 |
|
Alejandro Celaya
|
d8add9291f
|
Removed public readonly prop from entity, as it can cause errors when a proxy is generated
|
2023-01-21 10:12:52 +01:00 |
|
Alejandro Celaya
|
a93edf158e
|
Added logic to persist device long URLs while creating/editing a short URL
|
2023-01-21 10:12:52 +01:00 |
|
Alejandro Celaya
|
fdadf3ba07
|
Created unit test for DeviceLongUrlsValidator
|
2023-01-21 10:12:52 +01:00 |
|
Alejandro Celaya
|
3e26f1113d
|
Extract device long URL validation to its own validation class
|
2023-01-21 10:12:52 +01:00 |
|
Alejandro Celaya
|
822652cac3
|
Allow providing device long URLs during short URL edition
|
2023-01-21 10:12:52 +01:00 |
|
Alejandro Celaya
|
1447687ebe
|
Add deviceLongUrls to short URL creation
|
2023-01-21 10:12:52 +01:00 |
|
Alejandro Celaya
|
12150f775d
|
Created persistence for device long URLs
|
2023-01-21 10:12:52 +01:00 |
|
Alejandro Celaya
|
80e3f01562
|
Replace references to doma.in with s.test
|
2023-01-19 09:05:52 +01:00 |
|
Alejandro Celaya
|
21863e8de6
|
Add support to load openswoole-specific config via env vars
|
2023-01-12 19:39:26 +01:00 |
|
Alejandro Celaya
|
edaf999bf5
|
Fixed constant assignment on enum which is not valid for PHP 8.1
|
2023-01-07 17:09:53 +01:00 |
|
Alejandro Celaya
|
0c1b36d0d4
|
Added config post-processor which sets proper allowed methods based on redirect status codes
|
2023-01-07 13:51:35 +01:00 |
|
Alejandro Celaya
|
a06957e9fa
|
Moved config post-processors to their own sub-namespace
|
2023-01-07 13:04:46 +01:00 |
|
Alejandro Celaya
|
390bc59d99
|
Added support for redirect status code 307 and 308
|
2023-01-07 11:27:15 +01:00 |
|
Alejandro Celaya
|
46b4a21617
|
Fixed missing null check
|
2023-01-02 20:17:29 +01:00 |
|
Alejandro Celaya
|
ce9ec0d738
|
Fixed ordering in tags supporting more fields
|
2023-01-02 19:49:54 +01:00 |
|
Alejandro Celaya
|
961178fd82
|
Added amount of bots, non-bots and total visits to the list of tags with stats
|
2023-01-02 19:28:32 +01:00 |
|
Alejandro Celaya
|
812c5f4993
|
Added new handled error for when request body is not valid JSON
|
2023-01-02 13:33:24 +01:00 |
|
Alejandro Celaya
|
e0a9f8120c
|
Fixed unintended change in phpdoc
|
2023-01-02 12:48:23 +01:00 |
|
Alejandro Celaya
|
37c8328eed
|
Added split info about bots, non-bots and total visits to the visits stats
|
2023-01-02 12:28:34 +01:00 |
|
Alejandro Celaya
|
c7a2f499e0
|
Added support to order short URLs list by amount of non-bot visits
|
2022-12-16 19:42:46 +01:00 |
|
Alejandro Celaya
|
713f7e7bc9
|
Added missing dock block
|
2022-12-16 18:18:09 +01:00 |
|
Alejandro Celaya
|
936e5b3b86
|
Fixed PublishingUpdatesGeneratorTest
|
2022-12-16 10:36:09 +01:00 |
|
Alejandro Celaya
|
99f28b569b
|
Created method to get non-bot visits count for a short URL
|
2022-12-16 10:06:39 +01:00 |
|
Alejandro Celaya
|
60ef98b836
|
Extracted method to find crawlable short codes to its own query object
|
2022-12-14 14:38:22 +01:00 |
|
Alejandro Celaya
|
73c8b53882
|
Split some logic from VisitRepository into its own injectable repository
|
2022-12-14 12:28:23 +01:00 |
|
Alejandro Celaya
|
92a83b82a0
|
Split short URL listing capabilities on its own repo and service
|
2022-12-13 19:37:02 +01:00 |
|
Alejandro Celaya
|
229dc93132
|
Fixed typo
|
2022-12-11 18:36:46 +01:00 |
|
Alejandro Celaya
|
c4f28b3a32
|
Renamed ShortUrl::fromMeta to ShortUrl::create
|
2022-12-11 18:24:47 +01:00 |
|
Alejandro Celaya
|
0c3523c34a
|
Fixed E2E test suites
|
2022-12-11 13:22:16 +01:00 |
|
Alejandro Celaya
|
0d7a0ee9ea
|
Fixed more coding styles
|
2022-12-11 13:11:43 +01:00 |
|
Alejandro Celaya
|
931bdb0cd7
|
Fixed coding styles
|
2022-12-11 13:03:19 +01:00 |
|
Alejandro Celaya
|
8807a78463
|
Improved performance when filtering out shortUrls which reached their limit by using a sub-query
|
2022-12-11 13:00:06 +01:00 |
|
Alejandro Celaya
|
d832133410
|
Enhanced db tests for expired short urls filtering
|
2022-12-11 12:33:17 +01:00 |
|
Alejandro Celaya
|
cdde59b543
|
Added db test for filtering of disabled short URLs
|
2022-12-11 11:41:37 +01:00 |
|
Alejandro Celaya
|
463dfe9729
|
Added support to filter out expired short URLs from list
|
2022-12-11 10:26:04 +01:00 |
|
Alejandro Celaya
|
805c8c87ba
|
Fixed nasty typo
|
2022-12-10 19:59:30 +01:00 |
|
Alejandro Celaya
|
c3ab871366
|
Exposed new short URLs list filtering params
|
2022-12-10 19:59:30 +01:00 |
|
Alejandro Celaya
|
42a5296f93
|
Added new params to short URLs list to filter out 'disabled' short ones
|
2022-12-10 19:59:30 +01:00 |
|
Alejandro Celaya
|
2047d6b772
|
Merge pull request #1621 from acelaya-forks/feature/default-domain-search
Feature/default domain search
|
2022-12-08 20:43:42 +01:00 |
|
Alejandro Celaya
|
6bce219eb3
|
Added test to cover searching short URLs by default domain
|
2022-12-08 20:32:48 +01:00 |
|
Alejandro Celaya
|
dfcac525bc
|
Enabled search by default domain
|
2022-12-08 20:22:50 +01:00 |
|
Alejandro Celaya
|
f41d947cf7
|
Ensured empty string is ignored as the domain during short URL creation
|
2022-12-07 19:06:05 +01:00 |
|
Alejandro Celaya
|
05d55c4000
|
Added one more case to cover import orphan visits when visits already exist
|
2022-12-05 14:48:24 +01:00 |
|
Alejandro Celaya
|
739f5eb421
|
Added test for orphan visits import
|
2022-12-05 14:42:26 +01:00 |
|
Alejandro Celaya
|
0aab1bdc4e
|
Added test for findMostRecentOrphanVisit
|
2022-12-04 20:42:28 +01:00 |
|
Alejandro Celaya
|
55c9773a02
|
Added logic to import orphan visits
|
2022-12-04 20:35:38 +01:00 |
|
Alejandro Celaya
|
4b66aaba5c
|
Updated to latest shlink-importer
|
2022-12-04 12:28:44 +01:00 |
|
Alejandro Celaya
|
f459a99e7e
|
Added db tests to phpstan checks
|
2022-10-24 20:14:48 +02:00 |
|
Alejandro Celaya
|
85e18a4754
|
Fixed all phpstan inspections on tests
|
2022-10-24 20:11:25 +02:00 |
|
Alejandro Celaya
|
1650499a38
|
Added more stricter types for mocks
|
2022-10-24 19:59:03 +02:00 |
|
Alejandro Celaya
|
51f243995a
|
Added stricter types for mocks
|
2022-10-24 19:53:13 +02:00 |
|
Alejandro Celaya
|
da658185c3
|
Fixed coding styles
|
2022-10-23 23:07:50 +02:00 |
|
Alejandro Celaya
|
257134cd80
|
Migrated VisitsForTagPaginatorAdapterTest to use PHPUnit mocks
|
2022-10-23 21:59:18 +02:00 |
|
Alejandro Celaya
|
a4373aee91
|
Migrated OrphanVisitsPaginatorAdapterTest to use PHPUnit mocks
|
2022-10-23 21:56:34 +02:00 |
|
Alejandro Celaya
|
7442905873
|
Migrated NonOrphanVisitsPaginatorAdapterTest to use PHPUnit mocks
|
2022-10-23 21:55:06 +02:00 |
|
Alejandro Celaya
|
d3af51f684
|
Migrated VisitToLocationHelperTest to use PHPUnit mocks
|
2022-10-23 21:24:30 +02:00 |
|
Alejandro Celaya
|
04419a7242
|
Migrated VisitLocatorTest to use PHPUnit mocks
|
2022-10-23 21:21:23 +02:00 |
|
Alejandro Celaya
|
a45d6e6b44
|
Migrated VisitsTrackerTest to use PHPUnit mocks
|
2022-10-23 21:08:58 +02:00 |
|
Alejandro Celaya
|
37b1306eb3
|
Migrated VisitsStatsHelperTest to use PHPUnit mocks
|
2022-10-23 21:05:13 +02:00 |
|
Alejandro Celaya
|
cff6573767
|
Migrated RequestTrackerTest to use PHPUnit mocks
|
2022-10-23 20:45:56 +02:00 |
|
Alejandro Celaya
|
a2f34e02ad
|
Migrated UrlValidatorTest to use PHPUnit mocks
|
2022-10-23 20:39:06 +02:00 |
|
Alejandro Celaya
|
796543d194
|
Migrated DoctrineBatchHelperTest to use PHPUnit mocks
|
2022-10-23 20:32:13 +02:00 |
|
Alejandro Celaya
|
3b25fb27fe
|
Migrated TagsPaginatorAdapterTest to use PHPUnit mocks
|
2022-10-23 20:28:45 +02:00 |
|
Alejandro Celaya
|
3b20f955ff
|
Migrated TagsInfoPaginatorAdapterTest to use PHPUnit mocks
|
2022-10-23 20:27:51 +02:00 |
|
Alejandro Celaya
|
c81ae9c40d
|
Migrated TagServiceTest to use PHPUnit mocks
|
2022-10-23 20:26:44 +02:00 |
|
Alejandro Celaya
|
5e02cfe375
|
Fixed coding styles
|
2022-10-23 18:29:32 +02:00 |
|
Alejandro Celaya
|
6e836b5fd9
|
Migrated PersistenceShortUrlRelationResolverTest to use PHPUnit mocks
|
2022-10-23 18:28:28 +02:00 |
|
Alejandro Celaya
|
8753e3a77f
|
Migrated ShortUrlRepositoryAdapterTest to use PHPUnit mocks
|
2022-10-23 18:17:29 +02:00 |
|
Alejandro Celaya
|
6a2227efc5
|
Removed all uinnecessary usages of equalsTo param constraint
|
2022-10-23 18:15:57 +02:00 |
|
Alejandro Celaya
|
1fbcea7a06
|
Migrated ExtraPathRedirectMiddlewareTest to use PHPUnit mocks
|
2022-10-23 17:53:09 +02:00 |
|
Alejandro Celaya
|
168c839cf1
|
Migrated TrimTrailingSlashMiddlewareTest to use PHPUnit mocks
|
2022-10-23 17:39:57 +02:00 |
|
Alejandro Celaya
|
162e913cc4
|
Migrated ShortUrlTitleResolutionHelperTest to use PHPUnit mocks
|
2022-10-23 17:38:04 +02:00 |
|
Alejandro Celaya
|
5aaf50d68e
|
Migrated ShortCodeUniquenessHelperTest to use PHPUnit mocks
|
2022-10-23 17:35:50 +02:00 |
|
Alejandro Celaya
|
d2f5be1d18
|
Migrated UrlShortenerTest to use PHPUnit mocks
|
2022-10-23 11:32:13 +02:00 |
|
Alejandro Celaya
|
36ab455a49
|
Migrated ShortUrlServiceTest to use PHPUnit mocks
|
2022-10-23 11:14:01 +02:00 |
|
Alejandro Celaya
|
ee8cab8455
|
Migrated ShortUrlResolverTest to use PHPUnit mocks
|
2022-10-23 11:09:40 +02:00 |
|
Alejandro Celaya
|
bd884e85d4
|
Migrated DeleteShortUrlServiceTest to use PHPUnit mocks
|
2022-10-23 11:03:47 +02:00 |
|
Alejandro Celaya
|
a78c59c11a
|
Fixed coding styles
|
2022-10-22 20:41:17 +02:00 |
|
Alejandro Celaya
|
173420c608
|
Migrated ImportedLinksProcessorTest to use PHPUnit mocks
|
2022-10-22 20:39:55 +02:00 |
|
Alejandro Celaya
|
10b0ec301b
|
Migrated ValidationExceptionTest to use PHPUnit mocks
|
2022-10-22 20:05:06 +02:00 |
|
Alejandro Celaya
|
1706a869d9
|
Migrated NotifyVisitToRedisTest to use PHPUnit mocks
|
2022-10-22 20:04:12 +02:00 |
|
Alejandro Celaya
|
d0393799d2
|
Migrated NotifyNewShortUrlToRedisTest to use PHPUnit mocks
|
2022-10-22 19:59:32 +02:00 |
|
Alejandro Celaya
|
739433ba8b
|
Migrated NotifyVisitToRabbitMqTest to use PHPUnit mocks
|
2022-10-22 19:05:34 +02:00 |
|
Alejandro Celaya
|
a15e9c29c8
|
Migrated NotifyNewShortUrlToRabbitMqTest to use PHPUnit mocks
|
2022-10-22 18:49:43 +02:00 |
|
Alejandro Celaya
|
dbe35cf567
|
Fixed coding styles
|
2022-10-22 10:03:28 +02:00 |
|
Alejandro Celaya
|
8298f9d491
|
Migrated NotifyVisitToMercureTest to use PHPUnit mocks
|
2022-10-22 10:03:05 +02:00 |
|
Alejandro Celaya
|
16a951b938
|
Migrated NotifyNewShortUrlToMercureTest to use PHPUnit mocks
|
2022-10-22 09:50:12 +02:00 |
|
Alejandro Celaya
|
51fcbfb3c2
|
Migrated UpdateGeoLiteDbTest to use PHPUnit mocks
|
2022-10-22 09:42:21 +02:00 |
|
Alejandro Celaya
|
e01e370d16
|
Migrated NotifyVisitToWebHooksTest to use PHPUnit mocks
|
2022-10-22 08:08:49 +02:00 |
|
Alejandro Celaya
|
736ac8ba90
|
Migrated LocateVisitTest to use PHPUnit mocks
|
2022-10-22 07:54:57 +02:00 |
|
Alejandro Celaya
|
d07104b8d9
|
Migrated LocateUnlocatedVisitsTest to use PHPUnit mocks
|
2022-10-22 07:34:38 +02:00 |
|
Alejandro Celaya
|
cad53e397a
|
Migrated CloseDbConnectionEventListenerTest to use PHPUnit mocks
|
2022-10-22 07:32:37 +02:00 |
|
Alejandro Celaya
|
3608a6d068
|
Migrated CloseDbConnectionEventListenerDelegatorTest to use PHPUnit mocks
|
2022-10-22 07:28:15 +02:00 |
|
Alejandro Celaya
|
bf0b58b344
|
Migrated NotFoundTypeResolverMiddlewareTest to use PHPUnit mocks
|
2022-10-21 19:32:25 +02:00 |
|
Alejandro Celaya
|
ff543b151c
|
Migrated NotFoundTrackerMiddlewareTest to use PHPUnit mocks
|
2022-10-21 19:29:02 +02:00 |
|
Alejandro Celaya
|
d842025835
|
Migrated NotFoundTemplateHandlerTest to use PHPUnit mocks
|
2022-10-21 19:25:29 +02:00 |
|
Alejandro Celaya
|
230e56370a
|
Migrated NotFoundRedirectHandlerTest to use PHPUnit mocks
|
2022-10-21 19:24:39 +02:00 |
|
Alejandro Celaya
|
a8514a9ae4
|
Migrated DomainServiceTest to use PHPUnit mocks
|
2022-10-21 19:01:41 +02:00 |
|
Alejandro Celaya
|
148f7a9cfe
|
Migrated CrawlingHelperTest to use PHPUnit mocks
|
2022-10-21 18:49:47 +02:00 |
|
Alejandro Celaya
|
29d50cabc2
|
Migrated NotFoundRedirectResolverTest to use PHPUnit mocks
|
2022-10-21 18:47:10 +02:00 |
|
Alejandro Celaya
|
a8f8297131
|
Migrated RedirectActionTest to use PHPUnit mocks
|
2022-10-21 18:44:55 +02:00 |
|
Alejandro Celaya
|
cd4b632d75
|
Migrated QrActionTest to use PHPUnit mocks
|
2022-10-21 18:39:22 +02:00 |
|
Alejandro Celaya
|
843754b7e7
|
Migrated PixelActionTest to use PHPUnit mocks
|
2022-10-21 18:32:34 +02:00 |
|
Alejandro Celaya
|
8cfa0b595c
|
Migrated to PHPUnit mocks in RobotsActionTest
|
2022-10-12 18:23:36 +02:00 |
|
Alejandro Celaya
|
3dda49dab4
|
Created middleware which ensures trailing slash and multi-segment features work properly together
|
2022-09-30 17:19:07 +02:00 |
|
Alejandro Celaya
|
0c6f8f1136
|
Refactored global entities into their own proper namespaces
|
2022-09-23 19:03:32 +02:00 |
|
Alejandro Celaya
|
9f9d011d46
|
Moved ShortCodeUniquenessHelper to ShortUrl\Helper namespace
|
2022-09-23 18:46:51 +02:00 |
|
Alejandro Celaya
|
e28b73c130
|
Refactored global services into their own proper namespaces
|
2022-09-23 18:42:38 +02:00 |
|
Alejandro Celaya
|
56f953ab2f
|
Refactored global validations into their own proper namespaces
|
2022-09-23 18:30:07 +02:00 |
|
Alejandro Celaya
|
3ad8be175c
|
Refactored global repositories into their own proper namespaces
|
2022-09-23 18:24:14 +02:00 |
|
Alejandro Celaya
|
f5f990511c
|
Refactored global models into their own proper namespaces
|
2022-09-23 18:05:17 +02:00 |
|
Alejandro Celaya
|
909e42b0be
|
Moved services related to geolocating visits to the Visit\Geolocation namespace
|
2022-09-23 14:50:26 +02:00 |
|
Alejandro Celaya
|
83b7d5a5f1
|
Extracted logic to geolocate a visit, handling possible domain errors
|
2022-09-18 18:44:01 +02:00 |
|
Alejandro Celaya
|
6f17f70137
|
Allowed to delay GeoLite2 db download on docker images
|
2022-09-18 17:00:03 +02:00 |
|
Alejandro Celaya
|
ef01754ad5
|
Added event dispatching to UpdateGeoLiteDb dispatcher so that it locates visits when file has just been created
|
2022-09-18 11:17:17 +02:00 |
|
Alejandro Celaya
|
eab9347522
|
Created enum to determine what was the result of updating a geolite DB
|
2022-09-18 10:31:14 +02:00 |
|
Alejandro Celaya
|
59bcd62717
|
Moved Geolocation services to its own namespace inside CLI module
|
2022-09-18 10:01:22 +02:00 |
|
Alejandro Celaya
|
8d244c8d34
|
Migrated UrlShortenerOptions to immutable object
|
2022-09-17 15:54:43 +02:00 |
|
Alejandro Celaya
|
42af057316
|
Migrated RedirectOptions to immutable object
|
2022-09-17 15:36:40 +02:00 |
|
Alejandro Celaya
|
8f68078835
|
Migrated RabbitMqOptions to immutable object
|
2022-09-17 13:56:59 +02:00 |
|
Alejandro Celaya
|
0c34032fd3
|
Migrated QrCodeOptions to immutable object
|
2022-09-17 13:45:09 +02:00 |
|
Alejandro Celaya
|
20f457a3e9
|
Migrated NotFoundRedirectOptions to immutable object
|
2022-09-17 13:32:40 +02:00 |
|
Alejandro Celaya
|
784908420e
|
Migrated DeleteShortUrlsOptions to immutable object
|
2022-09-17 13:04:49 +02:00 |
|
Alejandro Celaya
|
9685929824
|
Migrated AppOptions to immutable object
|
2022-09-17 13:01:28 +02:00 |
|
Alejandro Celaya
|
fe4b2c4ae4
|
Migrated TrackingOptions to immutable object
|
2022-09-17 12:57:04 +02:00 |
|
Alejandro Celaya
|
997289da02
|
Changed all public setUp methods in tests to be protected
|
2022-09-11 12:02:49 +02:00 |
|
Alejandro Celaya
|
f5138385be
|
Created new env var to programatically provide an initial API key
|
2022-09-11 10:45:03 +02:00 |
|
Alejandro Celaya
|
e6ee4ceae2
|
Simplified mapping of TagInfo objects
|
2022-09-08 20:50:11 +02:00 |
|
Alejandro Celaya
|
fe4329d730
|
Allowed trailing slashes support to be enabled for the short URLs route
|
2022-09-05 20:59:16 +02:00 |
|
Alejandro Celaya
|
846802c003
|
Slight improvements on RoadRunner config
|
2022-08-26 17:58:25 +02:00 |
|
Alejandro Celaya
|
e9ec32b3c3
|
Added support to dispatch async event listeners as RoadRunner jobs
|
2022-08-26 14:59:27 +02:00 |
|
Alejandro Celaya
|
a41835573b
|
Centralized prefix for problem detail types
|
2022-08-14 13:12:10 +02:00 |
|
Alejandro Celaya
|
905f51fbd0
|
Added logic to properly map all existing errors from v3 to v2 in the API
|
2022-08-13 17:15:04 +02:00 |
|
Alejandro Celaya
|
cd4fe4362b
|
Created middleware to keep backwards compatibility on errors when using v1 and 2 of the API
|
2022-08-13 16:50:19 +02:00 |
|
Alejandro Celaya
|
a2f9742cfc
|
Fix loading of config options as env vars
|
2022-08-08 19:23:16 +02:00 |
|
Alejandro Celaya
|
a03f32f521
|
Updated to latest shlink dependencies
|
2022-08-07 09:36:51 +02:00 |
|
Alejandro Celaya
|
16bd368a58
|
Centralized how routes are configured to support multi-segment slugs
|
2022-08-06 09:30:13 +02:00 |
|
Alejandro Celaya
|
fc0d99be41
|
Ensure filtering of custom-slug is different depending on the multi-sement lugsfeature flag
|
2022-08-05 08:38:05 +02:00 |
|
Alejandro Celaya
|
efe655f880
|
Enhanced ExtraPathRedirectMiddleware so that it supports multi-segment slugs
|
2022-08-04 17:03:08 +02:00 |
|
Alejandro Celaya
|
3d5ddce621
|
Ensured multi-segment feature flag affects how append_extra_path is checked
|
2022-08-04 16:10:54 +02:00 |
|
Alejandro Celaya
|
619999d4f8
|
Added feature flag to enable/disable multi-segment support
|
2022-08-04 11:49:33 +02:00 |
|
Alejandro Celaya
|
7acf27dd38
|
Replaced usage of deprecated methods in DateRange class
|
2022-08-04 11:27:33 +02:00 |
|