Alejandro Celaya
|
f0acce1be0
|
Updated to latest common
|
2020-05-09 09:34:59 +02:00 |
|
Alejandro Celaya
|
dd4b4277c9
|
Added test for VisitRepository tag methods
|
2020-05-08 20:11:37 +02:00 |
|
Alejandro Celaya
|
baf77b6ffb
|
Implemented methods to get paginated list of visits by tag, reusing methods used for short code filtering
|
2020-05-08 19:55:05 +02:00 |
|
Alejandro Celaya
|
5be882a31b
|
Improved parameter definition in some private queries in VisitRepository
|
2020-05-08 19:41:21 +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
|
c336bb1901
|
Updated ListTagsCommand so that it displays extended information
|
2020-05-08 12:39:02 +02:00 |
|
Alejandro Celaya
|
00cac4ba72
|
Created rest test for list tags action
|
2020-05-08 11:51:28 +02:00 |
|
Alejandro Celaya
|
91aaffc6db
|
Updated ListTagsActionTest
|
2020-05-08 11:32:06 +02:00 |
|
Alejandro Celaya
|
2e269bcacd
|
Updated TagServiceTest
|
2020-05-08 11:14:39 +02:00 |
|
Alejandro Celaya
|
bdd14427d9
|
Added tests for TagRepository::findTagsWithInfo
|
2020-05-08 11:09:28 +02:00 |
|
Alejandro Celaya
|
06c59fe2dd
|
Fixed invalid imports after class refactoring
|
2020-05-08 10:29:24 +02:00 |
|
Alejandro Celaya
|
9a78fd1a26
|
Fixed definition of inversed many to many entity relationship
|
2020-05-08 10:25:33 +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
|
7e0a14493e
|
Documented updates on the tags endpoint to return more detailed information
|
2020-05-08 10:14:38 +02:00 |
|
Alejandro Celaya
|
d5288f756e
|
Fixed entity mapping for visits without a visit location
|
2020-05-03 19:52:40 +02:00 |
|
Alejandro Celaya
|
867659ea25
|
Created index on visits.date column
|
2020-05-03 19:15:26 +02:00 |
|
Alejandro Celaya
|
74ad3553cb
|
Hardcoded types on date fields when filtering visits lists
|
2020-05-03 19:02:13 +02:00 |
|
Alejandro Celaya
|
8b0ce8e6f3
|
Improved performance when loading visits chuncks at high offsets
|
2020-05-03 18:20:01 +02:00 |
|
Alejandro Celaya
|
0e4bccc4bb
|
Cached result of the count query on VisitsPaginatorAdapter
|
2020-05-03 10:44:01 +02:00 |
|
Alejandro Celaya
|
c4ae89a279
|
Removed DISTINCT when counting visits for a short URL
|
2020-05-03 10:22:00 +02:00 |
|
Alejandro Celaya
|
80d41db901
|
Improved performance on query that returns the list of visits for a short URL
|
2020-05-02 22:47:59 +02:00 |
|
Alejandro Celaya
|
b5947d1642
|
Created more unit tests
|
2020-05-01 11:57:46 +02:00 |
|
Alejandro Celaya
|
1ef10f11cb
|
Created new action to get default visit stats
|
2020-05-01 11:40:02 +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
|
72d8edf4ff
|
Created event listener that notifies mercure hub for new visits
|
2020-04-12 17:05:59 +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
|
11879ea377
|
Ensured tags are not sluggified when using them to filter short URL lists
|
2020-03-29 12:51:39 +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
|
fb8ab0b5fe
|
Implemented how to reprocess the locations of all existing visits
|
2020-03-28 09:12:15 +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
|
f730c24ecb
|
Created method to return visits with empty location
|
2020-03-26 22:56:53 +01:00 |
|
Alejandro Celaya
|
b8522b8c17
|
Created new method to locate empty visits
|
2020-03-26 22:37:46 +01:00 |
|
Alejandro Celaya
|
c88401ef29
|
Added isEmpty column to VisitLocation
|
2020-03-23 20:42:03 +01:00 |
|
Alejandro Celaya
|
4539ab2dcf
|
Moved hardcoded class alias to a namespaced constant
|
2020-03-22 17:42:56 +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
|
3fef4b4a28
|
Ensured non-obfuscated IP address is passed to event listener which geolocates it
|
2020-03-22 10:48:27 +01:00 |
|
Alejandro Celaya
|
d2c06dd0ab
|
Initialized typed nullable props as null in all entities
|
2020-03-21 14:38:24 +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
|
18ceafeb60
|
Ensured only empty strings are checked while verifying empty value on custom slug
|
2020-03-06 19:25:05 +01:00 |
|
Alejandro Celaya
|
67e93a6874
|
Ensured empty values cannot be provided as the custom slug
|
2020-03-06 19:20:33 +01:00 |
|
Alejandro Celaya
|
590fc3fc92
|
Added tests covering redirect simplified config parsing
|
2020-02-25 18:01:06 +01:00 |
|
Jordan Patterson
|
6b1dadc35c
|
fixed incorrect configuration option for base_url_redirect_to
|
2020-02-25 06:47:02 -08:00 |
|
Alejandro Celaya
|
bb231e668b
|
Registered middleware generating request ID
|
2020-02-19 18:58:25 +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
|
8ff913aaf2
|
Ensured search terms are applied to the domain too
|
2020-02-02 20:07:19 +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
|
aa80c2bb82
|
Updated API tests so that fixture short URLs are created with matching short codes and different domains
|
2020-02-02 09:51:17 +01:00 |
|
Alejandro Celaya
|
1a8e4cdfd7
|
Exposed domain on short URLs
|
2020-02-02 08:57:04 +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
|
a3ff545d43
|
Improved VisitsRepositoryTest to cover fetching visits for URL with domain
|
2020-02-01 17:44:37 +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
|
fd82de31c0
|
Fixed the way ShortUrlIdentifier is created from requests, on different request scopes
|
2020-02-01 12:54:10 +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
|
bd2f488e2c
|
Updated entity mappings so that schema an table prefixes can be eventually provided
|
2020-01-29 10:53:06 +01:00 |
|
Alejandro Celaya
|
96350c8b8f
|
Updated entities mapping config so that they return a function
|
2020-01-29 10:06:42 +01:00 |
|
Alejandro Celaya
|
7add41d560
|
Ensured BC on dates for short urls params
|
2020-01-28 12:57:21 +01:00 |
|
Alejandro Celaya
|
fccd92497a
|
Added last check on ShortUrlsOrdering which makes sure everything keeps behaving as it used to
|
2020-01-28 11:17:54 +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
|
240d2588f9
|
Extracted some private functions ase helper global functions
|
2020-01-28 09:41:48 +01:00 |
|
Alejandro Celaya
|
b9c7f8e8d4
|
Added unit tests for ShortUrlresolver
|
2020-01-26 19:53:18 +01:00 |
|
Alejandro Celaya
|
f32e7cc7c4
|
Removed tests checking domain logic from ShortUrlRepositoryTest
|
2020-01-26 19:25:41 +01:00 |
|
Alejandro Celaya
|
4ebd48b2b0
|
Created new service to resolve short URLs
|
2020-01-26 19:21:51 +01:00 |
|
Alejandro Celaya
|
1f9a912c04
|
Added API tests covering the edition of short URL meta with resetted values
|
2020-01-26 09:29:04 +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
|
ad1334f289
|
Created database migration which ensures no nulls are present
|
2020-01-10 19:44:35 +01:00 |
|
Alejandro Celaya
|
9c5f5a46b5
|
Replaced use of deprecated class by a non-deprecated one
|
2020-01-06 23:08:14 +01:00 |
|
Alejandro Celaya
|
886f63d3e4
|
Workarounded doctrine-dbal issue by creating new columns instead of changing column types
|
2020-01-06 22:57:10 +01:00 |
|
Alejandro Celaya
|
7748dd7cef
|
Ensured latitude and longitude are set as float in DB
|
2020-01-06 22:31:00 +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 |
|
Alejandro Celaya
|
bf0d9ab7d9
|
Removed not needed null check
|
2019-12-29 23:19:00 +01:00 |
|
Alejandro Celaya
|
bfeb915cd2
|
Replaced regular callbacks by arrow functions when possible
|
2019-12-29 23:16:55 +01:00 |
|
Alejandro Celaya
|
a830420d75
|
Added property types to all non-deprecated classes
|
2019-12-29 22:48:40 +01:00 |
|
Alejandro Celaya
|
b904c6d00d
|
Added property types to some classes
|
2019-12-29 22:27:00 +01:00 |
|
Alejandro Celaya
|
664569a52b
|
Added visits_webhooks option to SimplifiedConfigParser
|
2019-12-28 16:42:21 +01:00 |
|
Alejandro Celaya
|
583985e7ce
|
Moved VisitLocated as a regular event, since async tasks cannot trigger other async tasks
|
2019-12-28 13:50:41 +01:00 |
|
Alejandro Celaya
|
b17bcb6c93
|
Updated LocateShortUrlVisit so that it dispatches a VisitLocated event
|
2019-12-28 13:07:11 +01:00 |
|
Alejandro Celaya
|
79cd3ba912
|
Created NotifyVisitToWebhooksTest
|
2019-12-27 20:32:21 +01:00 |
|
Alejandro Celaya
|
21a3d4b66b
|
Updated NotifyVisitToWebHooks so that it waits for all requests to finish
|
2019-12-27 17:07:20 +01:00 |
|
Alejandro Celaya
|
562b0a0868
|
Used PSR3 logger preprocessor format instead of sprintf when possible
|
2019-12-27 16:15:14 +01:00 |
|
Alejandro Celaya
|
25243a10ec
|
Moved common bootstrapping code to run.php script
|
2019-12-27 14:02:43 +01:00 |
|
Alejandro Celaya
|
3fdba53995
|
Added basic implementation for new webhook events
|
2019-12-27 13:37:59 +01:00 |
|
Alejandro Celaya
|
d67321f187
|
Removed workarounds from UrlValidator that were required for guzzle 6.5.0
|
2019-12-21 16:09:29 +01:00 |
|
Alejandro Celaya
|
8142801f1f
|
Updated ListShortUrlsAction api test so that it covers filtering use cases
|
2019-12-16 23:03:32 +01:00 |
|
Alejandro Celaya
|
35eeaf4282
|
Improved repository tests covering fetching and counting filtered short URL lists
|
2019-12-16 22:17:33 +01:00 |
|
Alejandro Celaya
|
839ca31821
|
Ensured date range filtering is also passed to the count function on ShortUrlRepository
|
2019-12-16 21:46:27 +01:00 |
|
Alejandro Celaya
|
03a92e5556
|
Fixed trailing method comma which is not compatible with PHP 7.2
|
2019-12-16 15:22:03 +01:00 |
|
Alejandro Celaya
|
99fd5f937e
|
Fixed existing tests and coding styles
|
2019-12-16 15:16:18 +01:00 |
|
Alejandro Medina
|
f17c46bbed
|
Add date range filter to short url service
|
2019-12-14 15:10:09 -03:00 |
|
Alejandro Medina
|
27008505e5
|
Add date range filter to short url service interface
|
2019-12-14 15:03:39 -03:00 |
|
Alejandro Medina
|
661efcb51f
|
Add date range filter to short url repository adapter
|
2019-12-14 12:01:56 -03:00 |
|
Alejandro Medina
|
5928f28699
|
Add date range filter to short url repository
|
2019-12-14 11:58:52 -03:00 |
|
Alejandro Medina
|
1183d65184
|
Add date range filter to short url repository interface
|
2019-12-14 11:58:08 -03:00 |
|
Alejandro Celaya
|
843e943251
|
Updated to guzzle 6.5 and removed custom code
|
2019-12-07 21:01:14 +01:00 |
|
Alejandro Celaya
|
e5f262869c
|
Improved tag conflict docs and tests
|
2019-12-06 23:40:54 +01:00 |
|
Alejandro Celaya
|
a070a68a57
|
Fixed merge conflicts
|
2019-12-06 23:34:50 +01:00 |
|
Alejandro Celaya
|
3e9b775114
|
Fixed failing test
|
2019-12-06 22:45:15 +01:00 |
|
Alejandro Celaya
|
05a64b8d9e
|
Ensured dates parsing does not mask actual validation errors
|
2019-12-06 22:38:22 +01:00 |
|
Alejandro Celaya
|
05451e3d1a
|
Handled tag conflict from rename tag action
|
2019-12-06 21:03:27 +01:00 |
|
Alejandro Celaya
|
b9b3295b52
|
Ensured a specific exception is thrown from TagService when trying to rename a tag to the name of another tag which already exists
|
2019-12-06 20:44:41 +01:00 |
|
Alejandro Celaya
|
f62ed66e26
|
Created TagConflictException
|
2019-12-06 10:20:56 +01:00 |
|
Alejandro Celaya
|
1bf56b658b
|
Improved domain exception tests to cover more possible mutants
|
2019-12-01 10:24:42 +01:00 |
|
Alejandro Celaya
|
3cf1657d54
|
Simplified invalidElements to be a plain list of keys when a ValidationException is cast into a problem details error
|
2019-11-29 18:55:27 +01:00 |
|
Alejandro Celaya
|
5055ddf995
|
Updated CLI commands to just print exception messages when possible
|
2019-11-28 18:47:34 +01:00 |
|
Alejandro Celaya
|
5266743a0c
|
Added as much additional data as possible to exceptions
|
2019-11-27 20:18:36 +01:00 |
|
Alejandro Celaya
|
3b56fc3760
|
Refactored and fixed unit tests
|
2019-11-26 22:12:52 +01:00 |
|
Alejandro Celaya
|
13e795d25d
|
Updated ValidationException's base exception
|
2019-11-26 20:58:38 +01:00 |
|
Alejandro Celaya
|
a28ef1f176
|
Converted EntityDoesNotExistException into a problem details exception renamed as TagNotFoundException
|
2019-11-25 19:15:46 +01:00 |
|
Alejandro Celaya
|
0c5eec7e95
|
Replaced the use of EntityDoesNotExistException by ShorturlNotFoundException where applicable
|
2019-11-25 18:54:25 +01:00 |
|
Alejandro Celaya
|
310032e303
|
Converted DeleteShortUrlException into a problem details exception
|
2019-11-24 23:56:02 +01:00 |
|
Alejandro Celaya
|
32b3c72bdf
|
Converted ValidationException into a problem details exception
|
2019-11-24 23:45:40 +01:00 |
|
Alejandro Celaya
|
c1eee2246b
|
Converted NonUniqueSlugException into a problem details exception
|
2019-11-24 23:32:37 +01:00 |
|
Alejandro Celaya
|
0d7d53ab5b
|
Converted InvalidUrlException into a problem details exception
|
2019-11-24 23:24:53 +01:00 |
|
Alejandro Celaya
|
2f1de4a162
|
Renamed InvalidShortCodeException to ShortCodeNotFoundException
|
2019-11-24 23:15:55 +01:00 |
|
Alejandro Celaya
|
6f0afe269d
|
Moved InvalidShortCode exception handling to problem details
|
2019-11-24 12:41:12 +01:00 |
|
Alejandro Celaya
|
09321eaa93
|
Updated InvalidShortCodeException to implement ProblemDetails
|
2019-11-23 13:41:07 +01:00 |
|
Alejandro Celaya
|
850259290a
|
Covered new use case on NotFoundRedirectHandlerTest
|
2019-11-23 10:28:58 +01:00 |
|
Alejandro Celaya
|
1bafe54a75
|
Split NotFoundHandler into two different middlewares
|
2019-11-23 10:25:12 +01:00 |
|