Sha256: 7ecdb2421989d5daf2e6a5097ca6f1bc20dcf81c0ac54f9ee41e8804921f59d0
Contents?: true
Size: 1.33 KB
Versions: 1
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.id 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
1 entries across 1 versions & 1 rubygems
Version | Path |
---|---|
pirsch_api-0.0.2 | lib/pirsch_api/resources/base.rb |