Sha256: f732063d21fde381e0f6c6423c5c9b83cf35bd9008387db24edccd41e0e0df40

Contents?: true

Size: 615 Bytes

Versions: 1

Compression:

Stored size: 615 Bytes

Contents

module Doctors
  module API
    class Request

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

      def response
        status == 200 ? body : error
      end

      private

      def status
        request.env[:status]
      end

      def error
        raise Error.new(status, message)
      end

      def message
        body.fetch('message')
      end

      def body
        @body ||= Yajl::Parser.parse(request.env[:body])
      end

      def request
        @request ||= Faraday.get(url, params)
      end

      attr_reader :url, :params
    end
  end
end

Version data entries

1 entries across 1 versions & 1 rubygems

Version Path
doctors-0.0.1 lib/doctors/api/request.rb