Class: GitFit::Sync::GarminBaseDI

Inherits:
GarminBase show all
Defined in:
lib/git_fit/sync/garmin_base_di.rb

Direct Known Subclasses

Garmin

Constant Summary collapse

DI_CLIENT_IDS =
%w[
  GARMIN_CONNECT_MOBILE_ANDROID_DI_2025Q2
  GARMIN_CONNECT_MOBILE_ANDROID_DI_2024Q4
  GARMIN_CONNECT_MOBILE_ANDROID_DI
].freeze

Constants inherited from GarminBase

GitFit::Sync::GarminBase::CLIENT_ID, GitFit::Sync::GarminBase::OAUTH_CONSUMER_URL, GitFit::Sync::GarminBase::SSO_HEADERS

Instance Attribute Summary

Attributes inherited from GarminBase

#generated_secret

Attributes inherited from Base

#progress_reported

Instance Method Summary collapse

Methods inherited from GarminBase

#initialize, #pending_ids, #process_one

Methods inherited from Base

adapters, #build_progress_info, #call, camelcase_to_snakecase, config_key, #initialize, #pending_ids, #process_one, register_adapter, register_config, register_test_adapter, test_adapters

Constructor Details

This class inherits a constructor from GitFit::Sync::GarminBase

Instance Method Details

#authenticateObject



15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
# File 'lib/git_fit/sync/garmin_base_di.rb', line 15

def authenticate
  @oauth_consumer = fetch_oauth_consumer

  if load_tokens
    return true if access_token_valid?
    begin
      return true if refresh_token
    rescue AuthError
      remove_stale_tokens
    end
  end

  if load_auth_seed
    return true if access_token_valid?
    begin
      return true if refresh_token
    rescue AuthError
      @access_token = nil
    end
  end

  puts 'Garmin: no valid DI token found'
  puts '  First time: ./scripts/garmin_auth_local.sh'
  puts '  Refresh:    ./scripts/garmin_auth_local.sh --sync'
  false
end

#before_callObject



42
43
44
45
46
47
48
49
50
# File 'lib/git_fit/sync/garmin_base_di.rb', line 42

def before_call
  if @config['auth_seed'].to_s.empty? && !File.exist?(token_path)
    puts 'Garmin: auth_seed not configured and no cached token'
    puts '  Run: ./scripts/garmin_auth_local.sh'
    return false
  end
  @start_time = Time.now
  true
end

#reauth_hintObject



52
53
54
# File 'lib/git_fit/sync/garmin_base_di.rb', line 52

def reauth_hint
  'Re-auth: ./scripts/garmin_auth_local.sh --sync'
end