Sha256: df0d90430156db020c810a615644b8edc07128872f1e122f1a73867897ba94cc

Contents?: true

Size: 790 Bytes

Versions: 7

Compression:

Stored size: 790 Bytes

Contents

# frozen_string_literal: true

module SdrClient
  # The stored credentials
  class Credentials
    # @param [String] a json string that contains a field 'token'
    def self.write(body)
      json = JSON.parse(body)
      Dir.mkdir(credentials_path, 0o700) unless Dir.exist?(credentials_path)
      File.open(credentials_file, 'w', 0o600) do |file|
        file.write(json.fetch('token'))
      end
      puts 'Signed in.'
    end

    def self.read
      return IO.readlines(credentials_file, chomp: true).first if ::File.exist?(credentials_file)

      puts 'Log in first'
      exit(1)
    end

    def self.credentials_path
      @credentials_path ||= File.join(Dir.home, '.sdr')
    end

    def self.credentials_file
      File.join(credentials_path, 'credentials')
    end
  end
end

Version data entries

7 entries across 7 versions & 1 rubygems

Version Path
sdr-client-0.7.1 lib/sdr_client/credentials.rb
sdr-client-0.7.0 lib/sdr_client/credentials.rb
sdr-client-0.6.0 lib/sdr_client/credentials.rb
sdr-client-0.5.0 lib/sdr_client/credentials.rb
sdr-client-0.4.0 lib/sdr_client/credentials.rb
sdr-client-0.3.1 lib/sdr_client/credentials.rb
sdr-client-0.3.0 lib/sdr_client/credentials.rb