kevintuhumury/cameraplus

View on GitHub
lib/cameraplus/api/request.rb

Summary

Maintainability
A
0 mins
Test Coverage
module Cameraplus
  module API
    class Request
      include HTTParty

      base_uri "http://camerapl.us"

      def self.call(url, options = {})
        new(url, options).parsed_response
      end

      def initialize(url, options = {})
        @url      = url
        @options  = options
      end

      def parsed_response
        if code == 200
          @response.parsed_response
        else
          raise InvalidResponseError, message
        end
      end

      private

      def request
        @response ||= self.class.get @url, query: @options
      end

      def response
        request.response
      end

      def code
        response.code.to_i
      end

      def message
        "#{@response.message} (#{@response.code}): #{@response.body}\n#{@response.inspect}"
      end

    end
  end
end