class GirlScout::Resource
Constants
- METHODS
Attributes
url[RW]
Public Class Methods
new(url: '')
click to toggle source
# File lib/girlscout/resource.rb, line 11 def initialize(url: '') @url = url @access_token = AccessToken.refresh end
Public Instance Methods
[](path)
click to toggle source
# File lib/girlscout/resource.rb, line 16 def [](path) Resource.new(url: "#{@url}#{path}") end
Private Instance Methods
access_token()
click to toggle source
# File lib/girlscout/resource.rb, line 36 def access_token @access_token = AccessToken.refresh if @access_token&.expired? @access_token end
error_message(body)
click to toggle source
# File lib/girlscout/resource.rb, line 53 def error_message(body) body = JSON.parse(body) body['message'] || body['error_description'] rescue JSON::ParserError body end
request(options = {})
click to toggle source
# File lib/girlscout/resource.rb, line 41 def request(options = {}) response = Excon.new(@url).request(options) case response.status when 200 JSON.parse(response.body) when 201 response.headers['Resource-ID'] else raise GirlScout::Error, message: error_message(response.body), code: response.status end end