From 6ebf58d7ad3f7d9d4371abfaf1996b94f3fc8378 Mon Sep 17 00:00:00 2001 From: Eugene Burmakin Date: Wed, 25 Jun 2025 21:21:03 +0200 Subject: [PATCH] Export trips data --- CHANGELOG.md | 4 ++-- app/services/users/export_data.rb | 28 +++++++++++++++++----------- 2 files changed, 19 insertions(+), 13 deletions(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index 2021bc4a..fb401e8c 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -13,8 +13,8 @@ and this project adheres to [Semantic Versioning](http://semver.org/). - [ ] All your areas - [ ] All your visits - [x] All your imports with files - - [ ] All your exports with files - - [ ] All your trips + - [x] All your exports with files + - [x] All your trips - [ ] All your places - [ ] All your notifications - [ ] All your stats diff --git a/app/services/users/export_data.rb b/app/services/users/export_data.rb index 34b1f261..e0e982c8 100644 --- a/app/services/users/export_data.rb +++ b/app/services/users/export_data.rb @@ -33,7 +33,7 @@ class Users::ExportData data[:visits] = nil data[:imports] = serialized_imports data[:exports] = serialized_exports - data[:trips] = nil + data[:trips] = serialized_trips data[:places] = nil json_file_path = export_directory.join('data.json') @@ -69,11 +69,7 @@ class Users::ExportData process_export(export) end - { - exports: exports_data, - export_directory: export_directory.to_s, - files_directory: files_directory.to_s - } + exports_data end def process_export(export) @@ -132,11 +128,7 @@ class Users::ExportData process_import(import) end - { - imports: imports_data, - export_directory: export_directory.to_s, - files_directory: files_directory.to_s - } + imports_data end def process_import(import) @@ -210,4 +202,18 @@ class Users::ExportData Rails.logger.error "Failed to cleanup temporary files: #{e.message}" # Don't re-raise the error as cleanup failure shouldn't break the export end + + def serialized_trips + user.trips.map { process_trip(_1) } + end + + def process_trip(trip) + Rails.logger.info "Processing trip #{trip.name}" + + trip_hash = trip.as_json(except: %w[user_id]) + + Rails.logger.info "Trip #{trip.name} processed" + + trip_hash + end end