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 |
|
Alejandro Celaya
|
4a1e7b761a
|
Applied API role specs to short URL visits
|
2021-01-03 17:48:32 +01:00 |
|
Alejandro Celaya
|
25ee9b5daf
|
Applied API role specs to single short URL tags edition
|
2021-01-03 16:50:47 +01:00 |
|
Alejandro Celaya
|
fff10ebee4
|
Applied API role specs to single short URL edition
|
2021-01-03 16:41:44 +01:00 |
|
Alejandro Celaya
|
dc08286a72
|
Applied API role specs to single short URL resolution
|
2021-01-03 13:33:07 +01:00 |
|
Alejandro Celaya
|
940383646b
|
Applied API role specs to short URLs list
|
2021-01-03 13:05:21 +01:00 |
|
Alejandro Celaya
|
ecf22ae4b6
|
Added happyr/doctrine-specification to support dunamically applying specs to queries
|
2021-01-02 17:14:42 +01:00 |
|
Alejandro Celaya
|
6bedca4ee6
|
Added more tests covering unicode in custom slugs
|
2020-12-02 18:45:57 +01:00 |
|
Alejandro Celaya
|
4f1ab977a1
|
#917 Added tests covering the different ways to provide sizes to the QR codes
|
2020-11-27 17:42:33 +01:00 |
|
Alejandro Celaya
|
39bda5113b
|
#912 Fixed unit tests
|
2020-11-22 18:11:31 +01:00 |
|
Alejandro Celaya
|
49ea5cc78b
|
#912 Removed dependency on league/plates
|
2020-11-22 18:03:27 +01:00 |
|
Alejandro Celaya
|
259c52a698
|
#867 Ensured status code config is honored when doing not-found redirects
|
2020-11-10 18:08:25 +01:00 |
|
Alejandro Celaya
|
fe4e171ecb
|
Removed unused mock
|
2020-11-07 10:30:25 +01:00 |
|
Alejandro Celaya
|
7c9f572eb1
|
Deleted old domain resolvers and added tests for new short url relation resolvers
|
2020-11-07 09:49:09 +01:00 |
|
Alejandro Celaya
|
2732b05834
|
Added mechanisms to be able to provide the API key when creating a short URL
|
2020-11-07 09:34:10 +01:00 |
|
Alejandro Celaya
|
97f89bcede
|
Simplified transactional URL shortening
|
2020-11-06 20:05:57 +01:00 |
|
Alejandro Celaya
|
1621f3a943
|
Updated dependencies
|
2020-11-02 11:53:14 +01:00 |
|
Alejandro Celaya
|
de7096010e
|
Created DoctrineBatchHelperTest
|
2020-10-25 13:30:18 +01:00 |
|
Alejandro Celaya
|
03a9697298
|
Created ImportedLinksProcessorTest
|
2020-10-25 13:20:34 +01:00 |
|
Alejandro Celaya
|
786e4f642b
|
Moved short code uniqueness checks to external helper class that is used in UrlShortener and ImportedLinksProcessor
|
2020-10-25 11:16:42 +01:00 |
|
Alejandro Celaya
|
b1a073b1ab
|
Ensured uniqueness on imported short URLs short code
|
2020-10-25 10:26:11 +01:00 |
|
Daniel Londero
|
065d314608
|
Invoke PHPUnit's assertions statically
|
2020-10-04 00:35:14 +02:00 |
|
Alejandro Celaya
|
450eea64aa
|
Added support for port option in SimplifiedConfigParser
|
2020-10-03 11:54:31 +02:00 |
|
Alejandro Celaya
|
24aab5cc0e
|
Created unit tests for new Domain-related elements
|
2020-09-27 10:11:41 +02:00 |
|
Alejandro Celaya
|
d5eac3b1c3
|
Added validateUrl optional flag for create/edit short URLs
|
2020-09-23 19:19:17 +02:00 |
|
Alejandro Celaya
|
641f35ae05
|
Updated changelog
|
2020-09-23 07:46:25 +02:00 |
|
Alejandro Celaya
|
460ca032d2
|
Drastically improved performance when creating new short URLs with findIfExists by moving logic to DB query
|
2020-09-23 00:22:29 +02:00 |
|
Alejandro Celaya
|
4b7184ac85
|
Added tests for new QR code format
|
2020-09-21 22:54:05 +02:00 |
|
Alejandro Celaya
|
73c6c52b2a
|
Updated to guzzle 7
|
2020-06-28 10:06:49 +02:00 |
|
Alejandro Celaya
|
78b838f6b6
|
Used league/uri to validate URLs including deeplinks, and fixed tests
|
2020-06-27 11:14:10 +02:00 |
|
Alejandro Celaya
|
5c163490c7
|
Allowed new redirect config options to be pased as env vars to the docker image
|
2020-06-20 11:21:37 +02:00 |
|
Alejandro Celaya
|
0bea843e7f
|
Added test covering how redirects config works
|
2020-06-20 09:50:56 +02:00 |
|
Alejandro Celaya
|
371f246c41
|
Improved custom slug sluggification, allowing valid URL characters
|
2020-06-08 18:08:53 +02:00 |
|
Alejandro Celaya
|
1fa9896524
|
Fixed error when trying to match creteria on a Short URL with dates
|
2020-05-11 13:12:55 +02:00 |
|
Alejandro Celaya
|
9b9de8e290
|
Updated VisitsTrackerTest
|
2020-05-09 10:14:26 +02:00 |
|
Alejandro Celaya
|
e1e3c7f061
|
Created paginator adapter tests
|
2020-05-09 10:10:48 +02:00 |
|
Alejandro Celaya
|
8f06e4b20f
|
Replaced references to obfuscate by anonymize
|
2020-05-08 15:43:09 +02:00 |
|
Alejandro Celaya
|
bfdd6e0c50
|
Ensured SimplifiedConfigParser properly handles obfuscate_remote_addr option
|
2020-05-08 13:21:49 +02:00 |
|
Alejandro Celaya
|
eac468514b
|
Allow to determine if remote addresses should be obfuscated at configuration level
|
2020-05-08 13:10:58 +02:00 |
|
Alejandro Celaya
|
7da00fbc8c
|
Updated Visit entity so that the address can be optionally obfuscated
|
2020-05-08 12:58:49 +02:00 |
|
Alejandro Celaya
|
2e269bcacd
|
Updated TagServiceTest
|
2020-05-08 11:14:39 +02:00 |
|
Alejandro Celaya
|
626c92460b
|
Enhanced list tags endpoint so that it can also return stats foir every tag
|
2020-05-08 10:15:33 +02:00 |
|
Alejandro Celaya
|
b5947d1642
|
Created more unit tests
|
2020-05-01 11:57:46 +02:00 |
|
Alejandro Celaya
|
4498386f56
|
Fixed merge conflicts
|
2020-04-30 20:26:00 +02:00 |
|
Alejandro Celaya
|
9190996e54
|
Added support for geolite_license_key config option
|
2020-04-29 19:26:34 +02:00 |
|
Alejandro Celaya
|
6ba6b951bf
|
Changed mercure topics to be dash-cased
|
2020-04-16 22:25:12 +02:00 |
|
Alejandro Celaya
|
18b12ab1e6
|
Updated NotifyVisitToMercure to send both an update for all short URLs and one specific short URL
|
2020-04-14 20:57:25 +02:00 |
|
Alejandro Celaya
|
934fa937b5
|
Updated config parsers for docker image to accept new mercure env vars and configs
|
2020-04-12 20:41:23 +02:00 |
|
Alejandro Celaya
|
7f888c49b4
|
Created MercureUpdatesGeneratorTest
|
2020-04-12 18:01:13 +02:00 |
|
Alejandro Celaya
|
e97dfbfdda
|
Created NotifyVisitToMercureTest
|
2020-04-12 17:50:40 +02:00 |
|
Alejandro Celaya
|
f915b97606
|
Created decorator for database connection closing and reopening for swoole tasks
|
2020-04-11 18:00:40 +02:00 |
|
Alejandro Celaya
|
551368c30d
|
Ensured QR code action respects configured domain
|
2020-04-09 12:31:03 +02:00 |
|
Alejandro Celaya
|
28e0fb049b
|
Added check to ensure DB connection is gracefully recovered on swoole task workers
|
2020-04-09 11:54:54 +02:00 |
|
Alejandro Celaya
|
1980d35691
|
Ensured redirect requests are not tracked when request is performed using method HEAD
|
2020-04-08 23:51:57 +02:00 |
|
Alejandro Celaya
|
c012b4740d
|
Updated VisitLocator test so that it covers all public methods
|
2020-03-28 10:01:09 +01:00 |
|
Alejandro Celaya
|
55778eb810
|
Ensured old visit locations are deleted when relocating a visit that has already been located
|
2020-03-28 09:27:45 +01:00 |
|
Alejandro Celaya
|
fcce18b059
|
Changed VisitLocator signature so that it expects an object implementing an interface instead of two arbitrary callbacks
|
2020-03-28 08:05:15 +01:00 |
|
Alejandro Celaya
|
43a3d469e7
|
Improved how visits with some conditions are fetched from the database, so all internal logic is 100% transparent regardless the purpose
|
2020-03-27 22:01:26 +01:00 |
|
Alejandro Celaya
|
b8522b8c17
|
Created new method to locate empty visits
|
2020-03-26 22:37:46 +01:00 |
|
Alejandro Celaya
|
5432eb7b77
|
Added URL validation to ShortUrl edition, as long URL can now be edited
|
2020-03-22 17:22:52 +01:00 |
|
Alejandro Celaya
|
181ff16409
|
Registered PersistenceDomainResolver as a service to avoid instantiating a new one on every ShortUrl creation
|
2020-03-22 17:05:59 +01:00 |
|
Alejandro Celaya
|
682a0768b7
|
Moved check for URL validation config option to the UrlValidator itself
|
2020-03-22 16:58:28 +01:00 |
|
Alejandro Celaya
|
4e6836c605
|
Long URLs can now be edited on existing short URLs
|
2020-03-22 14:04:01 +01:00 |
|
Alejandro Celaya
|
fdd8efc12d
|
Added test covering case in which the original address is provided when locating visits
|
2020-03-22 11:12:30 +01:00 |
|
Alejandro Celaya
|
d32112fe7e
|
Updated shlink packages and installed shlink-config
|
2020-03-15 17:14:37 +01:00 |
|
Alejandro Celaya
|
f5c1e12db4
|
Added more tests covering invalid custom slugs
|
2020-03-06 20:01:41 +01:00 |
|
Alejandro Celaya
|
590fc3fc92
|
Added tests covering redirect simplified config parsing
|
2020-02-25 18:01:06 +01:00 |
|
Alejandro Celaya
|
51e130c7a0
|
Added env var that can be used to define default short codes length on docker image
|
2020-02-18 19:34:01 +01:00 |
|
Alejandro Celaya
|
9372d1739a
|
Enforced short URLs length to be 4 at least
|
2020-02-18 18:57:24 +01:00 |
|
Alejandro Celaya
|
13555366e3
|
Short code lengths can now be customized
|
2020-02-18 18:54:40 +01:00 |
|
Alejandro Celaya
|
297985cf01
|
Ensured trying to fetch a short URL for any operation through the API results in 404 if it does not match with porovided domain
|
2020-02-02 12:58:26 +01:00 |
|
Alejandro Celaya
|
10f79ec01d
|
Created new repository method which will look for short URLs without doing domain fallback
|
2020-02-02 12:44:35 +01:00 |
|
Alejandro Celaya
|
6858dc4785
|
Updated setting short URL tags so that it accepts providing the domain
|
2020-02-01 22:59:21 +01:00 |
|
Alejandro Celaya
|
5d1d9dcac3
|
Allowed domain to be provided when editing short URL meta
|
2020-02-01 22:54:21 +01:00 |
|
Alejandro Celaya
|
732bb06c62
|
Updated short URL deletion so that it accepts the domain
|
2020-02-01 18:06:50 +01:00 |
|
Alejandro Celaya
|
279bd12a2d
|
Ensured domain can be passed when fetching visits for a short URL
|
2020-02-01 17:34:16 +01:00 |
|
Alejandro Celaya
|
1b2a0d674f
|
Fixed correct short URL being tracked when domain exists
|
2020-02-01 13:03:48 +01:00 |
|
Alejandro Celaya
|
327d35fe57
|
Created DTO used to transfer props needed to uniquely identify a short URL
|
2020-02-01 11:47:01 +01:00 |
|
Alejandro Celaya
|
452bfea088
|
Created DTOs with implicit validation to wrap short URLs lists params
|
2020-01-28 10:49:55 +01:00 |
|
Alejandro Celaya
|
b9c7f8e8d4
|
Added unit tests for ShortUrlresolver
|
2020-01-26 19:53:18 +01:00 |
|
Alejandro Celaya
|
4ebd48b2b0
|
Created new service to resolve short URLs
|
2020-01-26 19:21:51 +01:00 |
|
Alejandro Celaya
|
45151cdde6
|
Standardized how the ShortUrlMeta object is created by exposing a single named constructor
|
2020-01-26 08:42:51 +01:00 |
|
Alejandro Celaya
|
c52794aed6
|
Replaced standard http_build_query by guzzle's build_query, which keeps params with no value
|
2020-01-12 10:28:44 +01:00 |
|
Alejandro Celaya
|
4fadd523f1
|
Updated config to read redis from config.redis
|
2020-01-05 16:45:14 +01:00 |
|
Alejandro Celaya
|
2151b97bec
|
Project migrated from zend to laminas
|
2020-01-01 21:13:09 +01:00 |
|
Alejandro Celaya
|
50100c251e
|
Updated to coding standard v2.1
|
2020-01-01 20:48:31 +01:00 |
|
Alejandro Celaya
|
d205405dcc
|
Updated DeprecatedConfigParser to remove the secret key
|
2020-01-01 11:27:09 +01:00 |
|
Alejandro Celaya
|
0e04968bc2
|
Changed latitude and longitude to float
|
2019-12-31 23:37:49 +01:00 |
|
Alejandro Celaya
|
0cf1d8d375
|
Changed validate_url to have default value of false
|
2019-12-31 16:30:59 +01:00 |
|
Alejandro Celaya
|
434b56fa8c
|
Removed several deprecated components
|
2019-12-31 15:38:37 +01:00 |
|
Alejandro Celaya
|
78b484e657
|
Deleted everything related with previews generation
|
2019-12-31 13:40:38 +01:00 |
|