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
|
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
|
846802c003
|
Slight improvements on RoadRunner config
|
2022-08-26 17:58:25 +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
|
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
|
7acf27dd38
|
Replaced usage of deprecated methods in DateRange class
|
2022-08-04 11:27:33 +02:00 |
|
Alejandro Celaya
|
ba517eeeb5
|
Moved routes config together, and ensure they are loaded last
|
2022-08-04 11:14:26 +02:00 |
|
Alejandro Celaya
|
0a220bbc7a
|
Allowed slashes on custom slugs during short URL creation
|
2022-08-01 17:32:54 +02:00 |
|
Alejandro Celaya
|
73ae754aa7
|
Created NotifyVisitToRedisTest
|
2022-07-28 10:36:52 +02:00 |
|
Alejandro Celaya
|
20a6e7e210
|
Created NotifyNewShortUrlToRedisTest
|
2022-07-28 10:33:26 +02:00 |
|
Alejandro Celaya
|
e36c4d397c
|
Moved duplicated code in visit listeners to an abstract class
|
2022-07-27 18:18:36 +02:00 |
|
Alejandro Celaya
|
26037327f9
|
Moved duplicated code in short URL listeners to an abstract class
|
2022-07-27 18:06:47 +02:00 |
|
Alejandro Celaya
|
da6aa1d697
|
Integrated PublishUpdatesGenerator in NotifyVisitToRabbitMq listener
|
2022-07-27 17:41:48 +02:00 |
|
Alejandro Celaya
|
f071df325d
|
Fixed NotifyNewShortUrlToRabbitMqTest
|
2022-07-27 10:26:18 +02:00 |
|
Alejandro Celaya
|
3c042c4011
|
Integrated PublishUpdatesGenerator in NotifyNewShortUrlToRabbitMq listener
|
2022-07-27 10:18:28 +02:00 |
|
Alejandro Celaya
|
7e8109caa3
|
Renamed MercureUpdatesGenerator to PublishingUpdatesGenerator to make it general purpose
|
2022-07-27 09:38:47 +02:00 |
|
Alejandro Celaya
|
1b089749c0
|
Migrated mercure event listeners to use new publishing helper from shlink-common
|
2022-07-26 12:17:37 +02:00 |
|
Alejandro Celaya
|
791d6b7e57
|
Updated to latest common, with unified publishing API
|
2022-07-26 12:07:27 +02:00 |
|
Alejandro Celaya
|
cd27a72982
|
Reduced duplicated code in NotifyNewShortUrlToRabbitMqTest
|
2022-07-25 12:31:32 +02:00 |
|
Alejandro Celaya
|
19b0f0d7dc
|
Extended NotifyVisitToRabbitMqTest covering legacy and non-legacy use-cases
|
2022-07-25 12:30:28 +02:00 |
|
Alejandro Celaya
|
6ce2049935
|
Added support for legacy and new publishing of visits in RabbitMQ
|
2022-07-25 12:08:22 +02:00 |
|
Alejandro Celaya
|
019bd4dec8
|
Created NotifyNewShortUrlToMercureTest
|
2022-07-25 09:30:25 +02:00 |
|
Alejandro Celaya
|
074bfe3db2
|
Updated MercureUpdatesGeneratorTest
|
2022-07-25 09:02:05 +02:00 |
|
Alejandro Celaya
|
97d24d76d8
|
Fixed new short URL event payload to RabbitMQ, and started to add logic for Mercure
|
2022-07-24 12:37:57 +02:00 |
|
Alejandro Celaya
|
fc6b4c12b2
|
Configured publishing of new short URL events in RabbitMQ
|
2022-07-24 11:07:20 +02:00 |
|
Alejandro Celaya
|
405c6de591
|
Created NotifyNewShortUrlToRabbitMq test
|
2022-07-24 10:53:42 +02:00 |
|
Alejandro Celaya
|
67d91d5fc5
|
Migrated rabbit integration to RabbitMqPublishingHelper from shlink-common
|
2022-07-24 10:12:26 +02:00 |
|
Alejandro Celaya
|
f832c56adb
|
Moved Mercure and RabbitMq event listeners to their own subnamespaces
|
2022-07-21 20:07:28 +02:00 |
|
Alejandro Celaya
|
ed5816d464
|
Fixed merge conflicts
|
2022-06-04 11:43:02 +02:00 |
|
Alejandro Celaya
|
ec17eb3fbc
|
Ensured html entities are parsed when auto-resolving titles
|
2022-05-22 08:29:26 +02:00 |
|
Alejandro Celaya
|
358b600713
|
Fixed merge conflicts
|
2022-05-09 08:21:19 +02:00 |
|
Alejandro Celaya
|
18f656fed2
|
Changed logic when resolving the title of a URL, to ensure only html content is tried to be downloaded, and only until the title tag has been parsed
|
2022-05-01 11:48:20 +02:00 |
|
Alejandro Celaya
|
eea76999b2
|
Ensured URL validation is doe via HEAD method when the title does not need to be resolved
|
2022-05-01 09:51:15 +02:00 |
|
Alejandro Celaya
|
6ada704bc3
|
Moved TagsMode to its own enum
|
2022-04-23 18:56:27 +02:00 |
|
Alejandro Celaya
|
404455928e
|
Converted visit types into enum
|
2022-04-23 18:19:16 +02:00 |
|
Alejandro Celaya
|
bca3e62ced
|
Updated to readonly public props on as many models as possible
|
2022-04-23 14:00:47 +02:00 |
|
Alejandro Celaya
|
54a23cc7fa
|
Converted EnvVars to enum
|
2022-04-23 12:44:17 +02:00 |
|
Alejandro Celaya
|
99b4f9f4dd
|
Improved VisitsStatsHelperTest covering visitsForDomain method
|
2022-04-23 11:02:51 +02:00 |
|
Alejandro Celaya
|
9f6ffc7186
|
Added errorhandling for individual imported URLs, so that one failing doe snot make the whole process fail
|
2022-04-18 14:45:37 +02:00 |
|
Alejandro Celaya
|
3db8a65ddb
|
Fixed test
|
2022-04-14 16:00:15 +02:00 |
|
Alejandro Celaya
|
21534b78cb
|
Updated to latest shlink-importer, with support to import on a specific domain for YOURLS
|
2022-04-13 12:40:21 +02:00 |
|
Alejandro Celaya
|
613bdd82b0
|
Ensured base path is not prefixed more than it should
|
2022-03-14 19:26:02 +01:00 |
|
Alejandro Celaya
|
d0fa6f7e03
|
Added missing test covering URL validation with valid URL but title resolutio is disabled
|
2022-02-01 19:44:14 +01:00 |
|
Alejandro Celaya
|
9ea8f3b590
|
Fixed URL validation still being true by default
|
2022-02-01 19:12:53 +01:00 |
|
Alejandro Celaya
|
8adb6596fb
|
Refactored TagInfo to wrap the raw tag name instead of a Tag entity
|
2022-01-23 09:37:02 +01:00 |
|
Alejandro Celaya
|
7202605fc8
|
Created EnvVarsTest
|
2022-01-20 20:40:34 +01:00 |
|
Alejandro Celaya
|
dc430bae10
|
Refactored method in ShortUrlsRepository
|
2022-01-17 20:21:35 +01:00 |
|
Alejandro Celaya
|
661b07e12f
|
Refactored ShortUrlRepository to wrap args into DTOs
|
2022-01-17 20:10:41 +01:00 |
|
Alejandro Celaya
|
492eba3a8b
|
Fixed duplicated slashes generated in path when doing not-found redirects with placeholders
|
2022-01-16 15:54:22 +01:00 |
|
Alejandro Celaya
|
77fee1390f
|
Renamed class to a more appropriate name
|
2022-01-16 15:41:20 +01:00 |
|
Alejandro Celaya
|
bfb54189b8
|
Moved some config to the proper namespace, now that config is no longer part of the public contract
|
2022-01-16 15:34:13 +01:00 |
|
Alejandro Celaya
|
7c1f705e64
|
Created NonOrphanVisitsPaginatorAdapter test
|
2022-01-16 12:29:36 +01:00 |
|
Alejandro Celaya
|
61618250ec
|
Renamed countVisits to countNonOrphanVisits, and updated its signature to expect a VisitsCountFiltering DTO
|
2022-01-16 11:15:39 +01:00 |
|
Alejandro Celaya
|
60c0ca3ae5
|
Changed VisitsCountFiltering and VisitsListFiltering so that they encapsulate an ApiKey instead of a Spec
|
2022-01-16 10:56:37 +01:00 |
|
Alejandro Celaya
|
f0fd947046
|
Moved existing paginator adapters that are related with visits to the Visits namespace
|
2022-01-10 22:16:33 +01:00 |
|
Alejandro Celaya
|
db4ef328b1
|
Renamed some visits paginator adapters for consistency
|
2022-01-10 20:26:33 +01:00 |
|
Alejandro Celaya
|
45de3f0128
|
Ensured emojis in short URLs are not URL-encoded
|
2022-01-10 11:13:16 +01:00 |
|
Alejandro Celaya
|
41d3826c1a
|
Ensured bars are replaced by dashes in custom slugs
|
2022-01-10 10:43:20 +01:00 |
|
Alejandro Celaya
|
e47c90c645
|
Simplified how the custom slugs are processed, allowing more characters in the process
|
2022-01-09 21:02:23 +01:00 |
|
Alejandro Celaya
|
1b51a1aedd
|
Added ordering support for tags list when not requesting stats
|
2022-01-09 13:31:08 +01:00 |
|
Alejandro Celaya
|
2abcaf02e2
|
Standardized ordering field handling and added validation for short URLs list
|
2022-01-09 11:23:27 +01:00 |
|
Alejandro Celaya
|
d0c9f5a776
|
Fixed merge conflicts
|
2022-01-08 17:40:49 +01:00 |
|
Alejandro Celaya
|
38bea6c086
|
Added edge case tests for SHortUrlMetaTest on title field
|
2022-01-07 14:07:07 +01:00 |
|
Alejandro Celaya
|
562763199a
|
Ensured URL titles are trimmed to avoid error when persisted in database
|
2022-01-07 13:13:45 +01:00 |
|
Alejandro Celaya
|
b3863a3e10
|
Improved TagServiceTest, covering tagsInfo method with params
|
2022-01-06 11:36:08 +01:00 |
|
Alejandro Celaya
|
af1cf806f0
|
Created tag paginator adapter tests
|
2022-01-06 10:55:57 +01:00 |
|
Alejandro Celaya
|
e998c8434d
|
Extracted tags filtering params to a DTO
|
2022-01-06 09:50:43 +01:00 |
|
Alejandro Celaya
|
4b90cf93d3
|
Created DB-level paginator for tags with stats
|
2022-01-05 23:44:14 +01:00 |
|
Alejandro Celaya
|
3dd4e33758
|
Created DB-level paginator for tags without stats
|
2022-01-05 23:30:35 +01:00 |
|
Alejandro Celaya
|
775f58f972
|
Added support for pagination in tags lists
|
2022-01-05 19:12:08 +01:00 |
|
Alejandro Celaya
|
103af2e2c1
|
Added support for a new tagsMode param when listing short URLs
|
2022-01-04 12:11:47 +01:00 |
|
Alejandro Celaya
|
18b4caa55e
|
Fixed merge conflicts
|
2021-12-21 14:48:06 +01:00 |
|
Alejandro Celaya
|
6eac079440
|
Ensured EM is closed and not cleared after running an async task
|
2021-12-21 14:10:06 +01:00 |
|
Alejandro Celaya
|
1ff241411b
|
Removed everything that was deprecated
|
2021-12-14 22:21:53 +01:00 |
|
Alejandro Celaya
|
8e5730f374
|
Renamed Rabbit instances to use RabbitMq
|
2021-12-12 10:32:57 +01:00 |
|
Alejandro Celaya
|
cb1705b6e8
|
Created NotifyVisitToRabbitTest
|
2021-12-11 22:18:46 +01:00 |
|
Alejandro Celaya
|
de2d87a6d9
|
Unified jobs in ci pipeline as much as possible
|
2021-12-11 10:26:23 +01:00 |
|
Alejandro Celaya
|
9752abff19
|
Refactored method in DomainRepo, as one fo their arguments was no longer used
|
2021-12-09 12:43:49 +01:00 |
|
Alejandro Celaya
|
ee43e68a57
|
Changed behavior of domains list so that it does not return configured redirects as redirects for default domain
|
2021-12-09 12:32:53 +01:00 |
|
Alejandro Celaya
|
5e722c830f
|
Allowed to set redirects for default domain via command line or API
|
2021-12-07 21:13:47 +01:00 |
|
Alejandro Celaya
|
813ae71aad
|
Added test checking if auto margin is added to QR codes
|
2021-12-06 18:06:29 +01:00 |
|
Alejandro Celaya
|
a66ddabe8a
|
Added domain to DeleteShortUrlException
|
2021-11-30 21:38:09 +01:00 |
|
Alejandro Celaya
|
c7a621cb31
|
Removed transactionality when dispatching async events, as they run in different processes with different db connections
|
2021-10-23 13:22:42 +02:00 |
|
Alejandro Celaya
|
ed1d886f01
|
Added option to disable tracking based on IP address patterns
|
2021-10-10 22:00:22 +02:00 |
|
Alejandro Celaya
|
d16fda3f16
|
Added option to send orphan visits to webhooks
|
2021-10-09 10:53:21 +02:00 |
|
Alejandro Celaya
|
c718b94937
|
Fixed crash when notifying orphan visits to a webhook
|
2021-10-09 10:35:37 +02:00 |
|
Alejandro Celaya
|
994a28f31d
|
Ensured NotFoundRedirectResolver replaces placeholders from the URL
|
2021-10-03 16:45:13 +02:00 |
|
Alejandro Celaya
|
36e740f4cc
|
Added logic to forward path and domain to not-found redirects when they contain placeholders
|
2021-10-02 17:30:25 +02:00 |
|
Alejandro Celaya
|
e21f9dd1fb
|
Added forwardQuery prop to the SHortUrl serialization
|
2021-10-02 10:31:23 +02:00 |
|
Alejandro Celaya
|
74a08b86ce
|
Estended ShortUrlRedirectionBuilderTest covering short URLS withput query forwarding
|
2021-10-02 10:16:56 +02:00 |
|
Alejandro Celaya
|
6a1ee2b894
|
Added new config to set custom defaults for QR codes
|
2021-09-26 13:25:02 +02:00 |
|
Alejandro Celaya
|
cbec4a4e81
|
Moved constants to its own file inside config folder
|
2021-09-26 11:26:26 +02:00 |
|
Alejandro Celaya
|
c39e1e649d
|
Reolled-back logic that would have made domains with no specific redirects to not fall back to the default redirects
|
2021-09-26 11:10:00 +02:00 |
|
Alejandro Celaya
|
7db6136436
|
Simplified how the not-found redirects are resolved
|
2021-09-26 09:40:24 +02:00 |
|
Alejandro Celaya
|
cd06cea153
|
Fixed merge conflicts
|
2021-08-15 19:32:27 +02:00 |
|
Alejandro Celaya
|
3e8ce80f80
|
Fixed numeric query params being replaced by 0 in long URLs
|
2021-08-15 19:13:26 +02:00 |
|
Alejandro Celaya
|
9a31f53d4d
|
Updated to coding standard v2.2.0
|
2021-08-05 19:47:17 +02:00 |
|
Alejandro Celaya
|
883ac1007a
|
Updated to provisional hero-common v4.0
|
2021-08-04 18:46:19 +02:00 |
|
Alejandro Celaya
|
40a7d5a112
|
Documented error when trying to edit default domain redirects through endpoint
|
2021-08-03 18:33:50 +02:00 |
|
Alejandro Celaya
|
7c06633a67
|
Ensured default domain redirects cannot be edited through regular approach
|
2021-08-03 18:28:09 +02:00 |
|
Alejandro Celaya
|
9f25979b4c
|
Added validation to not found redirects for domain
|
2021-08-03 14:08:36 +02:00 |
|
Alejandro Celaya
|
6860855c71
|
Prevent double flush when editing domain redirects
|
2021-08-03 09:55:21 +02:00 |
|
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 |
|