Sha256: 591124fedcc8b65fa1c1b83952ff5bdfb55d78226accb547550f5722b90e0209

Contents?: true

Size: 1.21 KB

Versions: 1

Compression:

Stored size: 1.21 KB

Contents

# frozen_string_literal: true

module Immoscout
  module Api
    module Request
      def get(path, payload = nil, multipart = nil)
        request(:get, path, payload, multipart)
      end

      def post(path, payload = nil, multipart = nil)
        request(:post, path, payload, multipart)
      end

      def put(path, payload = nil, multipart = nil)
        request(:put, path, payload, multipart)
      end

      def delete(path, payload = nil, multipart = nil)
        request(:delete, path, payload, multipart)
      end

      # rubocop:disable Metrics/MethodLength because of the header handling
      def request(method, path, payload = nil, multipart = nil)
        connection.send(method, path, multipart) do |request|
          if multipart
            request.headers['Content-Type'] = 'multipart/form-data'
          else
            request.body                    = payload if payload
            request.headers['Content-Type'] = 'application/json;charset=UTF-8'
          end
          request.headers['Accept'] = 'application/json'
          request.headers['User-Agent'] = \
            "HausgoldImmoscout/#{Immoscout::VERSION}"
        end
      end
      # rubocop:enable Metrics/MethodLength
    end
  end
end

Version data entries

1 entries across 1 versions & 1 rubygems

Version Path
immoscout-1.3.2 lib/immoscout/api/request.rb