analytics/test/plausible_web/controllers
Adrian Gruntkowski f8b4d5066a
Add multiple imports per site (#3724)
* Clean up references to no longer active `google_analytics_imports` Oban queue

* Stub CSV importer

* Add SiteImport schema

* Rename `Plausible.Imported` module file to match module name

* Add `import_id` column to `Imported.*` CH schemas

* Implement Importer behavior and manage imports state using new entities

* Implement importer callbacks and maintain site.imported_data for UA

* Keep imports in sync when forgetting all imports

* Scope imported data queries to completed import IDs

* Mark newly imported data with respective import ID

* Clean up Importer implementation a bit

* Test querying legacy and new imported data

* Send Oban notifications on import worker failure too

* Fix checking for forgettable imports and remove redundant function

* Fix UA integration test

* Change site import source to atom enum and add source label

* Add typespecs and reduce repetition in `Plausible.Imported`

* Improve documentation and typespecs

* Add test for purging particular import

* Switch email notification templates depending on import source

* Document running import synchronously

* Fix UA importer args parsing and ensure it's covered by tests

* Clear `site.stats_start_date` on complete import to force recalculation

* Test Oban notifications (h/t @ruslandoga)

* Purge stats on import failure right away to reduce a chance of leaving debris behind

* Fix typos

Co-authored-by: hq1 <hq@mtod.org>

* Fix another typo

* Refactor fetching earliest import and earliest stats start date

* Use `Date.after?` instead of `Timex.after?`

* Cache import data in site virtual fields and limit queried imports to 5

* Ensure always current `stats_start_date` is used

* Work around broken typespec in Timex

* Make `SiteController.forget_imported` action idempotent

* Discard irrecoverably failed import tasks

* Use macros for site import statuses

There's also a fix ensuring only complete imports are considered
where relevant - couldn't isolate it as it was in a common hunk

* Use `import_id` as worker job uniqueness criterion

* Do not load imported stats data in plugins API context

---------

Co-authored-by: hq1 <hq@mtod.org>
2024-02-14 09:32:36 +01:00
..
api Turn Revenue Goals into Custom Events if the plan doesn't support them (#3768) 2024-02-12 10:43:54 +01:00
auth_controller Remove custom domains support + update build options (#3559) 2023-11-29 11:04:54 +01:00
CSVs Remove ORDER BY min(session.start) (#3771) 2024-02-13 08:28:23 +02:00
site Clean up legacy trials code + displaying limits (#3620) 2023-12-13 10:47:50 +00:00
admin_auth_controller_test.exs Remove custom domains support + update build options (#3559) 2023-11-29 11:04:54 +01:00
admin_controller_test.exs New admin route for displaying usage (#3577) 2023-12-06 10:07:07 +00:00
auth_controller_sync_test.exs Always enable e-mail verification on full build (#3666) 2024-01-04 10:14:25 +01:00
auth_controller_test.exs Rate limit e-mail changes (#3667) 2024-01-04 14:34:57 +01:00
avatar_controller_test.exs Remove custom domains support + update build options (#3559) 2023-11-29 11:04:54 +01:00
billing_controller_test.exs Make hello@plausible.io clickable (#3746) 2024-02-01 09:43:21 +01:00
error_report_controller_test.exs Remove custom domains support + update build options (#3559) 2023-11-29 11:04:54 +01:00
invitation_controller_test.exs Move limit enforcement to accepting site ownership transfer (#3612) 2023-12-20 14:56:49 +00:00
page_controller_test.exs Remove custom domains support + update build options (#3559) 2023-11-29 11:04:54 +01:00
site_controller_test.exs Add multiple imports per site (#3724) 2024-02-14 09:32:36 +01:00
stats_controller_test.exs Add custom_props.csv back to CSV export for Growth plans (#3656) 2024-01-02 12:31:08 +00:00
unsubscribe_controller_test.exs Remove custom domains support + update build options (#3559) 2023-11-29 11:04:54 +01:00