Alejandro Celaya
|
ce7d2d1fb0
|
Fixed coding styles
|
2019-02-16 22:04:11 +01:00 |
|
Alejandro Celaya
|
2175b8a7bb
|
Improved tests to increase MSI to 70%
|
2019-02-16 21:58:14 +01:00 |
|
Alejandro Celaya
|
6c0893cdf8
|
Improved tests to increase MSI to 69%
|
2019-02-16 21:24:32 +01:00 |
|
Alejandro Celaya
|
b8cb38ae5c
|
Updated testing tools
|
2019-02-16 10:53:45 +01:00 |
|
Alejandro Celaya
|
672321abab
|
Removed class which is now part of the installer package
|
2019-02-04 20:16:29 +01:00 |
|
Alejandro Celaya
|
2059b4050b
|
Removed installer and used external package instead
|
2019-02-04 20:14:59 +01:00 |
|
Alejandro Celaya
|
abbc66ac07
|
Unified config for installer tool
|
2019-02-03 13:12:17 +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
|
04d4d4a8d7
|
Updated GenerateShortUrlCommand to accept the findIfExists flag
|
2019-02-03 12:11:22 +01:00 |
|
Alejandro Celaya
|
810b25ff14
|
Added API tests covering creating short URLs with new findIfExists param
|
2019-02-03 11:01:38 +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
|
594e7da256
|
Created new findIfExists meta param
|
2019-02-02 11:05:28 +01:00 |
|
Alejandro Celaya
|
49668547d7
|
Fixed typo
|
2019-02-02 11:05:28 +01:00 |
|
Alejandro Celaya
|
4c46aaead8
|
Improved API tests and added test for short URLs creation
|
2019-02-02 11:05:28 +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
|
5756609531
|
Deleted deprecated constant
|
2019-02-02 11:05:28 +01:00 |
|
Alejandro Celaya
|
d289c62532
|
Fixed config file being deleted by mistake by build script
|
2019-01-28 10:52:05 +01:00 |
|
Alejandro Celaya
|
d6a7a6ce66
|
Created new API test
|
2019-01-27 12:36:22 +01:00 |
|
Alejandro Celaya
|
05c7672de3
|
Improved API tests by adding fixtures
|
2019-01-27 12:14:22 +01:00 |
|
Alejandro Celaya
|
76d8fd1023
|
Improved how API tests are executed
|
2019-01-27 10:54:04 +01:00 |
|
Alejandro Celaya
|
558e259b84
|
Minor refactorings
|
2019-01-27 10:30:38 +01:00 |
|
Alejandro Celaya
|
22d61fead7
|
Prepared configs for API tests
|
2019-01-26 10:19:20 +01:00 |
|
Alejandro Celaya
|
c4af1471f0
|
Simplified and united configs for tests
|
2019-01-26 09:42:08 +01:00 |
|
Alejandro Celaya
|
87ba7a7179
|
Updated structure for tests config files
|
2019-01-26 09:09:57 +01:00 |
|
Alejandro Celaya
|
687d8d91a9
|
Changed references to functional tests by database tests
|
2019-01-20 21:49:07 +01:00 |
|
Alejandro Celaya
|
144a5415da
|
Handled connection exceptions in Health action
|
2018-12-29 13:50:42 +01:00 |
|
Alejandro Celaya
|
d58e24bce5
|
Created health action related tests
|
2018-12-29 11:54:28 +01:00 |
|
Alejandro Celaya
|
0f86123ccb
|
Finished health action implementation
|
2018-12-29 11:54:28 +01:00 |
|
Alejandro Celaya
|
3f65ef998c
|
Created HealthAction
|
2018-12-29 11:54:28 +01:00 |
|
Alejandro Celaya
|
32070b1fa7
|
Do not use ServerRequestFactory::fromGlobals in tests
|
2018-12-25 23:19:36 +01:00 |
|
Alejandro Celaya
|
58dbee10c5
|
Used DQL for non-dynamic query in VisitRepository
|
2018-12-19 14:36:03 +01:00 |
|
Alejandro Celaya
|
f8207994dc
|
Removed superfluous method docs
|
2018-12-19 14:31:52 +01:00 |
|
Alejandro Celaya
|
2030401859
|
Migrated non-dynamic query to DQL in ShortUrlRepository
|
2018-12-19 14:29:43 +01:00 |
|
Alejandro Celaya
|
a28c1d17c5
|
Moved entities mappings from annotations to external config files
|
2018-12-16 12:08:03 +01:00 |
|
Alejandro Celaya
|
97a9289d5f
|
Created ShlinkTableTest
|
2018-12-08 14:11:14 +01:00 |
|
Alejandro Celaya
|
1983fc9b67
|
Added current page message in list short urls CLI command
|
2018-12-08 12:16:39 +01:00 |
|
Alejandro Celaya
|
bb40d84212
|
Used ShlinkTable on every location rendering a CLI table
|
2018-12-08 12:12:11 +01:00 |
|
Alejandro Celaya
|
46a35c553e
|
Created class to wrap CLI table rendering behavior
|
2018-12-08 11:32:16 +01:00 |
|
Alejandro Celaya
|
080943e810
|
Updated how Symfony commands are used to fulfill API from v4.2
|
2018-12-08 10:34:04 +01:00 |
|
Alejandro Celaya
|
c0bdd8fc77
|
Removed concept of execution context and piped CloseDbConnectionMiddleware always
|
2018-12-07 19:46:46 +01:00 |
|
Alejandro Celaya
|
737137b19f
|
Added favicon
|
2018-12-07 09:17:31 +01:00 |
|
Alejandro Celaya
|
a562bc661d
|
Improved CacheFactory class
|
2018-12-06 21:05:11 +01:00 |
|
Alejandro Celaya
|
7c5825d1bc
|
Removed custom AccessLogFactory by updating to zend-expressive-swoole 2.2
|
2018-12-05 21:26:19 +01:00 |
|
Alejandro Celaya
|
3faf6e967f
|
Updated changelog adding v1.15
|
2018-12-02 19:15:58 +01:00 |
|
Alejandro Celaya
|
a7a5667301
|
Improved repository tests
|
2018-12-02 19:13:49 +01:00 |
|
Alejandro Celaya
|
d7e89ebdae
|
Ensured custom slugs are case sensitive
|
2018-12-01 21:38:29 +01:00 |
|
Alejandro Celaya
|
b876870bd8
|
Encapsulated in VisitsParams how the itemsPerPage param is handled
|
2018-11-29 08:02:22 +01:00 |
|
Alejandro Celaya
|
1d4ef4e9a4
|
Ensured pagination params in visits list are properly parsed to integer
|
2018-11-28 20:53:04 +01:00 |
|
Alejandro Celaya
|
d0e0aea0f1
|
Updated visits to support pagination
|
2018-11-28 20:39:08 +01:00 |
|
Alejandro Celaya
|
b0f250ed8a
|
Created factory method to build VisitParams from a raw dataset
|
2018-11-28 19:58:45 +01:00 |
|
Alejandro Celaya
|
45254606d4
|
Added DTO used to pass filtering params to VisitsTracker
|
2018-11-27 21:09:27 +01:00 |
|
Alejandro Celaya
|
282ffef200
|
Ensured different loggers are used for swoole and for the app regular logs
|
2018-11-25 17:14:03 +01:00 |
|
Alejandro Celaya
|
f0330e9ae3
|
Ensured CloseDbConnectionMiddleware clears the entity manager
|
2018-11-24 13:24:43 +01:00 |
|
Alejandro Celaya
|
ccbc6c7a75
|
Created middleware which closes DB connection after every request
|
2018-11-24 12:55:00 +01:00 |
|
Alejandro Celaya
|
2fc2ad98aa
|
Updated config so that shlink logger dynamically uses standard output when running with swoole
|
2018-11-24 09:38:00 +01:00 |
|
Alejandro Celaya
|
16590b2dbb
|
Prepared project to support both swoole and regular app servers with fast cgi
|
2018-11-24 08:43:48 +01:00 |
|
Alejandro Celaya
|
f40349479e
|
Used more strict types in UrlShortener private methods
|
2018-11-24 07:52:57 +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
|
09add5fbff
|
Moved locale middleware to before the not found handler, so that it never gets executed otherwise
|
2018-11-18 20:15:37 +01:00 |
|
Alejandro Celaya
|
e30f49a791
|
Simplified error templates
|
2018-11-18 20:04:12 +01:00 |
|
Alejandro Celaya
|
64737b741b
|
Removed CLI language param from installation
|
2018-11-18 19:55:23 +01:00 |
|
Alejandro Celaya
|
d4d65bdf37
|
Added missing X-Api-Key header to cross domain middleware
|
2018-11-18 17:03:50 +01:00 |
|
Alejandro Celaya
|
90732a4fad
|
Removed translations from Rest module
|
2018-11-18 16:28:04 +01:00 |
|
Alejandro Celaya
|
c5015f5828
|
Removed translations from CLI module
|
2018-11-18 16:02:52 +01:00 |
|
Alejandro Celaya
|
b8faa6714a
|
Increased MSI to 65% (for sure this time)
|
2018-11-17 19:32:31 +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
|
6094d17718
|
Increased MSI to 64%
|
2018-11-17 18:40:53 +01:00 |
|
Alejandro Celaya
|
d2ed7d6417
|
Increased MSI to 62%
|
2018-11-17 18:06:21 +01:00 |
|
Alejandro Celaya
|
a705ef21a9
|
Increased MSI to 61%
|
2018-11-17 17:36:22 +01:00 |
|
Alejandro Celaya
|
ed3883b52c
|
Updated translations
|
2018-11-17 14:29:54 +01:00 |
|
Alejandro Celaya
|
dd2cffeee9
|
Reused ProcessVisitsCommand name as the lock name
|
2018-11-17 14:16:45 +01:00 |
|
Alejandro Celaya
|
1ceabf3bc3
|
Added locking capabilities to process visits command
|
2018-11-17 14:11:16 +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
|
1bc01057f3
|
Reduced the number of arguments in private method
|
2018-11-17 08:02:42 +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
|
1363194909
|
Improved code in LoggerFactory
|
2018-11-17 07:31:51 +01:00 |
|
Alejandro Celaya
|
4745a37549
|
Used a lower level on phpstan to avoid errors produced by Symfony 4.1.5 new phpdocs
|
2018-11-16 16:44:48 +01:00 |
|
Alejandro Celaya
|
9964d3e24b
|
Added progress bar to command downloading new GeoLite2 database file
|
2018-11-12 21:30:30 +01:00 |
|
Alejandro Celaya
|
58e8c8e182
|
Updated spanish translations
|
2018-11-12 21:04:02 +01:00 |
|
Alejandro Celaya
|
c7339f6cfa
|
Created an EmptyIpLocationResolver which always returns an empty resolution and can be used as a fallback while resolving IP addresses
|
2018-11-12 20:58:14 +01:00 |
|
Alejandro Celaya
|
1aa78f766a
|
Added step to download GeoLite2 db during installation
|
2018-11-12 20:51:53 +01:00 |
|
Alejandro Celaya
|
bf56e6adaf
|
Created UpdateDbCommandTest
|
2018-11-12 20:37:30 +01:00 |
|
Alejandro Celaya
|
e915b7e499
|
Updated GeoLite2 db reader service so that it is lazily created
|
2018-11-12 20:22:42 +01:00 |
|
Alejandro Celaya
|
de0470d200
|
Created command to update GeoLite2 database
|
2018-11-12 20:06:12 +01:00 |
|
Alejandro Celaya
|
3d7cf6992e
|
Created service to update geolite2 database file
|
2018-11-11 21:28:42 +01:00 |
|
Alejandro Celaya
|
06db082e3f
|
Updated translations
|
2018-11-11 21:28:42 +01:00 |
|
Alejandro Celaya
|
4a383cecaf
|
Set chain IP resolver as the default IP resolver
|
2018-11-11 21:28:42 +01:00 |
|
Alejandro Celaya
|
9a0f9207be
|
Fixed region resolved in GeoLite2
|
2018-11-11 21:28:42 +01:00 |
|
Alejandro Celaya
|
0e3a0a1eec
|
Created chain IP resolver which wrapps multiple resolver to fallback until one is capable of resolving an address
|
2018-11-11 21:28:42 +01:00 |
|
Alejandro Celaya
|
fd6d180eba
|
Created chainIpLocationResolver
|
2018-11-11 21:28:42 +01:00 |
|
Alejandro Celaya
|
d152e2ef9a
|
Removed the concept of API limits in IP location resolvers
|
2018-11-11 21:28:42 +01:00 |
|
Alejandro Celaya
|
b530cf4461
|
Created new namespace for IP geolocation elements
|
2018-11-11 21:28:42 +01:00 |
|
Alejandro Celaya
|
bbe85cde31
|
Migrated to GeoLite2 for IP location resolution
|
2018-11-11 21:28:42 +01:00 |
|
Alejandro Celaya
|
4070b1e23d
|
Updated user agent column in visits table to have a length of 512
|
2018-11-10 19:01:59 +01:00 |
|
Alejandro Celaya
|
a71245b883
|
Improved UrlShortenerConfigCustomizerTest covering new config options
|
2018-11-04 12:05:22 +01:00 |
|
Alejandro Celaya
|
057f88a36a
|
Added new not found short url config to installer
|
2018-11-04 11:58:35 +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
|
bfb96b0ae8
|
Fixed coding style
|
2018-11-02 12:07:13 +01:00 |
|
Alejandro Celaya
|
f64920e510
|
Replaced some array_map by Functional\map
|
2018-11-02 12:05:01 +01:00 |
|
Alejandro Celaya
|
664dc333ac
|
Used select_keys function in place of custom pick function
|
2018-11-02 11:08:20 +01:00 |
|
Alejandro Celaya
|
521f6f2b18
|
Added functional-php library
|
2018-11-02 10:54:42 +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
|
877b098b09
|
Improved public API in ApiKey entity, reducing anemic model
|
2018-10-28 15:24:41 +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
|
e1222de05b
|
Explicitly imported global functions in UrlShortener
|
2018-10-28 08:07:33 +01:00 |
|
Alejandro Celaya
|
787b791651
|
Replaced hardcoded exceptions concatenations by PSR approach
|
2018-10-20 12:50:10 +02:00 |
|
Alejandro Celaya
|
2eca0da852
|
Updated logger to properly format exceptions using processors
|
2018-10-20 12:37:35 +02:00 |
|
Alejandro Celaya
|
9e49604ce2
|
Replaced usages of mt_rand by random_int
|
2018-10-20 09:21:26 +02:00 |
|
Alejandro Celaya
|
55e021ba20
|
Added snake case column names to VisitLocation entity
|
2018-10-20 09:10:27 +02:00 |
|
Alejandro Celaya
|
98e3e22896
|
Moved global functions to handle array paths to a wrapper class
|
2018-10-20 08:00:33 +02: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
|
99f45d8853
|
Installed and registered new middleware to process IP addresses from request
|
2018-10-18 19:53:50 +02:00 |
|
Alejandro Celaya
|
5be7f839f3
|
Ensured visits with empty remote address are not tried to be located
|
2018-10-18 19:22:24 +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
|
75f6160432
|
Improved ApplicationConfigCustomizer while asking for visits threshold
|
2018-10-06 12:02:06 +02:00 |
|
Alejandro Celaya
|
5337eb48e7
|
Added missing type hint
|
2018-10-06 11:43:34 +02:00 |
|
Alejandro Celaya
|
86c30ee731
|
Added new visits_threshold config to installation
|
2018-10-06 11:41:26 +02:00 |
|
Alejandro Celaya
|
0525639329
|
Created CustomizableAppConfigTest
|
2018-10-06 11:19:02 +02:00 |
|
Alejandro Celaya
|
0d9c7282df
|
Used constants when possible when parsing app config
|
2018-10-06 11:12:42 +02:00 |
|
Alejandro Celaya
|
3b95925217
|
Fixed consig customizer tests
|
2018-10-06 10:05:25 +02:00 |
|
Alejandro Celaya
|
fa595f7aa3
|
Fixed non-existing keys not being set with default values in imported config
|
2018-10-06 09:40:18 +02:00 |
|
Alejandro Celaya
|
ff80f32f72
|
Created json_encode function which always maps to array and converts errors into exceptions
|
2018-10-05 19:19:44 +02:00 |
|
Alejandro Celaya
|
e55dbef2fc
|
Replaced in_array by contains
|
2018-10-05 18:52:42 +02:00 |
|
Alejandro Celaya
|
ebf2e459e8
|
Refactored Databa config customizer so that it uses new structure
|
2018-10-05 18:43:39 +02:00 |
|
Alejandro Celaya
|
1b5081ae21
|
Refactored Language and UrlShortener config customizers
|
2018-10-03 18:55:20 +02:00 |
|
Alejandro Celaya
|
d5736756f7
|
Ensured asking for previous shlink path is a mandatory question when updating shlink
|
2018-09-30 18:26:52 +02:00 |
|
Alejandro Celaya
|
757cf2e193
|
Updated ApplicationConfigCustomizer to support new keys in the future
|
2018-09-30 18:20:27 +02:00 |
|
Alejandro Celaya
|
3c3ef6fa05
|
Fixed installer tests
|
2018-09-30 11:14:38 +02:00 |
|
Alejandro Celaya
|
3282bfd03b
|
Ensured symfony/console stays in v4.1.4, since the next one throws a lot of phpstan errors
|
2018-09-30 11:02:01 +02:00 |
|
Alejandro Celaya
|
df74a04085
|
Fixed coding style
|
2018-09-30 09:47:47 +02:00 |
|
Alejandro Celaya
|
8323b87076
|
Ensured required config options cannot be left empty
|
2018-09-30 09:40:43 +02:00 |
|
Alejandro Celaya
|
48f01921e1
|
Used modern PHP features in CustomizableAppCOnfig
|
2018-09-30 09:04:00 +02:00 |
|
Alejandro Celaya
|
0183c8a4b7
|
Migrated from standard datetime objects to chronos objects
|
2018-09-29 12:52:32 +02:00 |
|
Alejandro Celaya
|
a81fd497d4
|
Updated Rest translations
|
2018-09-29 10:09:12 +02:00 |
|
Alejandro Celaya
|
49cca5cd69
|
Removed FQCN
|
2018-09-29 10:07:10 +02:00 |
|
Alejandro Celaya
|
f92cff6241
|
Removed not used translator config
|
2018-09-29 10:05:13 +02:00 |
|
Alejandro Celaya
|
d5392a5f59
|
Added missing void return type hint
|
2018-09-29 09:55:13 +02:00 |
|
Alejandro Celaya
|
a65ce649ac
|
Created new Installer module and moved everything from CLI there
|
2018-09-29 09:52:32 +02:00 |
|
Alejandro Celaya
|
5ecfe9f0f0
|
Implemented ApiKeyHeaderPlugin
|
2018-09-29 08:34:47 +02:00 |
|
Alejandro Celaya
|
0f5fb066d1
|
Converted AuthenticationpluginManager in a plain plugin manager and encasulated in new service adding extra behavior
|
2018-09-29 08:16:40 +02:00 |
|
Alejandro Celaya
|
8e61639598
|
Created system of authentication plugins
|
2018-09-28 22:08:01 +02:00 |
|