mirror of
https://github.com/Freika/dawarich.git
synced 2026-01-10 17:21:38 -05:00
feat: added google_phone_takeout and google_semantic_histo into imports_controller for creating a new import
This commit is contained in:
parent
c159b56e25
commit
c8960d46f2
3 changed files with 124 additions and 96 deletions
195
Gemfile.lock
195
Gemfile.lock
|
|
@ -10,66 +10,65 @@ GIT
|
|||
GEM
|
||||
remote: https://rubygems.org/
|
||||
specs:
|
||||
actioncable (7.2.2)
|
||||
actionpack (= 7.2.2)
|
||||
activesupport (= 7.2.2)
|
||||
actioncable (8.0.0.1)
|
||||
actionpack (= 8.0.0.1)
|
||||
activesupport (= 8.0.0.1)
|
||||
nio4r (~> 2.0)
|
||||
websocket-driver (>= 0.6.1)
|
||||
zeitwerk (~> 2.6)
|
||||
actionmailbox (7.2.2)
|
||||
actionpack (= 7.2.2)
|
||||
activejob (= 7.2.2)
|
||||
activerecord (= 7.2.2)
|
||||
activestorage (= 7.2.2)
|
||||
activesupport (= 7.2.2)
|
||||
actionmailbox (8.0.0.1)
|
||||
actionpack (= 8.0.0.1)
|
||||
activejob (= 8.0.0.1)
|
||||
activerecord (= 8.0.0.1)
|
||||
activestorage (= 8.0.0.1)
|
||||
activesupport (= 8.0.0.1)
|
||||
mail (>= 2.8.0)
|
||||
actionmailer (7.2.2)
|
||||
actionpack (= 7.2.2)
|
||||
actionview (= 7.2.2)
|
||||
activejob (= 7.2.2)
|
||||
activesupport (= 7.2.2)
|
||||
actionmailer (8.0.0.1)
|
||||
actionpack (= 8.0.0.1)
|
||||
actionview (= 8.0.0.1)
|
||||
activejob (= 8.0.0.1)
|
||||
activesupport (= 8.0.0.1)
|
||||
mail (>= 2.8.0)
|
||||
rails-dom-testing (~> 2.2)
|
||||
actionpack (7.2.2)
|
||||
actionview (= 7.2.2)
|
||||
activesupport (= 7.2.2)
|
||||
actionpack (8.0.0.1)
|
||||
actionview (= 8.0.0.1)
|
||||
activesupport (= 8.0.0.1)
|
||||
nokogiri (>= 1.8.5)
|
||||
racc
|
||||
rack (>= 2.2.4, < 3.2)
|
||||
rack (>= 2.2.4)
|
||||
rack-session (>= 1.0.1)
|
||||
rack-test (>= 0.6.3)
|
||||
rails-dom-testing (~> 2.2)
|
||||
rails-html-sanitizer (~> 1.6)
|
||||
useragent (~> 0.16)
|
||||
actiontext (7.2.2)
|
||||
actionpack (= 7.2.2)
|
||||
activerecord (= 7.2.2)
|
||||
activestorage (= 7.2.2)
|
||||
activesupport (= 7.2.2)
|
||||
actiontext (8.0.0.1)
|
||||
actionpack (= 8.0.0.1)
|
||||
activerecord (= 8.0.0.1)
|
||||
activestorage (= 8.0.0.1)
|
||||
activesupport (= 8.0.0.1)
|
||||
globalid (>= 0.6.0)
|
||||
nokogiri (>= 1.8.5)
|
||||
actionview (7.2.2)
|
||||
activesupport (= 7.2.2)
|
||||
actionview (8.0.0.1)
|
||||
activesupport (= 8.0.0.1)
|
||||
builder (~> 3.1)
|
||||
erubi (~> 1.11)
|
||||
rails-dom-testing (~> 2.2)
|
||||
rails-html-sanitizer (~> 1.6)
|
||||
activejob (7.2.2)
|
||||
activesupport (= 7.2.2)
|
||||
activejob (8.0.0.1)
|
||||
activesupport (= 8.0.0.1)
|
||||
globalid (>= 0.3.6)
|
||||
activemodel (7.2.2)
|
||||
activesupport (= 7.2.2)
|
||||
activerecord (7.2.2)
|
||||
activemodel (= 7.2.2)
|
||||
activesupport (= 7.2.2)
|
||||
activemodel (8.0.0.1)
|
||||
activesupport (= 8.0.0.1)
|
||||
activerecord (8.0.0.1)
|
||||
activemodel (= 8.0.0.1)
|
||||
activesupport (= 8.0.0.1)
|
||||
timeout (>= 0.4.0)
|
||||
activestorage (7.2.2)
|
||||
actionpack (= 7.2.2)
|
||||
activejob (= 7.2.2)
|
||||
activerecord (= 7.2.2)
|
||||
activesupport (= 7.2.2)
|
||||
activestorage (8.0.0.1)
|
||||
actionpack (= 8.0.0.1)
|
||||
activejob (= 8.0.0.1)
|
||||
activerecord (= 8.0.0.1)
|
||||
activesupport (= 8.0.0.1)
|
||||
marcel (~> 1.0)
|
||||
activesupport (7.2.2)
|
||||
activesupport (8.0.0.1)
|
||||
base64
|
||||
benchmark (>= 0.3)
|
||||
bigdecimal
|
||||
|
|
@ -81,6 +80,7 @@ GEM
|
|||
minitest (>= 5.1)
|
||||
securerandom (>= 0.3)
|
||||
tzinfo (~> 2.0, >= 2.0.5)
|
||||
uri (>= 0.13.1)
|
||||
addressable (2.8.7)
|
||||
public_suffix (>= 2.0.2, < 7.0)
|
||||
ast (2.4.2)
|
||||
|
|
@ -109,7 +109,7 @@ GEM
|
|||
data_migrate (11.2.0)
|
||||
activerecord (>= 6.1)
|
||||
railties (>= 6.1)
|
||||
date (3.4.0)
|
||||
date (3.4.1)
|
||||
debug (1.9.2)
|
||||
irb (~> 1.10)
|
||||
reline (>= 0.3.8)
|
||||
|
|
@ -149,7 +149,7 @@ GEM
|
|||
rake
|
||||
groupdate (6.5.1)
|
||||
activesupport (>= 7)
|
||||
hashdiff (1.1.1)
|
||||
hashdiff (1.1.2)
|
||||
httparty (0.22.0)
|
||||
csv
|
||||
mini_mime (>= 1.0.0)
|
||||
|
|
@ -160,13 +160,14 @@ GEM
|
|||
actionpack (>= 6.0.0)
|
||||
activesupport (>= 6.0.0)
|
||||
railties (>= 6.0.0)
|
||||
io-console (0.7.2)
|
||||
irb (1.14.1)
|
||||
io-console (0.8.0)
|
||||
irb (1.14.2)
|
||||
rdoc (>= 4.0.0)
|
||||
reline (>= 0.4.2)
|
||||
json (2.7.4)
|
||||
json-schema (5.0.1)
|
||||
json (2.9.0)
|
||||
json-schema (5.1.1)
|
||||
addressable (~> 2.8)
|
||||
bigdecimal (~> 3.1)
|
||||
kaminari (1.2.2)
|
||||
activesupport (>= 4.1.0)
|
||||
kaminari-actionview (= 1.2.2)
|
||||
|
|
@ -180,7 +181,7 @@ GEM
|
|||
kaminari-core (= 1.2.2)
|
||||
kaminari-core (1.2.2)
|
||||
language_server-protocol (3.17.0.3)
|
||||
logger (1.6.1)
|
||||
logger (1.6.2)
|
||||
lograge (0.14.0)
|
||||
actionpack (>= 4)
|
||||
activesupport (>= 4)
|
||||
|
|
@ -197,11 +198,11 @@ GEM
|
|||
marcel (1.0.4)
|
||||
method_source (1.1.0)
|
||||
mini_mime (1.1.5)
|
||||
minitest (5.25.2)
|
||||
msgpack (1.7.3)
|
||||
minitest (5.25.4)
|
||||
msgpack (1.7.5)
|
||||
multi_xml (0.7.1)
|
||||
bigdecimal (~> 3.1)
|
||||
net-imap (0.5.0)
|
||||
net-imap (0.5.1)
|
||||
date
|
||||
net-protocol
|
||||
net-pop (0.1.2)
|
||||
|
|
@ -211,26 +212,26 @@ GEM
|
|||
net-smtp (0.5.0)
|
||||
net-protocol
|
||||
nio4r (2.7.4)
|
||||
nokogiri (1.16.7-aarch64-linux)
|
||||
nokogiri (1.17.1-aarch64-linux)
|
||||
racc (~> 1.4)
|
||||
nokogiri (1.16.7-arm-linux)
|
||||
nokogiri (1.17.1-arm-linux)
|
||||
racc (~> 1.4)
|
||||
nokogiri (1.16.7-arm64-darwin)
|
||||
nokogiri (1.17.1-arm64-darwin)
|
||||
racc (~> 1.4)
|
||||
nokogiri (1.16.7-x86-linux)
|
||||
nokogiri (1.17.1-x86-linux)
|
||||
racc (~> 1.4)
|
||||
nokogiri (1.16.7-x86_64-darwin)
|
||||
nokogiri (1.17.1-x86_64-darwin)
|
||||
racc (~> 1.4)
|
||||
nokogiri (1.16.7-x86_64-linux)
|
||||
nokogiri (1.17.1-x86_64-linux)
|
||||
racc (~> 1.4)
|
||||
oj (3.16.7)
|
||||
bigdecimal (>= 3.0)
|
||||
ostruct (>= 0.2)
|
||||
optimist (3.2.0)
|
||||
orm_adapter (0.5.0)
|
||||
ostruct (0.6.0)
|
||||
ostruct (0.6.1)
|
||||
parallel (1.26.3)
|
||||
parser (3.3.5.0)
|
||||
parser (3.3.6.0)
|
||||
ast (~> 2.4.1)
|
||||
racc
|
||||
patience_diff (1.2.0)
|
||||
|
|
@ -246,7 +247,8 @@ GEM
|
|||
pry (>= 0.13, < 0.15)
|
||||
pry-rails (0.3.11)
|
||||
pry (>= 0.13.0)
|
||||
psych (5.2.0)
|
||||
psych (5.2.1)
|
||||
date
|
||||
stringio
|
||||
public_suffix (6.0.1)
|
||||
puma (6.5.0)
|
||||
|
|
@ -262,30 +264,30 @@ GEM
|
|||
rack (>= 1.3)
|
||||
rackup (2.2.1)
|
||||
rack (>= 3)
|
||||
rails (7.2.2)
|
||||
actioncable (= 7.2.2)
|
||||
actionmailbox (= 7.2.2)
|
||||
actionmailer (= 7.2.2)
|
||||
actionpack (= 7.2.2)
|
||||
actiontext (= 7.2.2)
|
||||
actionview (= 7.2.2)
|
||||
activejob (= 7.2.2)
|
||||
activemodel (= 7.2.2)
|
||||
activerecord (= 7.2.2)
|
||||
activestorage (= 7.2.2)
|
||||
activesupport (= 7.2.2)
|
||||
rails (8.0.0.1)
|
||||
actioncable (= 8.0.0.1)
|
||||
actionmailbox (= 8.0.0.1)
|
||||
actionmailer (= 8.0.0.1)
|
||||
actionpack (= 8.0.0.1)
|
||||
actiontext (= 8.0.0.1)
|
||||
actionview (= 8.0.0.1)
|
||||
activejob (= 8.0.0.1)
|
||||
activemodel (= 8.0.0.1)
|
||||
activerecord (= 8.0.0.1)
|
||||
activestorage (= 8.0.0.1)
|
||||
activesupport (= 8.0.0.1)
|
||||
bundler (>= 1.15.0)
|
||||
railties (= 7.2.2)
|
||||
railties (= 8.0.0.1)
|
||||
rails-dom-testing (2.2.0)
|
||||
activesupport (>= 5.0.0)
|
||||
minitest
|
||||
nokogiri (>= 1.6)
|
||||
rails-html-sanitizer (1.6.0)
|
||||
rails-html-sanitizer (1.6.1)
|
||||
loofah (~> 2.21)
|
||||
nokogiri (~> 1.14)
|
||||
railties (7.2.2)
|
||||
actionpack (= 7.2.2)
|
||||
activesupport (= 7.2.2)
|
||||
nokogiri (>= 1.15.7, != 1.16.7, != 1.16.6, != 1.16.5, != 1.16.4, != 1.16.3, != 1.16.2, != 1.16.1, != 1.16.0.rc1, != 1.16.0)
|
||||
railties (8.0.0.1)
|
||||
actionpack (= 8.0.0.1)
|
||||
activesupport (= 8.0.0.1)
|
||||
irb (~> 1.13)
|
||||
rackup (>= 1.0.0)
|
||||
rake (>= 12.2)
|
||||
|
|
@ -297,17 +299,17 @@ GEM
|
|||
psych (>= 4.0.0)
|
||||
redis (5.3.0)
|
||||
redis-client (>= 0.22.0)
|
||||
redis-client (0.22.2)
|
||||
redis-client (0.23.0)
|
||||
connection_pool
|
||||
regexp_parser (2.9.2)
|
||||
reline (0.5.11)
|
||||
regexp_parser (2.9.3)
|
||||
reline (0.5.12)
|
||||
io-console (~> 0.5)
|
||||
request_store (1.7.0)
|
||||
rack (>= 1.4)
|
||||
responders (3.1.1)
|
||||
actionpack (>= 5.2)
|
||||
railties (>= 5.2)
|
||||
rexml (3.3.8)
|
||||
rexml (3.3.9)
|
||||
rspec-core (3.13.2)
|
||||
rspec-support (~> 3.13.0)
|
||||
rspec-expectations (3.13.3)
|
||||
|
|
@ -324,7 +326,7 @@ GEM
|
|||
rspec-expectations (~> 3.13)
|
||||
rspec-mocks (~> 3.13)
|
||||
rspec-support (~> 3.13)
|
||||
rspec-support (3.13.1)
|
||||
rspec-support (3.13.2)
|
||||
rswag-api (2.16.0)
|
||||
activesupport (>= 5.2, < 8.1)
|
||||
railties (>= 5.2, < 8.1)
|
||||
|
|
@ -336,17 +338,17 @@ GEM
|
|||
rswag-ui (2.16.0)
|
||||
actionpack (>= 5.2, < 8.1)
|
||||
railties (>= 5.2, < 8.1)
|
||||
rubocop (1.67.0)
|
||||
rubocop (1.69.2)
|
||||
json (~> 2.3)
|
||||
language_server-protocol (>= 3.17.0)
|
||||
parallel (~> 1.10)
|
||||
parser (>= 3.3.0.2)
|
||||
rainbow (>= 2.2.2, < 4.0)
|
||||
regexp_parser (>= 2.4, < 3.0)
|
||||
rubocop-ast (>= 1.32.2, < 2.0)
|
||||
regexp_parser (>= 2.9.3, < 3.0)
|
||||
rubocop-ast (>= 1.36.2, < 2.0)
|
||||
ruby-progressbar (~> 1.7)
|
||||
unicode-display_width (>= 2.4.0, < 3.0)
|
||||
rubocop-ast (1.32.3)
|
||||
unicode-display_width (>= 2.4.0, < 4.0)
|
||||
rubocop-ast (1.36.2)
|
||||
parser (>= 3.3.1.0)
|
||||
rubocop-rails (2.27.0)
|
||||
activesupport (>= 4.2.0)
|
||||
|
|
@ -354,7 +356,7 @@ GEM
|
|||
rubocop (>= 1.52.0, < 2.0)
|
||||
rubocop-ast (>= 1.31.1, < 2.0)
|
||||
ruby-progressbar (1.13.0)
|
||||
securerandom (0.3.2)
|
||||
securerandom (0.4.0)
|
||||
shoulda-matchers (6.4.0)
|
||||
activesupport (>= 5.2.0)
|
||||
shrine (3.6.0)
|
||||
|
|
@ -395,12 +397,12 @@ GEM
|
|||
tailwindcss-rails (3.0.0)
|
||||
railties (>= 7.0.0)
|
||||
tailwindcss-ruby
|
||||
tailwindcss-ruby (3.4.14)
|
||||
tailwindcss-ruby (3.4.14-aarch64-linux)
|
||||
tailwindcss-ruby (3.4.14-arm-linux)
|
||||
tailwindcss-ruby (3.4.14-arm64-darwin)
|
||||
tailwindcss-ruby (3.4.14-x86_64-darwin)
|
||||
tailwindcss-ruby (3.4.14-x86_64-linux)
|
||||
tailwindcss-ruby (3.4.16)
|
||||
tailwindcss-ruby (3.4.16-aarch64-linux)
|
||||
tailwindcss-ruby (3.4.16-arm-linux)
|
||||
tailwindcss-ruby (3.4.16-arm64-darwin)
|
||||
tailwindcss-ruby (3.4.16-x86_64-darwin)
|
||||
tailwindcss-ruby (3.4.16-x86_64-linux)
|
||||
thor (1.3.2)
|
||||
timeout (0.4.2)
|
||||
turbo-rails (2.0.11)
|
||||
|
|
@ -409,8 +411,11 @@ GEM
|
|||
tzinfo (2.0.6)
|
||||
concurrent-ruby (~> 1.0)
|
||||
unicode (0.4.4.5)
|
||||
unicode-display_width (2.6.0)
|
||||
useragent (0.16.10)
|
||||
unicode-display_width (3.1.2)
|
||||
unicode-emoji (~> 4.0, >= 4.0.4)
|
||||
unicode-emoji (4.0.4)
|
||||
uri (1.0.2)
|
||||
useragent (0.16.11)
|
||||
warden (1.2.9)
|
||||
rack (>= 2.0.9)
|
||||
webmock (3.24.0)
|
||||
|
|
|
|||
|
|
@ -32,8 +32,11 @@ class ImportsController < ApplicationController
|
|||
|
||||
raw_data =
|
||||
case params[:import][:source]
|
||||
when 'gpx' then Hash.from_xml(file)
|
||||
when 'google_semantic_history' then GoogleMaps::SemanticHistoryParser.new(import, current_user.id).call
|
||||
when 'owntracks' then OwnTracks::RecParser.new(file).call
|
||||
when 'geojson' then Geojson::ImportParser.new(import, current_user.id).call
|
||||
when 'google_phone_takeout' then GoogleMaps::PhoneTakeoutParser.new(import, current_user.id).call
|
||||
when 'gpx' then Hash.from_xml(file)
|
||||
else JSON.parse(file)
|
||||
end
|
||||
|
||||
|
|
|
|||
20
spec/features/import_process_spec.rb
Normal file
20
spec/features/import_process_spec.rb
Normal file
|
|
@ -0,0 +1,20 @@
|
|||
# spec/features/import_process_spec.rb
|
||||
require 'rails_helper'
|
||||
|
||||
RSpec.feature 'Import Process', type: :feature do
|
||||
let(:user) { create(:user) }
|
||||
|
||||
before do
|
||||
sign_in user
|
||||
end
|
||||
|
||||
scenario 'User imports a Google Phone Takeout file' do
|
||||
visit new_import_path
|
||||
|
||||
choose 'Google Phone Takeout'
|
||||
attach_file 'import_files', Rails.root.join('spec/fixtures/files/google/phone-takeout.json')
|
||||
click_button 'Create Import'
|
||||
|
||||
expect(page).to have_content('files are queued to be imported in background')
|
||||
end
|
||||
end
|
||||
Loading…
Reference in a new issue