Sha256: 51a0ef521450cbfbd3d091af0ea4cd480d1b5bf5d47a8bd41bb6e9cec5b600f5
Contents?: true
Size: 1.33 KB
Versions: 3
Compression:
Stored size: 1.33 KB
Contents
module PirschApi class BaseResource attr_accessor :client, :filters, :domain def initialize(client:, domain: nil, filters: {}) @client = client @filters = filters @domain = domain @errors = [] end def request_url raise NotImplementedError end def parse_response(body) raise NotImplementedError end def errors @errors[:client] = 'client is invalid' unless client.valid? @errors end def valid? errors.empty? end def run raise PirschApi::Error.new errors unless valid? if domain filters[:id] = domain.to_s end url = "#{PirschApi::Client::BASE_URL}/#{request_url}" url << "?#{filters.to_a.map { |x| "#{x[0]}=#{x[1]}" }.join("&") }" if filters.any? puts "[Pirsch API] run #{url}" uri = URI.parse url req = Net::HTTP::Get.new(uri.request_uri) req.add_field('Authorization', "Bearer #{client.token.access_token}") http = Net::HTTP.new(uri.host, uri.port) http.use_ssl = true response = http.request(req) raise PirschApi::Error.new "Api request failed (#{response.body})" unless response.code == "200" raise PirschApi::Error.new "Api request returned nil (#{response.body})" if response.body.nil? parse_response response.body end end end
Version data entries
3 entries across 3 versions & 1 rubygems
Version | Path |
---|---|
pirsch_api-0.0.5 | lib/pirsch_api/resources/base.rb |
pirsch_api-0.0.4 | lib/pirsch_api/resources/base.rb |
pirsch_api-0.0.3 | lib/pirsch_api/resources/base.rb |