Skip to content

Commit d51ad3e

Browse files
committed
added layer of retries on gdrive upload + updated lt-lcms/lt-google-api
1 parent e5004c4 commit d51ad3e

File tree

4 files changed

+50
-35
lines changed

4 files changed

+50
-35
lines changed

Gemfile

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -16,6 +16,9 @@ gemspec
1616
# To use a debugger
1717
# gem 'byebug', group: [:development, :test]
1818

19+
gem 'lt-google-api', git: 'https://github.com/learningtapestry/lt-google-api.git', branch: 'google-api-update-0.16'
20+
gem 'lt-lcms', git: 'https://github.com/learningtapestry/lt-lcms.git', branch: 'google-api-update-0.16'
21+
1922
gem 'wicked_pdf', git: 'https://github.com/learningtapestry/wicked_pdf.git',
2023
branch: 'puppeteer-support',
2124
ref: '964a090'

Gemfile.lock

Lines changed: 35 additions & 25 deletions
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,23 @@
1+
GIT
2+
remote: https://github.com/learningtapestry/lt-google-api.git
3+
revision: 15cb66366742649e629ccddd7001cf7bd4ebc672
4+
branch: google-api-update-0.16
5+
specs:
6+
lt-google-api (0.3.1)
7+
google-apis-drive_v3 (~> 0.63.0)
8+
googleauth (~> 1.11.2)
9+
10+
GIT
11+
remote: https://github.com/learningtapestry/lt-lcms.git
12+
revision: f4403a3b6befef09baa4c678811c319c05375a88
13+
branch: google-api-update-0.16
14+
specs:
15+
lt-lcms (0.6.1)
16+
google-apis-core (~> 0.16.0)
17+
httparty (~> 0.18)
18+
nokogiri (~> 1.10, >= 1.10.8)
19+
rubyzip (~> 2)
20+
121
GIT
222
remote: https://github.com/learningtapestry/wicked_pdf.git
323
revision: 964a0906c9284d97927322e4c1e474b1d68373cf
@@ -36,15 +56,13 @@ PATH
3656
fog-aws (~> 3.5, >= 3.5.2)
3757
font-awesome-sass (~> 5.12)
3858
foundation-rails (~> 6.6.2, >= 6.6.1)
39-
google-apis-drive_v3 (~> 0.46)
40-
google-apis-script_v1 (~> 0.21)
59+
google-apis-drive_v3 (~> 0.63.0)
60+
google-apis-script_v1 (~> 0.27.0)
4161
hiredis (~> 0.6.3)
4262
httparty (~> 0.18)
4363
jbuilder (~> 2.10)
4464
jquery-rails (~> 4.3, >= 4.3.5)
4565
js-routes (~> 1.4, >= 1.4.9)
46-
lt-google-api (~> 0.3)
47-
lt-lcms (~> 0.6)
4866
migration_data (~> 0.6)
4967
mini_magick (~> 4.10, >= 4.10.1)
5068
nested_form (~> 0.3.2)
@@ -348,22 +366,21 @@ GEM
348366
raabro (~> 1.4)
349367
globalid (1.0.1)
350368
activesupport (>= 5.0)
351-
google-apis-core (0.11.2)
369+
google-apis-core (0.16.0)
352370
addressable (~> 2.5, >= 2.5.1)
353-
googleauth (>= 0.16.2, < 2.a)
354-
httpclient (>= 2.8.1, < 3.a)
371+
googleauth (~> 1.9)
372+
httpclient (>= 2.8.3, < 3.a)
355373
mini_mime (~> 1.0)
374+
mutex_m
356375
representable (~> 3.0)
357376
retriable (>= 2.0, < 4.a)
358-
rexml
359-
webrick
360-
google-apis-drive_v3 (0.46.0)
361-
google-apis-core (>= 0.11.0, < 2.a)
362-
google-apis-script_v1 (0.21.0)
363-
google-apis-core (>= 0.11.0, < 2.a)
377+
google-apis-drive_v3 (0.63.0)
378+
google-apis-core (>= 0.15.0, < 2.a)
379+
google-apis-script_v1 (0.27.0)
380+
google-apis-core (>= 0.15.0, < 2.a)
364381
google-cloud-env (2.1.0)
365382
faraday (>= 1.0, < 3.a)
366-
googleauth (1.9.1)
383+
googleauth (1.11.2)
367384
faraday (>= 1.0, < 3.a)
368385
google-cloud-env (~> 2.1)
369386
jwt (>= 1.4, < 3.0)
@@ -405,15 +422,6 @@ GEM
405422
loofah (2.19.1)
406423
crass (~> 1.0.2)
407424
nokogiri (>= 1.5.9)
408-
lt-google-api (0.3.0)
409-
google-apis-drive_v3 (~> 0.46)
410-
googleauth (~> 1.9)
411-
lt-lcms (0.6.0)
412-
google-apis-core (~> 0.11, >= 0.11.1)
413-
httparty (~> 0.18)
414-
lt-google-api (~> 0.3)
415-
nokogiri (~> 1.10, >= 1.10.8)
416-
rubyzip (~> 2)
417425
mail (2.7.1)
418426
mini_mime (>= 0.1.1)
419427
marcel (1.0.2)
@@ -432,6 +440,7 @@ GEM
432440
multi_xml (0.6.0)
433441
mustermann (3.0.0)
434442
ruby2_keywords (~> 0.0.1)
443+
mutex_m (0.3.0)
435444
nested_form (0.3.2)
436445
netrc (0.11.0)
437446
nikkou (0.0.5)
@@ -701,7 +710,6 @@ GEM
701710
rack-proxy (>= 0.6.1)
702711
railties (>= 5.2)
703712
semantic_range (>= 2.3.0)
704-
webrick (1.8.1)
705713
websocket-driver (0.7.5)
706714
websocket-extensions (>= 0.1.0)
707715
websocket-extensions (0.1.5)
@@ -727,6 +735,8 @@ DEPENDENCIES
727735
factory_bot (~> 5)
728736
faker (~> 2.1)
729737
lcms-engine!
738+
lt-google-api!
739+
lt-lcms!
730740
overcommit (~> 0.57)
731741
pry-byebug (~> 3.7)
732742
pry-rails (~> 0.3.5)
@@ -745,4 +755,4 @@ DEPENDENCIES
745755
wicked_pdf!
746756

