Commit Graph

410 Commits

Author SHA1 Message Date
Alejandro Celaya
c7a621cb31 Removed transactionality when dispatching async events, as they run in different processes with different db connections 2021-10-23 13:22:42 +02:00
Alejandro Celaya
9a31f53d4d Updated to coding standard v2.2.0 2021-08-05 19:47:17 +02:00
Alejandro Celaya
7c06633a67 Ensured default domain redirects cannot be edited through regular approach 2021-08-03 18:28:09 +02:00
Alejandro Celaya
565fe4c348 Added redirects to the list of domains 2021-08-03 17:00:26 +02:00
Alejandro Celaya
7b43403b1c Fixed error when editing domain redirects for a new domain 2021-08-03 16:48:17 +02:00
Alejandro Celaya
9f25979b4c Added validation to not found redirects for domain 2021-08-03 14:08:36 +02:00
Alejandro Celaya
b78660c685 Updated installer 2021-08-02 20:50:35 +02:00
Alejandro Celaya
6a40bbdcb5 Created new action to set redirects for a domain 2021-08-02 20:49:39 +02:00
Alejandro Celaya
4ef5ab7a90 Fixed wrong domains getting resolved for an API key roles 2021-08-02 20:49:39 +02:00
Alejandro Celaya
db93498ee6 Fixed merge conflicts 2021-07-30 18:19:32 +02:00
Alejandro Celaya
7b9ebbbb5f Fixed use of ImplicitOptionsMiddleware with its new signature 2021-07-30 18:05:03 +02:00
Alejandro Celaya
95770ac104 Increased phpstan level to 8 2021-07-20 12:51:07 +02:00
Alejandro Celaya
b8fa234dbb Fixed some phpstan errors 2021-07-19 18:35:42 +02:00
Alejandro Celaya
bceea090ed Increaed phpstan level to 7 2021-07-17 20:58:24 +02:00
Alejandro Celaya
9c6ba4bc61 More PHP 8 syntactic sugar 2021-05-23 12:37:53 +02:00
Alejandro Celaya
c01121d61a Added nullsafe operator to simplify conditions 2021-05-23 12:31:10 +02:00
Alejandro Celaya
e0f0bb5523 Migrated all constructor props to property promotion when possible 2021-05-23 11:57:31 +02:00
Alejandro Celaya
0a5c265b12 Extracted ApiKey metadata to the ApiKeyMeta object 2021-03-14 09:59:35 +01:00
Alejandro Celaya
9b55389538 First steps to create ApiKeyMeta 2021-03-14 09:15:52 +01:00
KetchupBomb
b93b14986e Feature/name api keys 2021-03-07 21:30:37 +00:00
Alejandro Celaya
e093480a5b Fixed API tests 2021-02-26 20:24:57 +01:00
Alejandro Celaya
1498b72966 Updated to happyr/doctrine-specification 2, with some fixes 2021-02-26 20:01:16 +01:00
Alejandro Celaya
3f2d38a86a Removed all uses of the 'whitelist' term 2021-02-16 15:28:03 +01:00
Alejandro Celaya
5d98316c4e Created new REST API action to list orphan visits 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
9cddedcdba Extracted logic to stringify ShortUrls to its own service 2021-02-01 23:18:52 +01:00
Alejandro Celaya
c61e1e1c0e Updated EditShortUrlAction so that it returns the parsed short URL instead of an empty response 2021-01-31 13:21:23 +01:00
Alejandro Celaya
85bc5ce595 Moved transformer to constructor in some actions, to avoid creating it over and over 2021-01-31 13:12:56 +01:00
Alejandro Celaya
cdfd14e63f Deprecated action and endpoint to edit short URL tags 2021-01-31 12:24:26 +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
0cbd965010 Fixed merge conflicts 2021-01-24 14:21:21 +01:00
Alejandro Celaya
f585cfe02e Fixed CrossDomainMiddleware not inferring proper allowed methods 2021-01-24 13:49:57 +01:00
Alejandro Celaya
76aa6502db Changed value returned in Access-Control-Allow-Origin so that it is always set to '*' 2021-01-24 09:22:46 +01:00
Alejandro Celaya
55ddc4ae75 Replaced laminas-paginator with pagerfanta 2021-01-23 14:37:34 +01:00
Alejandro Celaya
da9896a28b Fixed single step shortening endpoint 2021-01-21 19:26:19 +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
c9ff2b3834 Updated services required to initialize API keys with roles 2021-01-10 20:05:14 +01:00
Alejandro Celaya
f827186c77 Updated API test fixtures to include API keys with roles 2021-01-10 08:40:32 +01:00
Alejandro Celaya
14eeb91c58 Added db test for VisitRepository::countVisits 2021-01-09 17:54:04 +01:00
Alejandro Celaya
bef1b13a33 Enhanced DomainRepositoryTest covering API key permissions 2021-01-09 13:16:33 +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
041f231ff2 Implemented mechanism to add/remove roles from API keys 2021-01-06 10:59:08 +01:00
Alejandro Celaya
f821dea06c Fixed typo on fixture 2021-01-05 19:29:42 +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
65797b61a0 Applied API role specs to single short URL deletion 2021-01-03 14:03:10 +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
df53e6c6f2 Created specs for API key roles 2021-01-02 20:08:49 +01:00
Alejandro Celaya
7e6882960e Added a system to set roles to API keys 2021-01-02 19:35:16 +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
90551ff3bc Added used API key to request 2021-01-02 10:34:35 +01:00
Alejandro Celaya
850a5b412c Removed Access-Control-Expose-Headers header from CrossDomainM;iddleware, as it's actually not correct 2020-12-31 15:41:02 +01:00
Alejandro Celaya
84331135f7 Created API tests for CORS 2020-12-31 13:28:06 +01:00
Alejandro Celaya
d6395a3de8 Deleted everything related with authentication plugins, as shlink only supports API key auth since v2.0.0 2020-11-07 12:53:14 +01:00
Alejandro Celaya
27bc8d4823 Ensured API key is tracked when creating short URLs from the REST API 2020-11-07 10:23:08 +01:00
Alejandro Celaya
97f89bcede Simplified transactional URL shortening 2020-11-06 20:05:57 +01:00
Alejandro Celaya
544836b986 Deprecated tags creation 2020-11-02 11:05:14 +01:00
Alejandro Celaya
073e4eeac8 Created command to list domains 2020-09-27 12:39:02 +02:00
Alejandro Celaya
76d6d9a7a9 Created rest endpoint to list existing domains 2020-09-27 09:53:12 +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
08950f6433 Replaced UriInterface by string when creating a short URL 2020-06-27 10:48:35 +02:00
Alejandro Celaya
68919c19b8 Added deprecation in BodyParserMiddleware 2020-06-08 23:25:54 +02:00
Alejandro Celaya
3218f8c283 Added Created endpoint to serve visits by tag 2020-05-09 09:53:45 +02:00
Alejandro Celaya
06c59fe2dd Fixed invalid imports after class refactoring 2020-05-08 10:29:24 +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
aece9e68ba Removed logger dependency from rest actions 2020-05-01 12:08:44 +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
5beaab85ac Renamed GetVisitsAction to ShortUrlVisitsAction 2020-05-01 11:17:07 +02:00
Alejandro Celaya
15a8305209 Fixed random 503 responses from the HealthAction when the database connection injected on it has expired 2020-04-25 19:58:49 +02:00
Alejandro Celaya
078c8ea011 Changed default mercure token duration to 1 day 2020-04-18 11:29:49 +02:00
Alejandro Celaya
b858d79b9e Fixed mercure hub URL returned by MercureInfoAction 2020-04-12 17:50:09 +02:00
Alejandro Celaya
31db97228d Created MercureInfoActionTest 2020-04-12 14:22:23 +02:00
Alejandro Celaya
2ffbf03cf8 Created action to get mercure integration info 2020-04-12 13:59:10 +02:00
Alejandro Celaya
4e6836c605 Long URLs can now be edited on existing short URLs 2020-03-22 14:04:01 +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
bb231e668b Registered middleware generating request ID 2020-02-19 18:58:25 +01:00
Alejandro Celaya
343ee04acb Created middleware which injects default short code length from config when a value was not explicitly provided 2020-02-18 19:21:34 +01:00
Alejandro Celaya
ccec6e03aa Updated middleware which drops default domain so that it is capable of doing it from parsed body too 2020-02-08 12:22:07 +01:00
Alejandro Celaya
c07c37f7bd Created middleware to drop domain from query when it is the default one 2020-02-02 19:03:43 +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
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
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
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
09e3464426 Ensured CrossDomainMiddleware always returns empty responses with success status on OPTIONS requests 2020-01-11 20:36:17 +01:00
Alejandro Celaya
2b544ad141 Refactored Rest ConfigProvider so that it appends the health action with and without version 2020-01-07 18:07:51 +01:00
Alejandro Celaya
36d5e057d0 Ensured the health action is registered bit with and without version 2020-01-06 23:32:43 +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
339121fbb1 Removed PathVersionMiddleware as routes without version are not longer supported 2019-12-31 16:26:00 +01:00
Alejandro Celaya
5c90a7c7a7 Removed remaining deprecated elements 2019-12-31 16:05:02 +01:00
Alejandro Celaya
434b56fa8c Removed several deprecated components 2019-12-31 15:38:37 +01:00
Alejandro Celaya
bd6243b2ac Updated to problem-details 1.1, removing custom code 2019-12-30 22:42:29 +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
8ad8b08aa4 Improved ListShortUrlsActionTest covering different scenarios in which date ranges are provided 2019-12-16 21:55:48 +01:00
Alejandro Celaya
99fd5f937e Fixed existing tests and coding styles 2019-12-16 15:16:18 +01:00
Alejandro Medina
a28e7987e6 fixup! Add date range filter to list urls endpoint parameters 2019-12-14 18:32:58 -03:00
Alejandro Medina
f9ba322547 Add date range filter to list urls endpoint parameters 2019-12-14 13:55:03 -03:00
Alejandro Celaya
a070a68a57 Fixed merge conflicts 2019-12-06 23:34:50 +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
57070ef155 Improved Rest's ConfigProvider test to kill more mutants 2019-12-01 12:04:31 +01:00
Alejandro Celaya
1bf56b658b Improved domain exception tests to cover more possible mutants 2019-12-01 10:24:42 +01:00
Alejandro Celaya
fffb2872ef Replaced hardcoded error response by the use of a problem details action 2019-11-26 22:18:55 +01:00
Alejandro Celaya
3b56fc3760 Refactored and fixed unit tests 2019-11-26 22:12:52 +01:00
Alejandro Celaya
5213faa0a1 Converted VerifyAuthenticationException into a problem details exception 2019-11-26 22:03:40 +01:00
Alejandro Celaya
6f4e5175da Converted MissingAuthenticationException into a problem details exception 2019-11-26 21:43:29 +01:00
Alejandro Celaya
509c9fe2e8 Improved AuthenticationMiddleware API tests 2019-11-26 21:29:25 +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
cdd36b6712 Created BackwardsCompatibleProblemDetailsMiddlewareTest 2019-11-24 13:24:52 +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
a0510d6a69 Removed content-based-error-handler in preparation for the problem details module 2019-11-22 18:01:38 +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
8607d58e18 Created API tests for errors when editting short URL tags 2019-11-21 18:49:55 +01:00
Alejandro Celaya
34e60ec5b8 Created API tests for errors when getting short URL visits 2019-11-20 20:58:16 +01:00
Alejandro Celaya
d044e1a5b7 Created API tests for errors when resolving short URLs 2019-11-20 20:44:03 +01:00
Alejandro Celaya
9096318968 Created API tests for errors when deleting short URLs 2019-11-20 20:38:19 +01:00
Alejandro Celaya
ba6e8c4092 Created API tests for errors when editing a short URL 2019-11-20 20:31:18 +01:00
Alejandro Celaya
98b6dba05d Removed generic error handling from action that will usually be handled by ErrorHandler middleware 2019-11-20 20:21:02 +01:00