git-fit 0.8.2 → 0.8.4

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: f0660639b9ec1c1a04ff48d37fb87cb15f98b1e8a460d13ae0343df6084dbd1d
4
- data.tar.gz: b1be3cababda718e433eed40ab89ca567dc0b298692fb34a6f46e6294f1d2ceb
3
+ metadata.gz: a1a31748157f45e858737c0aa849b907f8f780a7aae0b8a153eff7206d21fdb7
4
+ data.tar.gz: ca85819898666de013077c48b130c5117aa4b07537d12952f7fd37406f038804
5
5
  SHA512:
6
- metadata.gz: 0f2ea53effe062336f1edaf5246b30f45c22b07fd65c74bbbbd989a8db32e7167c4036f2aa92ea0a246ecc867e261712f46402643ce016dc4c523fff9d72b90a
7
- data.tar.gz: 0d3112cb964eb76a24f99f813189c6d1f3c8a996aba06643bf97efbcc7a68905014c5eccdaad3cd6126837636f596ebe7def8b6c6ffc9360ef234be092ebc283
6
+ metadata.gz: 34c4d69b80bbbedad069ac0aaf6846f096d775df26f551667bc92e763510221d2b5c13f220f0877e9290467e2c63ae31ede6cb0d97cb6166c3c7a05e8fb7e2fa
7
+ data.tar.gz: c8b5e57b927c7e97b08e0114a275bbb89e98be21fd16b09009d88a58d4994200dec82cf5f9deaf170d8d4c1ae629221afc79843ff27f5304557170bfcc119ccf
@@ -15,9 +15,11 @@ module GitFit
15
15
  @time_budget = time_budget
16
16
  @start_time = nil
17
17
  @progress_reported = false
18
+ @auth_method = nil
18
19
  end
19
20
 
20
21
  attr_reader :progress_reported
22
+ attr_accessor :auth_method
21
23
 
22
24
  def call
23
25
  return 0 unless before_call
@@ -21,6 +21,9 @@ module GitFit
21
21
  class AuthError < StandardError; end
22
22
  class SyncError < StandardError; end
23
23
 
24
+ # GarminBase handles OAuth1/OAuth2, SSO/MFA, token persistence, FIT decoding,
25
+ # timezone resolution — inherently large surface area.
26
+ # rubocop:disable Metrics/ClassLength
24
27
  class GarminBase < Base
25
28
  CLIENT_ID = 'GCM_ANDROID_DARK'
26
29
  OAUTH_CONSUMER_URL = 'https://thegarth.s3.amazonaws.com/oauth_consumer.json'
@@ -53,8 +56,10 @@ module GitFit
53
56
  if @secret
54
57
  if parse_secret_string(@secret)
55
58
  return true if access_token_valid?
59
+ @auth_method = 'secret'
56
60
  begin
57
61
  return true if refresh_oauth2_via_oauth1
62
+ @auth_method = 'refreshed'
58
63
  rescue AuthError
59
64
  end
60
65
  end
@@ -62,7 +67,9 @@ module GitFit
62
67
 
63
68
  begin
64
69
  return true if load_tokens && access_token_valid?
70
+ @auth_method = 'token'
65
71
  return true if load_tokens && refresh_oauth2_via_oauth1
72
+ @auth_method = 'refreshed'
66
73
  rescue AuthError
67
74
  remove_stale_tokens
68
75
  end
@@ -79,6 +86,7 @@ module GitFit
79
86
  end
80
87
  save_secret_to_config
81
88
  save_tokens
89
+ @auth_method = 'sso'
82
90
  true
83
91
  end
84
92
 
@@ -646,5 +654,6 @@ module GitFit
646
654
  File.rename(tmp, std_path(activity_id))
647
655
  end
648
656
  end
657
+ # rubocop:enable Metrics/ClassLength
649
658
  end
650
659
  end
@@ -17,8 +17,10 @@ module GitFit
17
17
 
18
18
  if load_tokens
19
19
  return true if access_token_valid?
20
+ @auth_method = 'token'
20
21
  begin
21
22
  return true if refresh_token
23
+ @auth_method = 'refreshed'
22
24
  rescue AuthError
23
25
  remove_stale_tokens
24
26
  end
@@ -26,8 +28,10 @@ module GitFit
26
28
 
27
29
  if load_auth_seed
28
30
  return true if access_token_valid?
31
+ @auth_method = 'seed'
29
32
  begin
30
33
  return true if refresh_token
34
+ @auth_method = 'refreshed'
31
35
  rescue AuthError
32
36
  @access_token = nil
33
37
  end
@@ -33,7 +33,9 @@ module GitFit
33
33
  end
34
34
 
35
35
  def authenticate
36
- login
36
+ result = login
37
+ @auth_method = 'login' if result
38
+ result
37
39
  end
38
40
 
39
41
  def pending_ids
@@ -62,6 +62,7 @@ module GitFit
62
62
 
63
63
  def authenticate
64
64
  @session = login
65
+ @auth_method = 'login' if @session
65
66
  @session ? true : false
66
67
  end
67
68
 
@@ -49,6 +49,7 @@ module GitFit
49
49
  ].freeze
50
50
 
51
51
  def authenticate
52
+ @auth_method = 'demo'
52
53
  true
53
54
  end
54
55
 
@@ -98,6 +98,8 @@ module GitFit
98
98
  return false
99
99
  end
100
100
 
101
+ method = adapter.auth_method || 'unknown'
102
+ output_queue << { type: :banner, source:, text: "authenticated (#{method})" }
101
103
  output_queue << { type: :banner, source:, text: 'fetching activity list' }
102
104
  ids = adapter.pending_ids
103
105
  if ids.nil? || ids.empty?
@@ -18,6 +18,7 @@ module GitFit
18
18
  @config['client_secret'].to_s != '' &&
19
19
  @config['refresh_token'].to_s != ''
20
20
  @access_token = refresh_access_token
21
+ @auth_method = 'token'
21
22
  @access_token ? true : false
22
23
  end
23
24
 
@@ -38,7 +38,9 @@ module GitFit
38
38
  end
39
39
 
40
40
  def authenticate
41
- login
41
+ result = login
42
+ @auth_method = 'login' if result
43
+ result
42
44
  end
43
45
 
44
46
  def pending_ids
@@ -42,8 +42,11 @@ module GitFit
42
42
 
43
43
  def authenticate
44
44
  return true if load_tokens && access_token_valid?
45
+ @auth_method = 'cached'
45
46
  return true if refresh_access_token
47
+ @auth_method = 'refreshed'
46
48
  return true if login
49
+ @auth_method = 'login'
47
50
  false
48
51
  end
49
52
 
@@ -1,5 +1,5 @@
1
1
  # frozen_string_literal: true
2
2
 
3
3
  module GitFit
4
- VERSION = '0.8.2'
4
+ VERSION = '0.8.4'
5
5
  end
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: git-fit
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.8.2
4
+ version: 0.8.4
5
5
  platform: ruby
6
6
  authors:
7
7
  - Lax