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 |
|
Alejandro Celaya
|
6646232311
|
Set eager loading for redirect rule conditions
|
2024-02-24 20:24:41 +01:00 |
|
Alejandro Celaya
|
c1e88c3e83
|
Use named args to avoid passing default values for args
|
2024-02-24 18:21:53 +01:00 |
|
Alejandro Celaya
|
c91a534d1a
|
Create new entities for redirect rules
|
2024-02-24 18:17:09 +01:00 |
|
Alejandro Celaya
|
752100f1ce
|
Create migration for new rules and conditions tables
|
2024-02-24 17:30:46 +01:00 |
|
Alejandro Celaya
|
857c3a4f8d
|
Remove unused entries from EnvVars enum
|
2024-02-24 17:26:12 +01:00 |
|
Alejandro Celaya
|
d1a6e60b01
|
Add migration to update long URLs columns to text type
|
2024-02-22 09:35:14 +01:00 |
|
Alejandro Celaya
|
8f954151ca
|
Change long URL columns to TEXT type
|
2024-02-21 19:43:02 +01:00 |
|
Alejandro Celaya
|
7673232793
|
Add --path-prefix to short URL creation
|
2024-02-21 19:38:11 +01:00 |
|