747757
BUNDLED WITH
748-
2.4.22
758+
2.4.8

lcms-engine.gemspec

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -52,15 +52,15 @@ Gem::Specification.new do |s|
5252
s.add_dependency 'fog-aws', '~> 3.5', '>= 3.5.2'
5353
s.add_dependency 'font-awesome-sass', '~> 5.12'
5454
s.add_dependency 'foundation-rails', '~> 6.6.2', '>= 6.6.1'
55-
s.add_dependency 'google-apis-drive_v3', '~> 0.46'
56-
s.add_dependency 'google-apis-script_v1', '~> 0.21'
55+
s.add_dependency 'google-apis-drive_v3', '~> 0.63.0'
56+
s.add_dependency 'google-apis-script_v1', '~> 0.27.0'
5757
s.add_dependency 'hiredis', '~> 0.6.3'
5858
s.add_dependency 'httparty', '~> 0.18'
5959
s.add_dependency 'jbuilder', '~> 2.10'
6060
s.add_dependency 'jquery-rails', '~> 4.3', '>= 4.3.5'
6161
s.add_dependency 'js-routes', '~> 1.4', '>= 1.4.9'
62-
s.add_dependency 'lt-google-api', '~> 0.3'
63-
s.add_dependency 'lt-lcms', '~> 0.6'
62+
# s.add_dependency 'lt-google-api', '~> 0.3'
63+
# s.add_dependency 'lt-lcms', '~> 0.6'
6464
s.add_dependency 'migration_data', '~> 0.6'
6565
s.add_dependency 'mini_magick', '~> 4.10', '>= 4.10.1'
6666
s.add_dependency 'nested_form', '~> 0.3.2'

lib/document_exporter/gdoc/base.rb

Lines changed: 8 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -79,11 +79,13 @@ def export_to(folder_id, file_id: nil)
7979
upload_source: StringIO.new(content)
8080
}.merge(GOOGLE_API_UPLOAD_OPTIONS)
8181

82-
@id = if file_id.present?
83-
drive_service.service.update_file(file_id, metadata, params)
84-
else
85-
drive_service.service.create_file(metadata, params)
86-
end.id
82+
@id = Retriable.retriable(base_interval: 1, tries: GOOGLE_API_CLIENT_UPLOAD_RETRIES) do
83+
if file_id.present?
84+
drive_service.service.update_file(file_id, metadata, params)
85+
else
86+
drive_service.service.create_file(metadata, params)
87+
end.id
88+
end
8789

8890
post_processing
8991

@@ -128,7 +130,7 @@ def gdoc_folder
128130

129131
def gdoc_folder_tmp(material_ids)
130132
file_ids = material_ids.map do |id|
131-
document.links['materials']&.dig(id.to_s)&.dig('gdoc')&.gsub(/.*id=/, '')
133+
document.links['materials']&.dig(id.to_s, 'gdoc')&.gsub(/.*id=/, '')
132134
end
133135

134136
@options[:subfolders] = [self.class::FOLDER_NAME]

0 commit comments

Comments
 (0)