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
|
5266743a0c
|
Added as much additional data as possible to exceptions
|
2019-11-27 20:18:36 +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
|
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
|
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 |
|
Alejandro Celaya
|
89e373f775
|
Moved NotFoundHandler to ErrorHandler namespace
|
2019-11-23 10:11:34 +01:00 |
|
Alejandro Celaya
|
74854b3dac
|
Added zend problem details to the project
|
2019-11-22 19:49:14 +01:00 |
|
Alejandro Celaya
|
6ddb60d047
|
Improved ValidationException to avoid polluting the message with invalid data but keeping it on the string representation
|
2019-11-21 20:07:57 +01:00 |
|
Alejandro Celaya
|
af0ed6135e
|
Updated to latest doctrine versions, solving deprecations
|
2019-11-20 20:03:06 +01:00 |
|
Alejandro Celaya
|
45ac2c3c51
|
Replaced third party domains used in tests by custom shlink domains
|
2019-11-16 13:37:53 +01:00 |
|
Alejandro Celaya
|
6b8fc3228e
|
Handled IDN domains also on internal redirections when validating a URL
|
2019-11-16 12:38:45 +01:00 |
|
Alejandro Celaya
|
19c1b29f59
|
Added tests for UrlValidator
|
2019-11-16 10:19:25 +01:00 |
|
Alejandro Celaya
|
705dc2ec39
|
Added forward of query string from short URLs to long one
|
2019-11-13 21:04:44 +01:00 |
|
Alejandro Celaya
|
d4005da35c
|
Added workers nums handling to simplified config parser
|
2019-11-10 12:04:14 +01:00 |
|
Alejandro Celaya
|
9abaa243e0
|
Some extra minor improvements
|
2019-11-02 19:08:07 +01:00 |
|
Alejandro Celaya
|
906dfe60f8
|
Simplified code to render not-foubnd templates by infering the template to be used inside NotFoundHandler
|
2019-11-02 18:49:24 +01:00 |
|
Alejandro Celaya
|
01f60614ef
|
Removed hardcoded route names for core routes and used action class names instead
|
2019-11-02 18:36:15 +01:00 |
|
Alejandro Celaya
|
eeb5306883
|
Moved all logic to redirect to specific URLs when a 404 is found to the NotFoundHandler
|
2019-11-02 18:33:26 +01:00 |
|
Alejandro Celaya
|
24c3a3e84c
|
Defined new options for new redirect configuration
|
2019-11-02 17:23:21 +01:00 |
|
Alejandro Celaya
|
8b9663aea0
|
Created DeprecatedConfigParserTest
|
2019-11-02 17:04:49 +01:00 |
|
Alejandro Celaya
|
b59f4e2805
|
Defined new configs for not found redirects
|
2019-11-02 11:30:09 +01:00 |
|
Alejandro Celaya
|
f784ee5b28
|
Fixed unit tests
|
2019-10-22 19:52:28 +02:00 |
|
Alejandro Celaya
|
5bd7b53e0a
|
Added more tests for new logics
|
2019-10-11 11:28:53 +02:00 |
|
Alejandro Celaya
|
9538f474de
|
Added logic to check if a short code is in use and regenerate it otherwise
|
2019-10-11 11:09:33 +02:00 |
|
Alejandro Celaya
|
2f09ff456c
|
Updated logic to generate random short codes, increasing entropy
|
2019-10-11 09:14:25 +02:00 |
|
Alejandro Celaya
|
e0d20bf8ff
|
Updated to coding styles v2
|
2019-10-05 17:26:10 +02:00 |
|
Alejandro Celaya
|
636df2a736
|
Read request's authority when tracking a visit and passed it down
|
2019-10-04 21:36:54 +02:00 |
|
Alejandro Celaya
|
49c3c9bec1
|
Ensured domain is taken into account when looking for a short URL
|
2019-10-04 17:21:22 +02:00 |
|
Alejandro Celaya
|
fd1fe90731
|
Created tests for new domain resolvers
|
2019-10-01 22:00:46 +02:00 |
|
Alejandro Celaya
|
495643f4f1
|
Ensured domain is taken into account when checking if a slug is in use
|
2019-10-01 21:42:35 +02:00 |
|
Alejandro Celaya
|
8d74e0c3ff
|
Fixed undefined-index errors in BasePathPrefixerTest
|
2019-09-13 20:46:49 +02:00 |
|
Alejandro Celaya
|
6e38457655
|
Created BasePathPrefixerTest
|
2019-09-13 20:17:30 +02:00 |
|
Alejandro Celaya
|
d7a3aeb0a2
|
Created a config prost-processor which adds the base path on every applicable configuration
|
2019-09-13 20:03:53 +02:00 |
|
Alejandro Celaya
|
7b0ccc9f69
|
Removed references to anything related with translations
|
2019-09-12 08:09:17 +02:00 |
|
Alejandro Celaya
|
56d0383170
|
Increased referer length to 1024 and ensured values are cropped before trying to insert in database
|
2019-08-24 10:25:43 +02:00 |
|
Alejandro Celaya
|
d767c415d1
|
Deleted local Common module and used external one
|
2019-08-12 18:34:52 +02:00 |
|
Alejandro Celaya
|
47ea4218d0
|
Created PreviewGenerator module
|
2019-08-11 19:38:46 +02:00 |
|
Alejandro Celaya
|
848d574f68
|
Moved too concrete class from Common to Core
|
2019-08-11 13:33:42 +02:00 |
|
Alejandro Celaya
|
53243d1764
|
Moved WrongIpException to IpGeolocation module
|
2019-08-10 23:26:39 +02:00 |
|
Alejandro Celaya
|
3520ab6b18
|
Moved Ip resolvers to the Resolver subnamespace
|
2019-08-10 13:56:06 +02:00 |
|
Alejandro Celaya
|
30314fd532
|
Moved all ip-geolocation related stuff to its own module
|
2019-08-10 13:43:52 +02:00 |
|
Alejandro Celaya
|
564b65c8ca
|
Created ValidationExceptionTest
|
2019-08-08 16:20:37 +02:00 |
|
Alejandro Celaya
|
6b8ca3e611
|
Updated SimplifiedConfigParser so that it properly converts the redis_servers keys and aliases the store as a side effect
|
2019-08-07 18:45:28 +02:00 |
|
Alejandro Celaya
|
0f8dd1effb
|
Added post processing mapping to define the lock store to be used
|
2019-08-07 16:16:53 +02:00 |
|
Alejandro Celaya
|
aff1df32f2
|
Updated to coding-standard library v1.2.2
|
2019-08-01 19:49:54 +02:00 |
|
Alejandro Celaya
|
a1c7e7d5da
|
Updated tests
|
2019-07-20 12:11:07 +02:00 |
|
Alejandro Celaya
|
4380b62715
|
Fixed event handler not being properly registered as a service
|
2019-07-13 15:47:19 +02:00 |
|
Alejandro Celaya
|
91698034e7
|
Added event dispatcher to track when a short URL is visited
|
2019-07-13 12:04:21 +02:00 |
|
Alejandro Celaya
|
46a27a9d0a
|
Added meta property to ShortUrlDataTransformer
|
2019-07-08 18:23:38 +02:00 |
|
Alejandro Celaya
|
479760c0ee
|
Created config post processor that parses a simplified config to what shlink expects
|
2019-04-18 10:37:38 +02:00 |
|
Alejandro Celaya
|
734fdf83c1
|
Added test covering the case in which fetching existing short URLs, more than one result is found
|
2019-03-30 07:45:57 +01:00 |
|
Alejandro Celaya
|
2906d42f97
|
Updated how existing short URLs are checked, so that not only the first one matching the slug or url is checked
|
2019-03-30 07:36:57 +01:00 |
|
Alejandro Celaya
|
4b556cd79f
|
Updated to shlinkio coding standard 1.1.0
|
2019-02-26 22:56:43 +01:00 |
|
Alejandro Celaya
|
312fc0984b
|
Fixed mutation score by provideing more tests
|
2019-02-26 22:41:04 +01:00 |
|
Alejandro Celaya
|
30bf1c2641
|
Added tests for new cases with non-locatable addresses
|
2019-02-26 22:31:07 +01:00 |
|
Alejandro Celaya
|
2d1d7357a3
|
Given more semantic cases in which a visit cannot be located
|
2019-02-26 21:39:45 +01:00 |
|
Alejandro Celaya
|
d2fad0128f
|
Fixed bug missing unprocessed visits while iterating and updating, while drastically improving the performance
|
2019-02-23 09:58:02 +01:00 |
|
Alejandro Celaya
|
292937b962
|
Updated VisitRepository::findUnlocatedVisits methods so that it paginates the amount of elements loaded in memory
|
2019-02-22 19:31:03 +01:00 |
|
Alejandro Celaya
|
38cc83a4ee
|
Removed uneeded inline type hints
|
2019-02-17 20:32:18 +01:00 |
|
Alejandro Celaya
|
687a1cc9c7
|
Reduced amount of dead lines in tests
|
2019-02-17 20:28:34 +01:00 |
|
Alejandro Celaya
|
1bcd03b150
|
Renamed method
|
2019-02-17 13:21:07 +01:00 |
|
Alejandro Celaya
|
e2abe23895
|
Defined stricter model to represent one geo location
|
2019-02-17 13:01:21 +01:00 |
|
Alejandro Celaya
|
b8cb38ae5c
|
Updated testing tools
|
2019-02-16 10:53:45 +01:00 |
|
Alejandro Celaya
|
2d18ef5cee
|
Updated installer so that it no longer asks for a charset and instead just generates one
|
2019-02-03 13:02:12 +01:00 |
|
Alejandro Celaya
|
c4fd8d5120
|
Implemented feature to optionally return an existing short url when all provided params match an existing one
|
2019-02-03 09:40:32 +01:00 |
|
Alejandro Celaya
|
772494f46f
|
Moved process of sluggifying custom slug to a filter
|
2019-02-03 08:17:27 +01:00 |
|
Alejandro Celaya
|
d61f5faf59
|
Refactored UrlShortener public method to receibe DTOs instead of primitive params
|
2019-02-02 11:05:28 +01:00 |
|
Alejandro Celaya
|
32070b1fa7
|
Do not use ServerRequestFactory::fromGlobals in tests
|
2018-12-25 23:19:36 +01:00 |
|
Alejandro Celaya
|
d7e89ebdae
|
Ensured custom slugs are case sensitive
|
2018-12-01 21:38:29 +01:00 |
|
Alejandro Celaya
|
d0e0aea0f1
|
Updated visits to support pagination
|
2018-11-28 20:39:08 +01:00 |
|
Alejandro Celaya
|
45254606d4
|
Added DTO used to pass filtering params to VisitsTracker
|
2018-11-27 21:09:27 +01:00 |
|
Alejandro Celaya
|
5abd9d1a40
|
Made test properties to be private instead of protected
|
2018-11-20 19:37:22 +01:00 |
|
Alejandro Celaya
|
0ae5a53d86
|
Enforced property types comments in one line
|
2018-11-20 19:30:27 +01:00 |
|
Alejandro Celaya
|
f48f98f4d7
|
Updated changelog for v1.14.1
|
2018-11-17 19:27:00 +01:00 |
|
Alejandro Celaya
|
79b2a0839f
|
Increased MSI to 65%
|
2018-11-17 19:23:49 +01:00 |
|
Alejandro Celaya
|
0aae0d888c
|
Moved visits iteration logic from command to service to allow lazy loading of entries in resultset
|
2018-11-17 09:42:15 +01:00 |
|
Alejandro Celaya
|
c1906606c6
|
Updated VisitService to have a method which locates visits and allows entity manager to be cleared
|
2018-11-17 07:47:42 +01:00 |
|
Alejandro Celaya
|
fd6d180eba
|
Created chainIpLocationResolver
|
2018-11-11 21:28:42 +01:00 |
|
Alejandro Celaya
|
313927827d
|
Updated RedirectAction so that it makes use of the not found short url options
|
2018-11-03 12:10:02 +01:00 |
|
Alejandro Celaya
|
3eddacdff8
|
Created options to enable redirection to external page when short code is not found
|
2018-11-03 11:37:43 +01:00 |
|
Alejandro Celaya
|
f64920e510
|
Replaced some array_map by Functional\map
|
2018-11-02 12:05:01 +01:00 |
|
Alejandro Celaya
|
951d08f914
|
Improved public API in Visit entity, reducing anemic model
|
2018-10-28 16:20:54 +01:00 |
|
Alejandro Celaya
|
8e1e8ba7de
|
Improved public API in ShortUrl entity, reducing anemic model
|
2018-10-28 16:00:54 +01:00 |
|
Alejandro Celaya
|
e046eddda9
|
Improved public API in VisitLocation entity, reducing anemic model
|
2018-10-28 15:13:45 +01:00 |
|
Alejandro Celaya
|
084b1169d7
|
Improved public API in Tag entity, avoiding anemic model
|
2018-10-28 14:38:43 +01:00 |
|
Alejandro Celaya
|
025135b8c6
|
Added all missing use statements from global functions and constants
|
2018-10-28 08:34:02 +01:00 |
|
Alejandro Celaya
|
77d810b735
|
Replaced all FQ global function and constants by explicit imports
|
2018-10-28 08:24:06 +01:00 |
|
Alejandro Celaya
|
44f0011445
|
Moved logic to create a visitor from a request to the visitor itself
|
2018-10-18 20:24:25 +02:00 |
|
Alejandro Celaya
|
545094cddf
|
Used middleware from library to actually find visitor IP addresses
|
2018-10-18 20:19:29 +02:00 |
|
Alejandro Celaya
|
1e4de7fec4
|
Forced explicit string casting when hydrating a VisitLocation from an array
|
2018-10-16 18:25:03 +02:00 |
|
Alejandro Celaya
|
0183c8a4b7
|
Migrated from standard datetime objects to chronos objects
|
2018-09-29 12:52:32 +02:00 |
|
Alejandro Celaya
|
9651b3d692
|
Created command to delete short URLs
|
2018-09-15 17:57:12 +02:00 |
|
Alejandro Celaya
|
159529937d
|
Created specific service to delete short URLs
|
2018-09-15 11:54:58 +02:00 |
|
Alejandro Celaya
|
07165f344f
|
Normalized entities adding missing type hints and removing superfluous comments
|
2018-09-15 10:03:42 +02:00 |
|
Alejandro Celaya
|
a0c3b9412f
|
Updated system to obfuscate IP addresses before persisting them
|
2018-09-13 22:36:28 +02:00 |
|
Alejandro Celaya
|
f3c92f4110
|
Updated short URL creation responses to include more information
|
2018-09-12 20:32:58 +02:00 |
|
Alejandro Celaya
|
c2dd5b8c47
|
Ensured same long URL can be used multiple times for different short URLs
|
2018-09-11 19:44:33 +02:00 |
|
Alejandro Celaya
|
563021bdc1
|
Updated resolve short url action to return all data for that short url
|
2018-08-11 10:40:44 +02:00 |
|
Alejandro Celaya
|
1437ff48ce
|
Ensured all core actions log errors
|
2018-05-07 10:58:49 +02:00 |
|
Alejandro Celaya
|
210b08b61f
|
Created PixelActionTest
|
2018-03-26 20:17:38 +02:00 |
|
Alejandro Celaya
|
a27b01b895
|
Fixed tests
|
2018-03-26 19:02:41 +02:00 |
|
Alejandro Celaya
|
16dd1838aa
|
Updated to expressive 3
|
2018-03-26 18:49:28 +02:00 |
|
Alejandro Celaya
|
1e79969c3b
|
Made visits not to be tracked if query param has been provided
|
2018-01-14 09:24:33 +01:00 |
|
Alejandro Celaya
|
7ba9eb8e2c
|
Fixed coding styles
|
2018-01-07 20:08:07 +01:00 |
|
Alejandro Celaya
|
e8a0c5484c
|
Added test for ShortUrlMeta
|
2018-01-07 20:07:12 +01:00 |
|
Alejandro Celaya
|
0521227127
|
Tested new method to update short URLs metadata
|
2018-01-07 20:00:21 +01:00 |
|
Alejandro Celaya
|
ede4525332
|
Refactored exceptions to properly use package exceptions
|
2017-12-30 21:35:26 +01:00 |
|
Alejandro Celaya
|
781ca39938
|
Fixed merge conflicts
|
2017-10-23 13:28:09 +02:00 |
|
Alejandro Celaya
|
af7c11665c
|
Added max_visits field to short_urls
|
2017-10-22 09:00:32 +02:00 |
|
Alejandro Celaya
|
1f7a94794d
|
Added option to provide custom slug when creating a short url
|
2017-10-21 17:19:02 +02:00 |
|
Alejandro Celaya
|
a3bbd06fe3
|
Updated UrlShortener so that it does not match a short code which is out of the validity dat erange
|
2017-10-21 11:58:20 +02:00 |
|
Mikolaj Gogula
|
297c88c334
|
Change variable name for validation enabled.
|
2017-10-17 11:44:30 +02:00 |
|
Mikolaj Gogula
|
fef5390a62
|
Codestyle fixes.
|
2017-10-17 11:35:32 +02:00 |
|
Mikolaj Gogula
|
08d18b1dc1
|
Codestyle fixes.
|
2017-10-17 11:33:11 +02:00 |
|
Mikolaj Gogula
|
18d9815e88
|
Added option for enable/disable URL Validation by response status code.
|
2017-10-17 11:03:12 +02:00 |
|
Alejandro Celaya
|
ea76092681
|
Ensured a generic template is used to render generic 404 errors, and a more specific one to render 'invalid short url' errors
|
2017-10-13 12:22:19 +02:00 |
|
Alejandro Celaya
|
c12e13dfd7
|
Created NotFoundDelegateTest
|
2017-10-13 12:02:00 +02:00 |
|
Alejandro Celaya
|
70264be8e7
|
Fixed coding styles
|
2017-10-12 11:29:11 +02:00 |
|
Alejandro Celaya
|
6208f6f0d5
|
Improved Exception management to be more specific
|
2017-10-12 11:28:45 +02:00 |
|
Alejandro Celaya
|
c422a14c5c
|
Improved coding styles
|
2017-10-12 10:13:20 +02:00 |
|
Alejandro Celaya
|
286c24f8c0
|
Improved TagServiceTest
|
2017-07-15 12:09:25 +02:00 |
|
Alejandro Celaya
|
3e268e2012
|
Improved TagServiceTest
|
2017-07-15 09:05:02 +02:00 |
|
Alejandro Celaya
|
5c7962966d
|
Created ListTagsActionTest
|
2017-07-07 13:28:58 +02:00 |
|
Alejandro Celaya
|
c37660f763
|
Created TagService
|
2017-07-07 12:49:41 +02:00 |
|
Alejandro Celaya
|
22c76df8e6
|
Migrated BodyParserMiddleware to psr-15 middleware
|
2017-03-25 09:22:00 +01:00 |
|
Alejandro Celaya
|
6c87436a96
|
Migrated QrCodeCacheMiddleware to psr-15 middleware
|
2017-03-24 23:34:17 +01:00 |
|
Alejandro Celaya
|
734dac9456
|
Migrated RedirectAction to psr-15 middleware
|
2017-03-24 23:24:11 +01:00 |
|
Alejandro Celaya
|
85ca366893
|
Migrated QrCodeAction to psr-15 middleware
|
2017-03-24 23:19:42 +01:00 |
|
Alejandro Celaya
|
46db736af8
|
Migrated PreviewAction to psr-15 middleware
|
2017-03-24 22:07:28 +01:00 |
|
Alejandro Celaya
|
7530048fbd
|
Removed exception catch that used to return a 500, and now returns a 404 due to a behavior change
|
2017-03-24 21:59:45 +01:00 |
|
Alejandro Celaya
|
0e2a289f9f
|
Updated to phpunit 6
|
2017-03-24 20:34:18 +01:00 |
|
Alejandro Celaya
|
4185015bef
|
Improved tests
|
2016-08-21 18:15:25 +02:00 |
|
Alejandro Celaya
|
4615bbaaf7
|
CreatedPreviewActionTest
|
2016-08-18 17:23:40 +02:00 |
|
Alejandro Celaya
|
5ca4bc928d
|
Created specific factory for AppOptions to prevent circular dependency with cache
|
2016-08-15 23:40:49 +02:00 |
|
Alejandro Celaya
|
12410e82d8
|
Created tests for QrCode middlewares
|
2016-08-09 14:18:20 +02:00 |
|
Alejandro Celaya
|
8eb279fd28
|
Updated UrlShortener to namespace the cache entries
|
2016-08-09 13:32:33 +02:00 |
|
Alejandro Celaya
|
7c5d8cf244
|
Fixed VisitsTracker to take into account the X-Forwarded-For header in case the server is behind a load balabncer or proxy
|
2016-08-09 09:13:39 +02:00 |
|
Alejandro Celaya
|
73a236b3d0
|
Updated VisitsTracker so that the track method expects a Request object to be provided
|
2016-08-09 08:52:06 +02:00 |
|
Alejandro Celaya
|
f49e9064cd
|
Added cache adapter to the UrlShortener service to cache shortcode-url maps
|
2016-08-08 10:02:52 +02:00 |
|
Alejandro Celaya
|
a957f66ed0
|
Renamed services first level config key to dependencies
|
2016-07-31 16:30:05 +02:00 |
|
Alejandro Celaya
|
8c446f0f3b
|
Created Core\ConfigProviderTest
|
2016-07-30 23:07:44 +02:00 |
|
Alejandro Celaya
|
9c6420fe26
|
Created VisitServiceTest
|
2016-07-30 23:01:07 +02:00 |
|
Alejandro Celaya
|
ce4877d4ac
|
Improved VisitsTrackerTest
|
2016-07-30 22:55:28 +02:00 |
|
Alejandro Celaya
|
ebeaa3c64a
|
Created RedirectActionTest
|
2016-07-30 20:02:48 +02:00 |
|
Alejandro Celaya
|
d39a949992
|
Fixed wrong exception name
|
2016-07-20 19:04:38 +02:00 |
|
Alejandro Celaya
|
fe8ef2030f
|
Fixed elements broken on module separation
|
2016-07-19 18:05:06 +02:00 |
|
Alejandro Celaya
|
ab9c2f728a
|
Created Core module
|
2016-07-19 18:01:39 +02:00 |
|