Class: Blockmason::Link::Session
- Inherits:
-
Object
- Object
- Blockmason::Link::Session
- Defined in:
- lib/blockmason/link/session.rb
Instance Method Summary collapse
- #get(path, inputs = {}) ⇒ Object
-
#initialize(access_token:, base_url:, http:, refresh_token:) ⇒ Session
constructor
A new instance of Session.
- #post(path, inputs = {}) ⇒ Object
- #refresh! ⇒ Object
Constructor Details
#initialize(access_token:, base_url:, http:, refresh_token:) ⇒ Session
Returns a new instance of Session.
8 9 10 11 12 13 |
# File 'lib/blockmason/link/session.rb', line 8 def initialize(access_token:, base_url:, http:, refresh_token:) @access_token = access_token @base_url = base_url @http = http @refresh_token = refresh_token end |
Instance Method Details
#get(path, inputs = {}) ⇒ Object
15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 |
# File 'lib/blockmason/link/session.rb', line 15 def get(path, inputs = {}) query = URI.encode_www_form(inputs) query = "?#{query}" unless query.empty? url = "#{@base_url}/v1#{path}#{query}" request = Net::HTTP::Get.new(url) request['Authorization'] = "Bearer #{@access_token}" response = @http.request(request) outputs = JSON.parse(response.body) outputs end |
#post(path, inputs = {}) ⇒ Object
31 32 33 34 35 36 37 38 39 40 41 42 |
# File 'lib/blockmason/link/session.rb', line 31 def post(path, inputs = {}) request = Net::HTTP::Post.new("#{@base_url}/v1#{path}") request['Content-Type'] = 'application/json' request['Authorization'] = "Bearer #{@access_token}" response = @http.request(request, inputs.to_json) outputs = JSON.parse(response.body) outputs end |
#refresh! ⇒ Object
44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 |
# File 'lib/blockmason/link/session.rb', line 44 def refresh! request = Net::HTTP::Post.new("#{@base_url}/oauth2/token") request['Content-Type'] = 'application/json' response = @http.request(request, { grant_type: 'refresh_token', refresh_token: @refresh_token }.to_json) grant = JSON.parse(response.body) raise response.body if grant.has_key?('errors') self.new(access_token: grant['access_token'], base_url: @base_url, http: @http, refresh_token: grant['refresh_token']) end |