Commit Graph

362 Commits

Author SHA1 Message Date
Alejandro Celaya
bfeb915cd2 Replaced regular callbacks by arrow functions when possible 2019-12-29 23:16:55 +01:00
Alejandro Celaya
8667544b3a Updated to installer v3.3 2019-12-29 14:09:51 +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
34d8b396a4 Fixed merge conflicts 2019-12-23 11:17:20 +01:00
Alejandro Celaya
3634236214 Fixed some comments 2019-12-23 11:00:38 +01:00
Alejandro Celaya
35f5f4851e Moved class alias to container.php to avoid it from being lost after configuration is cached 2019-12-23 10:38:06 +01:00
Alejandro Celaya
4334ea295d Added missing local config 2019-12-18 15:00:39 +01:00
Alejandro Celaya
0152f6fa1a Added dev php config and removed .env dependencies 2019-12-17 21:20:24 +01:00
Alejandro Celaya
6bcdd5e6c8 Cleaned last beats of to make everything BC 2019-11-30 18:08:30 +01:00
Alejandro Celaya
cf3d763731 Replaced monolog-cascade by MonologFactory 2019-11-30 17:59:04 +01:00
Alejandro Celaya
e558bb17cb Updated dependencies 2019-11-30 17:21:36 +01:00
Alejandro Celaya
5d76a55c46 Updated how monolog handlers are registered so that it is possible to overwrite them via local config 2019-11-30 09:28:30 +01:00
Alejandro Celaya
6c37905c15 Fixed cross-domain headers being lost when ProblemDetailsMiddleware throws an error 2019-11-29 19:24:04 +01:00
Alejandro Celaya
6f0afe269d Moved InvalidShortCode exception handling to problem details 2019-11-24 12:41:12 +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
4e5ab21a47 Removed whoops dev dependency 2019-11-22 18:03:11 +01:00
Alejandro Celaya
a0510d6a69 Removed content-based-error-handler in preparation for the problem details module 2019-11-22 18:01:38 +01:00
Alejandro Celaya
d030fd1aa6 Updated GeolocationDbUpdater to always use a local lock even if redis config is provided 2019-11-17 11:09:37 +01:00
Alejandro Celaya
9df8bd63d4 Updated to installer 3.1 2019-11-10 13:07:57 +01:00
Alejandro Celaya
b66268867a Updated to shlink-installer 3 2019-11-02 21:15:26 +01:00
Alejandro Celaya
24c3a3e84c Defined new options for new redirect configuration 2019-11-02 17:23:21 +01:00
Alejandro Celaya
b59f4e2805 Defined new configs for not found redirects 2019-11-02 11:30:09 +01:00
Alejandro Celaya
1f449e8ce1 Disabled coroutines on swoole during API tests 2019-11-01 10:10:43 +01:00
Alejandro Celaya
2f09ff456c Updated logic to generate random short codes, increasing entropy 2019-10-11 09:14:25 +02:00
Alejandro Celaya
42e84e526e Added mariadb container for development environment 2019-10-06 11:21:41 +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
baf3093893 Added support for domain param to command and action to resolve a short URL 2019-10-04 21:17:02 +02:00
Alejandro Celaya
df1de020d1 Updated to shlink installer 2 2019-09-28 09:30:20 +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
28b5d8445e Ensured installer does not ask for the locale 2019-09-13 18:51:51 +02:00
Alejandro Celaya
7b0ccc9f69 Removed references to anything related with translations 2019-09-12 08:09:17 +02:00
Alejandro Celaya
fdb98fa2a9 Added service aliases that were removed from shlink-common 2019-09-11 20:25:04 +02:00
Alejandro Celaya
6720d12ab8 Removed use of Interop container 2019-08-12 18:59:02 +02:00
Alejandro Celaya
ef70e44a17 Registered Preview generator module 2019-08-11 19:43:06 +02:00
Alejandro Celaya
7c349e42fd Created TestUtils module 2019-08-11 16:30:46 +02:00
Alejandro Celaya
8f929c0ee3 Dropped Integrations module and created LICENSE files for new modules 2019-08-11 13:20:18 +02:00
Alejandro Celaya
5fa4fa0225 Moved some elements in Common module to more proper locations 2019-08-10 23:58:21 +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
b7cc460844 Deprecated previews generation 2019-08-09 18:12:33 +02:00
Alejandro Celaya
38016b3ba3 Created delegator factory that injects logger on services implementing LoggerAware, and used it for locks factory 2019-08-08 13:42:14 +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
73fd348490 Ensured Redis lock store is wrapped into a retry adapter 2019-08-07 17:37:24 +02:00
Alejandro Celaya
7aa246b550 Created RedisFactoryTest 2019-08-07 16:07:17 +02:00
Alejandro Celaya
1e294fe1bc Created RedisFactory which will create the redis adapter for the redis lock 2019-08-07 14:17:15 +02:00
Alejandro Celaya
dcfb12f454 Moved some classes to proper namespaces 2019-08-07 13:50:38 +02:00
Alejandro Celaya
8407fee96d Ensured generated installation config is not loaded on test envs 2019-08-07 10:59:05 +02:00
Alejandro Celaya
c04f0af56f Created command to run migrations with a lock 2019-08-06 20:48:48 +02:00
Alejandro Celaya
f78fa58cf1 Updated CreateDatabaseCommand to create the empty database if it does not exist 2019-08-05 10:08:59 +02:00
Alejandro Celaya
bdc93a45b5 Created EntityManagerDecorator to handle the automatic reopening, and removed this behavior from ClosDbConnectionMiddleware 2019-08-02 19:28:10 +02:00
Alejandro Celaya
ac08ed7cf9 Updated changelog 2019-08-01 18:31:18 +02:00
Alejandro Celaya
9cb316bdfa Added more headers to inspect while looking for the remote IP address 2019-08-01 18:27:43 +02:00
Alejandro Celaya
999beef349 Fixed GeolocationDbUpdater so that it does not try to interact with the reader if the file does not exist, preventing later errors 2019-07-23 17:07:40 +02:00
Alejandro Celaya
c6fdd8a59f Improvements and ensured LocateVisitsCommand does not swallow exceptions 2019-07-23 16:41:32 +02:00
Alejandro Celaya
af40e8de5c Improved ListenerProviderFactoryTest 2019-07-19 20:28:56 +02:00
Alejandro Celaya
d086131630 Moved all event-dispatching stuff to its own module 2019-07-19 19:54:39 +02:00
Alejandro Celaya
bccc177414 Created task running system based on event listener which are transparently cast into tasks 2019-07-18 19:07:07 +02:00
Alejandro Celaya
0dfadcbb4a Added package to delegate the execution of event listeners to a swoole task worker 2019-07-14 10:46:31 +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
42a5145895 Renamed Swoole logger to Access logger 2019-05-13 19:16:14 +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
df40199134 Renamed common config files so that they have the same preffix 2019-04-14 10:25:32 +02:00
Alejandro Celaya
249b8a4768 Added config to reload swoole during development 2019-03-16 09:57:09 +01:00
Alejandro Celaya
a22beeed08 Replaced localhost name by 127.0.0.1 for databases when in travis 2019-03-05 21:01:52 +01:00
Alejandro Celaya
840e377245 Added execution of db tests with mysql and postgres to travis 2019-03-05 20:50:32 +01:00
Alejandro Celaya
6fa255386b Defined config to run database tests against mysql and postgres 2019-03-05 20:36:35 +01:00
Alejandro Celaya
4b556cd79f Updated to shlinkio coding standard 1.1.0 2019-02-26 22:56:43 +01:00
Alejandro Celaya
456960e1f0 Updated required shlink-installer version and added config for installer plugins 2019-02-10 21:57: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
810b25ff14 Added API tests covering creating short URLs with new findIfExists param 2019-02-03 11:01:38 +01:00
Alejandro Celaya
772494f46f Moved process of sluggifying custom slug to a filter 2019-02-03 08:17:27 +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
ea1b285d52 Little refactopring on tests config file 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
558e259b84 Minor refactorings 2019-01-27 10:30:38 +01:00
Alejandro Celaya
f467bed24c Used multiple commands with && instead of composer array for API tests command 2019-01-27 10:15:48 +01:00
Alejandro Celaya
fa753ad6fb Added api test to test:ci command 2019-01-26 11:04:50 +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
284de28f76 Removed duplicated code to define testing database connection params 2019-01-20 22:08:32 +01:00
Alejandro Celaya
3f65ef998c Created HealthAction 2018-12-29 11:54:28 +01:00
Alejandro Celaya
2db03a163d Updated how config is imported and merged, so that it includes any config file in json format from config/params dir 2018-12-07 20:48:20 +01:00
Alejandro Celaya
c0bdd8fc77 Removed concept of execution context and piped CloseDbConnectionMiddleware always 2018-12-07 19:46:46 +01:00
Alejandro Celaya
9095e5b057 Enabled static files with swoole, otherwise, robots.txt and favicon.ico are never served when running shlink with swoole 2018-12-07 09:38:07 +01:00
Alejandro Celaya
accda36a7b Updated default secret_key value 2018-12-07 02:49:50 +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
e9972783d2 Removed non-needed services from expressive-helpers 2018-12-01 21:53:46 +01:00
Alejandro Celaya
d7e89ebdae Ensured custom slugs are case sensitive 2018-12-01 21:38:29 +01:00
Alejandro Celaya
aa413dab6d Configured improvements introduced in expressive swoole 2.1 2018-11-29 21:14:24 +01:00
Alejandro Celaya
6947805b5c Updated to zend-expressive-swoole 2.0.1 removing all workarounds 2018-11-28 20:43:44 +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
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
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
c5015f5828 Removed translations from CLI module 2018-11-18 16:02:52 +01:00
Alejandro Celaya
1ceabf3bc3 Added locking capabilities to process visits command 2018-11-17 14:11:16 +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
3d7cf6992e Created service to update geolite2 database file 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
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
77d810b735 Replaced all FQ global function and constants by explicit imports 2018-10-28 08:24:06 +01:00
Alejandro Celaya
2eca0da852 Updated logger to properly format exceptions using processors 2018-10-20 12:37:35 +02:00
Alejandro Celaya
1b4343ffc2 Moved update and install duplicated code to common config file 2018-09-29 10:00:17 +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
e88468d867 Renamed CheckAuthenticationMiddleware to just AuthenticationMiddleware 2018-09-24 23:07:10 +02:00
Alejandro Celaya
7ab993b764 Created and registered middleware which replaces short-code from short-url on rest paths 2018-09-20 20:27:34 +02:00
Alejandro Celaya
394d9ff4d2 Defined config and implementation to delete short URLs 2018-09-15 11:01:28 +02:00
Alejandro Celaya
af4c66d40a Added version placeholder in place of hardcoded version in config 2018-07-26 18:42:53 +02:00
Alejandro Celaya
63a69b05a1 Added Zend expressive swoole config provider to global config when present 2018-07-04 20:40:38 +02:00
Alejandro Celaya
1437ff48ce Ensured all core actions log errors 2018-05-07 10:58:49 +02:00
Alejandro Celaya
334710e92c Added middleware which injects the content-length header in the response if not present 2018-05-03 18:25:57 +02:00
Alejandro Celaya
91d350b12f Removed path workaround in PathVersionMiddleware and simplified code 2018-04-07 08:31:03 +02:00
Alejandro Celaya
6935b2ebe2 Updated system so that NotFoundDelegate is used 2018-03-26 20:37:04 +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
4d0fc1da07 Fixed PathVersionMiddleware not being properly propagated 2018-03-26 17:53:22 +02:00
Bruce Weirdan
f7e63710e4
updated tests to fix deprecations
also fixed cs errors in middleware-pipeline
2018-03-21 02:05:55 +02:00
Bruce Weirdan
d3b5cd5c57
fixed middleware deprecations 2018-03-21 01:46:26 +02:00
Alejandro Celaya
ea80b6d48a Replaced vlucas/phpdotenv package by symfony/dotenv 2017-12-27 16:33:06 +01:00
Alejandro Celaya
af0ff0f65b Console commands are now lazy loaded 2017-12-27 15:37:26 +01:00
Alejandro Celaya
781ca39938 Fixed merge conflicts 2017-10-23 13:28:09 +02:00
Alejandro Celaya
91442a3379 Ensured same testing database is used to generate with entities and to run functional tests 2017-10-23 12:19:28 +02:00
Mikolaj Gogula
d04abd1f75 Added validate_url config key for development. 2017-10-23 11:28:04 +02:00
Alejandro Celaya
c2feffa50c First version of functional tests working 2017-10-23 11:21:00 +02:00
Alejandro Celaya
97a54aef06 Imported function in config file 2017-10-21 11:28:44 +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
e53ffc8d43 Migrated templates to plates 2017-10-12 10:03:20 +02:00
Alejandro Celaya
453ca1728e Updated system to use plates instead of twig 2017-10-12 09:40:42 +02:00
Alejandro Celaya
602e11d5e7 Added namespace to functions 2017-07-16 09:28:40 +02:00
Alejandro Celaya
5d2698e8a1 Created EmptyResponseImplicitOptionsMiddlewareFactoryTest 2017-04-13 09:52:17 +02:00
Alejandro Celaya
596d1ee797 Registered implicit options middleware 2017-04-13 09:43:11 +02:00
Alejandro Celaya
f6c39285c9 Updated to expressive 2 and used new error handling system 2017-03-24 21:10:25 +01:00
Alejandro Celaya
0e2a289f9f Updated to phpunit 6 2017-03-24 20:34:18 +01:00
Alejandro Celaya
b4548f3401 Added configs to enable fastroute cache 2017-01-22 11:07:18 +01:00
Alejandro Celaya
a8bf699f2d Fixed error with non-registered service on latest expressive-twig-renderer version 2017-01-21 20:19:30 +01:00
Alejandro Celaya
7781f07352 Added local entity manager config that allows db host name to be set 2017-01-21 09:16:00 +01:00
Alejandro Celaya
2c91ded514 Improved PreviewGenerator by composing an ImageBuilder that creates new Image objects fore each URL 2016-08-18 12:21:26 +02:00
Alejandro Celaya
60c68c914b Managed error while generating URL previews by throwing an exception 2016-08-18 11:17:17 +02:00
Alejandro Celaya
26adf48b48 Added wkhtmltopdf stuff and created preview generator service 2016-08-18 10:19:33 +02:00
Alejandro Celaya
25380e4727 Moved console Application creation to factory 2016-08-14 23:08:26 +02:00
Alejandro Celaya
12322b7368 Improved config loading by using only one config provider object 2016-08-14 22:56:22 +02:00
Alejandro Celaya
a608f7d0f4 Minor name change 2016-08-14 21:28:21 +02:00
Alejandro Celaya
9a42d70604 Added custom config params to merged confg 2016-08-14 18:15:10 +02:00
Alejandro Celaya
cffa43a155 Created installation script and installation command 2016-08-14 09:09:23 +02:00
Alejandro Celaya
a8ea458649 Fixed distributable local config file 2016-08-12 17:55:07 +02:00
Alejandro Celaya
8f4d305982 Added ErrorHandler package dependency and remove local files 2016-08-12 17:54:32 +02:00
Alejandro Celaya
b7f3c332e4 Created Logger factory and logger config, and added logger dependencies 2016-08-08 11:56:19 +02:00
Alejandro Celaya
cff9b7c0b5 Deleted docs which are now in Shlink's website 2016-08-08 11:17:14 +02:00
Alejandro Celaya
a60080b1ce Created JWTService and related classes 2016-08-07 14:44:33 +02:00
Alejandro Celaya
2767a14101 Created ApiKey entity 2016-08-06 12:50:44 +02:00
Alejandro Celaya
270dbc6028 Created new entity_manager configuration, dropping old database first level config key 2016-08-06 12:40:31 +02:00
Alejandro Celaya
30988b10d1 Added Laravel's env helper 2016-08-01 14:36:43 +02:00
Alejandro Celaya
d73d3049b7 Removed dependency on expressive-helpers package 2016-07-31 16:42:19 +02:00
Alejandro Celaya
7b1e855e7f Renamed services config files to dependencies 2016-07-31 16:32:27 +02:00
Alejandro Celaya
a957f66ed0 Renamed services first level config key to dependencies 2016-07-31 16:30:05 +02:00
Alejandro Celaya
5cdd782ce1 Removed whiteline 2016-07-30 13:54:00 +02:00
Alejandro Celaya
e345c2bbfe Moved error handler classes from Expressive namespace to ErrorHandler namespace 2016-07-30 13:51:52 +02:00
Alejandro Celaya
2f5119d0b3 Split ContentBasedErrorHandler responsibilities into two separated classes 2016-07-30 10:08:34 +02:00
Alejandro Celaya
75e744838c Created content based error handler which allows managing errors in a different way depending on the Accepted content type from the client 2016-07-27 20:17:23 +02:00
Alejandro Celaya
0ef1e416c6 Created middleware to catch rest errors and return JSON responses 2016-07-26 09:54:13 +02:00
Alejandro Celaya
cb99130c1e Created translator and used inside one of the commands 2016-07-21 15:08:46 +02:00
Alejandro Celaya
31af0eea04 Improved main config file and fixed tests whitelist 2016-07-19 23:35:47 +02:00
Alejandro Celaya
aaf4f1dfe5 Improved config loading so that autoloaded overrides module-specific 2016-07-19 23:30:23 +02:00
Alejandro Celaya
39598d8608 Moved templates and templates config to Core module 2016-07-19 18:32:59 +02:00
Alejandro Celaya
ab9c2f728a Created Core module 2016-07-19 18:01:39 +02:00
Alejandro Celaya
ba06ad44bd Created Common module 2016-07-19 17:38:41 +02:00
Alejandro Celaya
7efb3b3a86 Created cli-specific services config file 2016-07-19 17:17:37 +02:00
Alejandro Celaya
170c96b8ef Fixed config files names 2016-07-19 17:12:50 +02:00
Alejandro Celaya
55f954f50f Created Rest module 2016-07-19 17:07:59 +02:00
Alejandro Celaya
95d0beea3c Created CLI module 2016-07-19 16:50:02 +02:00
Alejandro Celaya
5eefaf3071 Added config manager package 2016-07-19 16:30:48 +02:00
Alejandro Celaya
2e00a8dec6 Created command to list visits for a shortcode 2016-07-06 20:21:34 +02:00
Alejandro Celaya
60f5e5290e Created new command to list short urls 2016-07-06 19:41:24 +02:00
Alejandro Celaya
96478f3400 Created the console application via a factory 2016-07-05 23:25:39 +02:00
Alejandro Celaya
9ce5e255f1 Created new CLI command to parse a shortcode 2016-07-05 23:16:23 +02:00
Alejandro Celaya
baf5936cf1 More cross-domain improvements 2016-07-05 19:19:23 +02:00
Alejandro Celaya
bd36c65a73 Fixed some cross-origin issues 2016-07-05 19:08:34 +02:00
Alejandro Celaya
431169eb8c Created middleware that checks authentication 2016-07-04 17:54:24 +02:00
Alejandro Celaya
dfc5bfd0f2 Created rest route to perform authentication 2016-07-04 14:45:18 +02:00
Alejandro Celaya
56b2bd3d56 Created entity to persist rest tokens 2016-07-04 14:04:19 +02:00
Alejandro Celaya
bbef3444c2 Added errorhanler local config distributable file 2016-07-04 13:14:01 +02:00
Alejandro Celaya
67ef171262 Improved middleware pipeline and added cross-domain headers for ajax requests 2016-07-04 08:33:31 +02:00
Alejandro Celaya
4129d35447 Added list short URLs endpoint to rest api 2016-07-04 08:33:31 +02:00
Alejandro Celaya
305df3a95b Implemented rest endpoint to return shortcode visits 2016-07-04 08:33:31 +02:00
Alejandro Celaya
ab8ccd7df1 Added get URL rest endpoint 2016-07-04 08:33:31 +02:00
Alejandro Celaya
1fbefbbd15 Created shortcode creation rest endpoint 2016-07-04 08:33:31 +02:00
Alejandro Celaya
e09915dd21 Removed cli-related middlewares and factories 2016-07-03 09:16:56 +02:00
Alejandro Celaya
35147fecb2 Replaced cli execution using expressive middleware by symfony/console 2016-07-03 09:14:27 +02:00
Alejandro Celaya
aba7d3185a Added shortcode chars as an environment variable 2016-05-01 11:21:54 +02:00
Alejandro Celaya
4ae08c02ec Created VisitsTracker service to track visits to shortcodes 2016-04-30 19:18:42 +02:00