Alejandro Celaya
|
5a1a4f5594
|
Added support to configure domain redirects but taking into consideration the permissions on an API key
|
2021-08-02 20:49:39 +02:00 |
|
Alejandro Celaya
|
2ac7be4363
|
Extended DomainNotFoundException to allow creating from an authority
|
2021-08-02 20:49:39 +02:00 |
|
Alejandro Celaya
|
24a6a0c23f
|
Added test for DomainRedirectCommand
|
2021-07-22 20:48:58 +02:00 |
|
Alejandro Celaya
|
267d72a76c
|
Improved unit tests covering new not found redirects for domains capability
|
2021-07-22 17:49:37 +02:00 |
|
Alejandro Celaya
|
021cecc216
|
Created command that allows configuring not found redirects for every domain
|
2021-07-21 21:09:33 +02:00 |
|
Alejandro Celaya
|
4d48482d1e
|
Added support to define differnet not-found redirects per domain
|
2021-07-21 09:28:21 +02:00 |
|
Alejandro Celaya
|
eabaa94e06
|
Created ExtraPathRedirectMiddleware test
|
2021-07-15 19:37:09 +02:00 |
|
Alejandro Celaya
|
0096a778ac
|
Created RequestTracker test
|
2021-07-15 17:43:29 +02:00 |
|
Alejandro Celaya
|
050f83e3bb
|
Wrapped logic to track requests to a new RequestTracker service
|
2021-07-15 17:23:09 +02:00 |
|
Alejandro Celaya
|
265e8cdeaf
|
Refactored tracking actions
|
2021-07-15 13:28:31 +02:00 |
|
Alejandro Celaya
|
fe5460e0c5
|
Created ShortUrlRedirectBuilder test
|
2021-07-14 16:44:21 +02:00 |
|
Alejandro Celaya
|
d4cad337fc
|
Created component wrapping the logic to determine what's the URL to redirect to for a ShortUrl
|
2021-07-14 16:36:03 +02:00 |
|
Alejandro Celaya
|
d6e155d874
|
Extracted logic to determine QR code params to its own data object
|
2021-07-13 13:46:01 +02:00 |
|
Alejandro Celaya
|
9c6ba4bc61
|
More PHP 8 syntactic sugar
|
2021-05-23 12:37:53 +02:00 |
|
Alejandro Celaya
|
c01121d61a
|
Added nullsafe operator to simplify conditions
|
2021-05-23 12:31:10 +02:00 |
|
Alejandro Celaya
|
e0f0bb5523
|
Migrated all constructor props to property promotion when possible
|
2021-05-23 11:57:31 +02:00 |
|
Alejandro Celaya
|
5e6d2881bc
|
Used ShorturlIdentifier model whenever possible
|
2021-05-23 08:41:42 +02:00 |
|
Alejandro Celaya
|
cd19876419
|
Removed methods to create tags and domains with lock, as they do not really lock as expected
|
2021-05-23 08:21:40 +02:00 |
|
Alejandro Celaya
|
f82e103bc5
|
Added locks to tag and domain creation during short URL creation
|
2021-05-22 22:06:40 +02:00 |
|
Alejandro Celaya
|
3ff4ac84c4
|
Added locking to short URL creation when checking if URL exists
|
2021-05-22 22:06:40 +02:00 |
|
Alejandro Celaya
|
db3c5a3031
|
Added new models to pass to repositories when listing visits of any kind
|
2021-05-22 20:32:30 +02:00 |
|
Alejandro Celaya
|
6327ed814a
|
Added new models to pass to repositories when counting visits of any kind
|
2021-05-22 20:16:32 +02:00 |
|
Alejandro Celaya
|
9fa32b5b6b
|
Added detection of visits from potential bots
|
2021-05-22 15:09:14 +02:00 |
|
Alejandro Celaya
|
3ef02d46c0
|
Added logic to resolve crawlable short codes
|
2021-05-22 09:34:42 +02:00 |
|
Alejandro Celaya
|
348e34d52e
|
Added new crawlable flag to Short URLs
|
2021-05-22 07:35:47 +02:00 |
|
Alejandro Celaya
|
7280b48cdc
|
Created action to dynamically build the robots.txt
|
2021-05-22 07:15:34 +02:00 |
|
Alejandro Celaya
|
f0dc32b6e5
|
Added logic for new tracking options
|
2021-05-16 09:53:44 +02:00 |
|
Alejandro Celaya
|
d423d18249
|
Defined new structure for tracking config, together with new options
|
2021-05-16 09:30:15 +02:00 |
|
Alejandro Celaya
|
e9a5284dde
|
Encapsulated logic to get rid of nested ifs
|
2021-04-18 17:07:56 +02:00 |
|
Alejandro Celaya
|
b277f431c2
|
Added test covering imported short URLs with visits
|
2021-04-18 12:44:02 +02:00 |
|
Alejandro Celaya
|
9a78d1585d
|
Ensured only pending visits are imported when processing a short URL which already has imported visits
|
2021-04-11 20:00:08 +02:00 |
|
Alejandro Celaya
|
1efa973507
|
Updated ImportedLinksProcessor to support importing visits if provided
|
2021-04-11 11:44:10 +02:00 |
|
Alejandro Celaya
|
28c06de685
|
Fixed issue when trying to persist several short URLs which include the same new tag/domain at once
|
2021-04-10 11:59:43 +02:00 |
|
Alejandro Celaya
|
823573cea7
|
Updated PersistenceShortUrlRelationResolver to prevent duplicated tags
|
2021-04-10 10:16:09 +02:00 |
|
Alejandro Celaya
|
7b4456e73f
|
Ensured events triggered as a result of a new visit are never skipped
|
2021-04-08 14:09:26 +02:00 |
|
Alejandro Celaya
|
74ea5969be
|
Created new listener to update the GeoLite db after a visit occurs
|
2021-04-07 16:29:29 +02:00 |
|
Alejandro Celaya
|
c4718e7523
|
Extended error handling on LocateVisit handler
|
2021-04-07 12:53:53 +02:00 |
|
Alejandro Celaya
|
5de706e0fe
|
Fixed LocateVisitTest
|
2021-04-07 11:52:50 +02:00 |
|
Alejandro Celaya
|
0621ae7735
|
Ensured visits tracking is run transactionally together with the event dispatched afterwards
|
2021-04-07 11:33:23 +02:00 |
|
Alejandro Celaya
|
d72b9cf646
|
Updated to symfony/mercure 0.5
|
2021-04-02 09:46:02 +02:00 |
|
Alejandro Celaya
|
0a5c265b12
|
Extracted ApiKey metadata to the ApiKeyMeta object
|
2021-03-14 09:59:35 +01:00 |
|
Alejandro Celaya
|
e093480a5b
|
Fixed API tests
|
2021-02-26 20:24:57 +01:00 |
|
Alejandro Celaya
|
8ad34357d3
|
Added User-Agent to UrlValidator, so that remote servers don't consider Shlink a bot
|
2021-02-18 21:27:46 +01:00 |
|
Alejandro Celaya
|
7d6d8e3a68
|
Added support to publish orphan visits in mercure
|
2021-02-11 22:12:38 +01:00 |
|
Alejandro Celaya
|
2fc6fb0a9a
|
Added option to disable orphan visitstracking
|
2021-02-10 20:09:25 +01:00 |
|
Alejandro Celaya
|
3497165ebd
|
Created OrphanVisitsPaginatorAdapterTest
|
2021-02-09 23:34:29 +01:00 |
|
Alejandro Celaya
|
d5794a3dcb
|
Created OrphanVisitDataTransformerTest
|
2021-02-09 23:09:42 +01:00 |
|
Alejandro Celaya
|
bd9ec53e7b
|
Added test for VisitsStatsHelper::orphanVisits
|
2021-02-09 23:09:42 +01:00 |
|
Alejandro Celaya
|
1fbcb44136
|
Enhanced VisitsTrackerTest
|
2021-02-09 23:09:42 +01:00 |
|
Alejandro Celaya
|
ab9042db24
|
Ensured orphan visits are located ASAP when using swoole
|
2021-02-09 23:09:42 +01:00 |
|
Alejandro Celaya
|
b01487ac91
|
Ensured IP address is resolved when tracking orphan visits
|
2021-02-09 23:09:42 +01:00 |
|
Alejandro Celaya
|
5278d7668c
|
Added orphan visits count to visits stats endpoint
|
2021-02-09 23:09:42 +01:00 |
|
Alejandro Celaya
|
d2e0413a48
|
Added NotFoundTrackerMiddlewareTest
|
2021-02-09 23:09:42 +01:00 |
|
Alejandro Celaya
|
0e165bc7e0
|
Created NotFoundTypeResolverMiddlewareTest
|
2021-02-09 23:09:42 +01:00 |
|
Alejandro Celaya
|
15061d3e0d
|
Created new middlewares to track not found visits
|
2021-02-09 23:09:42 +01:00 |
|
Alejandro Celaya
|
36be44e7b5
|
Moved VisitsTracker service to Visit namespace
|
2021-02-09 23:09:42 +01:00 |
|
Alejandro Celaya
|
1b4e62b823
|
Separated methods to track visits and list visits
|
2021-02-09 23:09:42 +01:00 |
|
Alejandro Celaya
|
12b07bb0ac
|
Created named constructors for Visit entity and added tracking of the visited URL
|
2021-02-09 23:09:42 +01:00 |
|
Alejandro Celaya
|
383fde488b
|
Added support to define the margin when generating the QR codes
|
2021-02-07 08:32:12 +01:00 |
|
Alejandro Celaya
|
da65c05c4f
|
Added double check when parsing build epoch from the GeoLite db file in case it is not an integer
|
2021-02-06 21:38:09 +01:00 |
|
Alejandro Celaya
|
d386e1405c
|
Ensure request is not performed if both title resolution and URL validation are disabled
|
2021-02-05 18:22:54 +01:00 |
|
Alejandro Celaya
|
608742c2e2
|
Added helper service to avoid code duplication when resolving short URLs titles
|
2021-02-05 17:59:34 +01:00 |
|
Alejandro Celaya
|
71e91a541f
|
Allowed to resolve title during short URL edition if it has to
|
2021-02-04 23:02:26 +01:00 |
|
Alejandro Celaya
|
2640c7b43c
|
Updated to a shlink-importer version that supports titles
|
2021-02-04 15:24:27 +01:00 |
|
Alejandro Celaya
|
7824dddef7
|
Added tracking to tell if short URL titles were autogenerated or not
|
2021-02-03 19:22:47 +01:00 |
|
Alejandro Celaya
|
0ef1e347e7
|
Enhanced UrlShortenerTest
|
2021-02-03 13:28:51 +01:00 |
|
Alejandro Celaya
|
bfba05c863
|
Enhanced UrlValidatorTest
|
2021-02-03 11:53:08 +01:00 |
|
Alejandro Celaya
|
8b54098299
|
Added option to automatically resolve url titles
|
2021-02-03 11:07:47 +01:00 |
|
Alejandro Celaya
|
430c407106
|
Added support for an optional title field in short URLs
|
2021-02-02 21:20:09 +01:00 |
|
Alejandro Celaya
|
8fa0c95f5a
|
Ensured base path is honored when stringifying short URLs with a custom domain
|
2021-02-01 23:18:52 +01:00 |
|
Alejandro Celaya
|
4b4a859722
|
Created ShortUrlStringifierTest
|
2021-02-01 23:18:52 +01:00 |
|
Alejandro Celaya
|
9cddedcdba
|
Extracted logic to stringify ShortUrls to its own service
|
2021-02-01 23:18:52 +01:00 |
|
Alejandro Celaya
|
ef12e90ae7
|
Removed non-used deprecated method and added missing tests
|
2021-01-31 13:05:21 +01:00 |
|
Alejandro Celaya
|
cdfd14e63f
|
Deprecated action and endpoint to edit short URL tags
|
2021-01-31 12:24:26 +01:00 |
|
Alejandro Celaya
|
977058d219
|
Updated short URL edition so that it supports editing tags
|
2021-01-31 12:12:21 +01:00 |
|
Alejandro Celaya
|
c58fa586e1
|
Removed use of deprecated methods in DB tests
|
2021-01-31 11:51:00 +01:00 |
|
Alejandro Celaya
|
1cd6fdeede
|
Centralized logic to normalize tag names and removed references to deprecated setTags method in unit tests
|
2021-01-31 11:09:00 +01:00 |
|
Alejandro Celaya
|
82091c7951
|
Added logic to resolve tags during short URL creation through ShortUrlRelationResolver
|
2021-01-31 10:53:18 +01:00 |
|
Alejandro Celaya
|
7e90fd45a7
|
Renamed ShortUrlInputFilter and added named constructors to it
|
2021-01-31 07:47:58 +01:00 |
|
Alejandro Celaya
|
063ee9c195
|
Inlcuded tags as part of the ShortUrlMeta
|
2021-01-30 19:17:12 +01:00 |
|
Alejandro Celaya
|
07b12fac3c
|
Refactored short URL creation so that the long URL is part of the ShortUrlMeta
|
2021-01-30 14:18:44 +01:00 |
|
Alejandro Celaya
|
55ddc4ae75
|
Replaced laminas-paginator with pagerfanta
|
2021-01-23 14:37:34 +01:00 |
|
Alejandro Celaya
|
2e8f5202d0
|
Moved event objects to a sub-namespace inside Core\EventDispatcher
|
2021-01-17 11:42:35 +01:00 |
|
Alejandro Celaya
|
9e9d213f20
|
Added roles info to api key generation and api key list
|
2021-01-11 16:32:59 +01:00 |
|
Alejandro Celaya
|
c49a0ca040
|
Added list of roles to print after an API is generated
|
2021-01-11 15:20:26 +01:00 |
|
Alejandro Celaya
|
1f2e16184c
|
Extracted function to render arrays from inside ValidationException
|
2021-01-10 20:28:52 +01:00 |
|
Alejandro Celaya
|
c9ff2b3834
|
Updated services required to initialize API keys with roles
|
2021-01-10 20:05:14 +01:00 |
|
Alejandro Celaya
|
5283ee2c6b
|
Moved common data provider for core unit tests to trait
|
2021-01-10 09:31:51 +01:00 |
|
Alejandro Celaya
|
14eeb91c58
|
Added db test for VisitRepository::countVisits
|
2021-01-09 17:54:04 +01:00 |
|
Alejandro Celaya
|
caa1ae0de8
|
Added all missing unit tests covering API key permissions
|
2021-01-09 12:38:06 +01:00 |
|
Alejandro Celaya
|
a8b68f07b5
|
Ensured delete/rename tags cannot be done with non-admin API keys
|
2021-01-06 17:31:49 +01:00 |
|
Alejandro Celaya
|
b5710f87e2
|
Created value object to wrap the renaming of a tag
|
2021-01-06 13:11:28 +01:00 |
|
Alejandro Celaya
|
4b67d41362
|
Applied API role specs to short URL creation
|
2021-01-04 20:15:42 +01:00 |
|
Alejandro Celaya
|
19834f6715
|
Applied API role specs to domains list
|
2021-01-04 15:55:59 +01:00 |
|
Alejandro Celaya
|
262a06f624
|
Renamed method to be more consistent to what it actually does
|
2021-01-04 15:16:51 +01:00 |
|
Alejandro Celaya
|
a01e0ba337
|
Changed logic to list domains to centralize conditions in service
|
2021-01-04 15:02:37 +01:00 |
|
Alejandro Celaya
|
29cdfaed39
|
Changed ShortUrlMeta so that it expects an ApiKey instance instead of the key as string
|
2021-01-04 13:32:44 +01:00 |
|
Alejandro Celaya
|
24f7fb9c4f
|
Applied API role specs to tags list without stats
|
2021-01-04 12:44:29 +01:00 |
|
Alejandro Celaya
|
68c601a5a8
|
Applied API role specs to global visits
|
2021-01-04 11:27:55 +01:00 |
|
Alejandro Celaya
|
8aa6bdb934
|
Applied API role specs to tag visits
|
2021-01-04 11:14:28 +01:00 |
|