Sha256: 91ed8ab7db01dea435d7dff02d4b93ad87a4ddbf504e3a7b29330cb360d0ce51
Contents?: true
Size: 1.5 KB
Versions: 2
Compression:
Stored size: 1.5 KB
Contents
# frozen_string_literal: true require 'addressable/uri' require 'faraday' module Spearly module Auth class User attr_reader :data def initialize(token) @token = token end def method_missing(name, *_args) @data[name.to_s] end def respond_to_missing?(_name, *_args) true end def find user_profile_uri = "#{ENV.fetch('SPEARLY_API_URL', nil)}/profile" url = Addressable::URI.parse(user_profile_uri).normalize.to_s client = Faraday.default_connection res = client.get(url, nil, 'Accept' => 'application/vnd.spearly.v2+json', 'Authorization' => @token) return unless res.status == 200 @data = JSON.parse(res.body)['data'] end def teams teams_uri = "#{ENV.fetch('SPEARLY_API_URL', nil)}/teams" url = Addressable::URI.parse(teams_uri).normalize.to_s client = Faraday.default_connection res = client.get(url, nil, 'Accept' => 'application/vnd.spearly.v2+json', 'Authorization' => @token) return [] unless res.status == 200 team_hashes = JSON.parse(res.body)['data'] team_hashes.map do |team_hash| Spearly::Auth::Team.new(team_hash) end end def to_json(*_args) @data.to_json end def as_json @data.as_json end end end end
Version data entries
2 entries across 2 versions & 1 rubygems
Version | Path |
---|---|
spearly-sdk-ruby-0.10.0 | lib/spearly/auth/user.rb |
spearly-sdk-ruby-0.9.0 | lib/spearly/auth/user.rb |