Commit Graph

2005 Commits

Author SHA1 Message Date
Alejandro Celaya
80e9c2452b Convert encoding of resolved titles based on page encoding 2024-05-22 18:11:55 +02:00
Alejandro Celaya
89b73a9cfa Update to latest phpstan 2024-05-21 18:09:45 +02:00
Marijn Vandevoorde
9b16d7acc0 Replaces short-id by nano-id 2024-05-16 14:00:39 +02:00
Alejandro Celaya
4084d301ca Update to PHPUnit 11 2024-05-12 12:49:53 +02:00
Alejandro Celaya
8cd77391cc
Revert "Remove unneeded DISTINCT from list short URLs query" 2024-05-09 09:43:55 +02:00
Alejandro Celaya
cb3a690294 Remove unneeded DISTINCT from list short URLs query 2024-05-06 18:50:10 +02:00
Alejandro Celaya
163244f40f Add option to allow all URLs to be crawlable via robots.txt 2024-04-22 09:16:44 +02:00
Alejandro Celaya
82e7094f3a Fix VisitIterationRepositoryTest for MS SQL 2024-04-13 20:48:03 +02:00
Alejandro Celaya
f0e62004d5 Add unit test to MatomoSendVisitsCommand 2024-04-13 20:30:31 +02:00
Alejandro Celaya
bbdbafd8db Test MatomoVisitSender::sendVisitsInDateRange 2024-04-13 19:27:03 +02:00
Alejandro Celaya
6121efec59 Create command to send visits to matomo 2024-04-13 18:59:09 +02:00
Alejandro Celaya
4fdbcc25a0 Pass visit date to matomo when tracking 2024-04-13 18:59:09 +02:00
Alejandro Celaya
ca42425b33 Make Visit::date field readonly 2024-04-13 18:59:09 +02:00
Alejandro Celaya
ce0f61b66d Allow filtering by date in VisitIterationRepository 2024-04-13 18:59:09 +02:00
Alejandro Celaya
13ee71f351 Move allowed HTTP methods definition to RedirectStatus enum 2024-04-13 18:59:09 +02:00
Alejandro Celaya
c57494d7cd Extract logic to send visits to Matomo to its own service 2024-04-13 18:59:09 +02:00
Alejandro Celaya
8a273e01e9 Allow memory_limit to be configurable 2024-04-09 08:47:01 +02:00
Alejandro Celaya
e1cf0c4ea7 Forward request ID from sync request process to async job processes 2024-04-07 11:26:17 +02:00
Alejandro Celaya
b7db676cba Test non-interactivity on DeleteExpiredShortUrlsCommand 2024-04-03 19:24:08 +02:00
Alejandro Celaya
527d28ad81 Add DeleteExpiredShortUrlsCommand test 2024-04-03 19:18:56 +02:00
Alejandro Celaya
f2371e8a80 Add command to delete expired short URLs 2024-04-03 18:57:09 +02:00
Alejandro Celaya
fd882834d3 Create repository to handle expired short URLs deletion 2024-04-03 09:52:38 +02:00
Alejandro Celaya
f92a720d63 Use short_url_visits_counts table when excluding short URLs which reached max visits 2024-04-03 09:06:43 +02:00
Alejandro Celaya
d6f58698b7
Merge pull request #2082 from acelaya-forks/feature/orphan-visits-counts
Track orphan visits counts
2024-04-01 10:28:05 +02:00
Alejandro Celaya
d090260b17 Track orphan visits counts 2024-04-01 10:22:51 +02:00
Alejandro Celaya
284b28e8d9 Track short URL title as document title when sending visits to matomo 2024-03-31 13:51:03 +02:00
Alejandro Celaya
b50547d868 Create new orphan_visits_counts table 2024-03-31 13:18:44 +02:00
Alejandro Celaya
ab6fa490e5 Test ShortUrlVisitsCountRepository via VisitRepositoryTest 2024-03-31 12:37:22 +02:00
Alejandro Celaya
55e2780f50 Load non-orphan visits overview via short url visits counts 2024-03-31 12:27:20 +02:00
Alejandro Celaya
90514c603f Ensure ordering by title is consistent between database engines 2024-03-29 09:35:54 +01:00
Alejandro Celaya
071cb9af2b Improve tags stats performance by using the new short_url_visits_counts table 2024-03-28 19:17:37 +01:00
Alejandro Celaya
ab96297e58 Make sure VisitsTracker wraps as little operations as possible in the transaction 2024-03-28 17:06:18 +01:00
Alejandro Celaya
c4fd3a74c5 Fix type hint in migration 2024-03-28 16:10:56 +01:00
Alejandro Celaya
da922fb2a7 Add ShortUrlVisitsCountTrackerTest 2024-03-28 09:43:58 +01:00
Alejandro Celaya
4a05c4be40 Wrap visits tracking in transaction 2024-03-27 19:14:41 +01:00
Alejandro Celaya
cef30c8e2d Fix type in Version20240318084804 2024-03-27 19:08:25 +01:00
Alejandro Celaya
8417498f08 Fixes on static check and unit tests 2024-03-27 19:08:25 +01:00
Alejandro Celaya
10e941cea6 Add missing COALESCE when summing visits counts 2024-03-27 19:08:25 +01:00
Alejandro Celaya
3d7b1ca799 Move from preFlush to onFlush + postFlush 2024-03-27 19:08:25 +01:00
Alejandro Celaya
b236354fc7 Fix order in which entities are flushed in ShortUrlListRepositoryTest 2024-03-27 19:08:25 +01:00
Alejandro Celaya
6fbb5a380d Add missing default value for short url visits count 2024-03-27 19:08:25 +01:00
Alejandro Celaya
054eb42613 Remove no-longer used methods in OrderableField enum 2024-03-27 19:08:25 +01:00
Alejandro Celaya
6074f4475d Add preFlush listener to track visits counts 2024-03-27 19:08:25 +01:00
Alejandro Celaya
7afd3fd6a2 Load visits and nonBotVisits via sub-queries in ShortUrlListRepository 2024-03-27 19:08:25 +01:00
Alejandro Celaya
7d415e40b2 Add unique index in short_url_visits_counts 2024-03-27 19:08:25 +01:00
Alejandro Celaya
3c89d252d2 Simplify logic to match order by for short URL lists 2024-03-27 19:08:25 +01:00
Alejandro Celaya
f678873e9f Use pre-calculated visits counts when listing short URLs 2024-03-27 19:08:25 +01:00
Alejandro Celaya
17d37a062a Add new table to track short URL visits counts 2024-03-27 19:08:25 +01:00
Alejandro Celaya
c599d8a0ed Make sure tags fallback to empty array when null 2024-03-27 13:04:42 +01:00
Alejandro Celaya
6fe269193a Expose visitedUrl when serializing any kind of visit, not only orphan visits 2024-03-24 17:20:41 +01:00
Alejandro Celaya
d948543d5c Wrap JSON serialization for any kind of visit in Visit entity itself 2024-03-24 17:06:11 +01:00
Alejandro Celaya
a327e6c0a7 Make Visit::jsonSerialize() return different props for orphan visits 2024-03-24 16:54:49 +01:00
Alejandro Celaya
fbd35b7974 Add more named constructors to Ordering class 2024-03-20 09:15:45 +01:00
Alejandro Celaya
b94a22e6a7 Rename Ordering::emptyInstance to Ordering::none to make it more clear 2024-03-20 09:06:35 +01:00
Alejandro Celaya
e028d8ea31 Move logic to serialize ShortUrls to entity itself 2024-03-18 22:09:15 +01:00
Alejandro Celaya
5524476787 Modernize ShortUrl entity 2024-03-18 20:21:26 +01:00
Alejandro Celaya
78526fb405 Modernize Visit entity 2024-03-18 19:57:30 +01:00
Alejandro Celaya
b2dee43bb0 Modernize VisitLocation entity 2024-03-18 19:11:42 +01:00
Alejandro Celaya
60e9443b12 Modernize ApiKey entity 2024-03-18 18:33:56 +01:00
Alejandro Celaya
ab8fa52ca4 Modernize Domain entity 2024-03-18 18:15:05 +01:00
Alejandro Celaya
053e026982 Fix error when redirecting to a non-http URL 2024-03-15 23:00:40 +01:00
Alejandro Celaya
0f2cd3cb7f Remove useless return annotation 2024-03-12 09:09:59 +01:00
Alejandro Celaya
5427152f15 Make sure GeoLite2 db file is always read from the filesystem befor etrying to operate on it 2024-03-09 09:30:05 +01:00
Alejandro Celaya
be8cf56240 Ensure language redirect conditions do not match for too low quality accepted languages 2024-03-07 23:21:31 +01:00
Alejandro Celaya
97cb30565c Add v4.0.0 2024-03-03 18:50:23 +01:00
Alejandro Celaya
4aa65f750e Add CLI test for manage redirects command, to cover validation errors 2024-03-03 13:16:37 +01:00
Alejandro Celaya
63c533fa62 Fix incorrect rule selection when deleting rules with same long URL 2024-03-03 12:59:58 +01:00
Alejandro Celaya
8751d6c315 Add unit test for RedirectRuleHandler 2024-03-03 12:51:17 +01:00
Alejandro Celaya
eb40dc2d5d Add unit test for ShortUrlRedirectRuleService::saveRulesForShortUrl 2024-03-03 10:36:17 +01:00
Alejandro Celaya
c9d1a955b9 Add ManageRedirectRulesCommand unit test 2024-03-03 10:27:21 +01:00
Alejandro Celaya
c346fd0602 Reduce duplicated code when parsing short codes and domains from CLI 2024-03-03 10:11:12 +01:00
Alejandro Celaya
a45550b0c6 Extract logic to determine list of rules from ManageRedirectRulesCommand to a helper service 2024-03-03 09:51:56 +01:00
Alejandro Celaya
a843c59d77 Fix inconsistencies when editing rules and saving a mix of new and old ones 2024-03-03 09:09:43 +01:00
Alejandro Celaya
3bfb29a51c Test new methods for RedirectCondition and ShortUrlRedirectRule 2024-03-03 08:47:31 +01:00
Alejandro Celaya
d8ede3263f Implement command to manage redirect rules for a short URL 2024-03-02 23:01:49 +01:00
Alejandro Celaya
7f560e6a65 Add SetRedirectRulesAction API test 2024-02-29 20:20:04 +01:00
Alejandro Celaya
8f233221e5 Add SetRedirectRulesAction unit test 2024-02-29 20:14:15 +01:00
Alejandro Celaya
f700abd65d Add tests for ShortUrlRedirectionRuleService::setRulesForShortUrl 2024-02-29 19:55:34 +01:00
Alejandro Celaya
f9e4d6d617 Create RedirectRulesDataTest 2024-02-29 19:17:10 +01:00
Alejandro Celaya
d9286765e1 Create endpoint to set redirect rules for a short URL 2024-02-29 10:16:41 +01:00
Alejandro Celaya
070d74830b Remove name and uniqueness in redirect condition table 2024-02-29 09:05:30 +01:00
Alejandro Celaya
ab7824aa85 Add unit test for ListRedirectRulesAction 2024-02-28 09:14:27 +01:00
Alejandro Celaya
67bafbe44e Add API test for redirect rules list 2024-02-28 08:55:44 +01:00
Alejandro Celaya
c4805b8152 Remove old error models and examples from swagger spec 2024-02-28 08:39:26 +01:00
Alejandro Celaya
33729289c7 Create endpoint to list redirect rules for a specific short URL 2024-02-27 21:00:53 +01:00
Alejandro Celaya
a72e22e046 Unit-test RedirectCondition for devices 2024-02-27 19:24:26 +01:00
Alejandro Celaya
36749658da Remove device long URLs support 2024-02-27 18:46:49 +01:00
Alejandro Celaya
4ad3dc0bc7 Create new migration to drop old device_long_urls table 2024-02-27 09:09:03 +01:00
Alejandro Celaya
73864b923d Add migration to migrate device_long_urls to redirect_rules 2024-02-26 23:42:37 +01:00
Alejandro Celaya
60fef3de74 Merge lines 2024-02-26 20:06:15 +01:00
Alejandro Celaya
db02d9f1ba Finalize logic to dynamically match accept language rules 2024-02-26 19:58:46 +01:00
Alejandro Celaya
df5ad554c1 Add E2E tests for dynamic rule-based redirects 2024-02-26 19:05:39 +01:00
Alejandro Celaya
07ae92943d Add test for ShortUrlRedirectResolver rule matching 2024-02-25 23:09:16 +01:00
Alejandro Celaya
175712d4a9 Add test for ShortUrlRedirectRule request matching 2024-02-25 19:38:54 +01:00
Alejandro Celaya
3f1b253c31 Add test for RedirectCondition request matching 2024-02-25 19:21:39 +01:00
Alejandro Celaya
202d0b86b3 Extract logic to match every type of redirect condition to its own private method 2024-02-25 17:13:54 +01:00
Alejandro Celaya
4e87affb0b Take redirect rules into consideration when resolving the long URL for a short URL 2024-02-25 12:34:27 +01:00
Alejandro Celaya
7f83d37b3c Add logic to match redirect conditions based on query params or language 2024-02-25 12:34:27 +01:00
Alejandro Celaya
09e81b00c5 Create component to resolve the long URL to redirect to for a short URL 2024-02-25 12:34:27 +01:00
Alejandro Celaya
c5ddd8302a Delete old migrations 2024-02-25 12:28:20 +01:00