joker1007/octogate

View on GitHub
lib/octogate/transfer_request.rb

Summary

Maintainability
A
0 mins
Test Coverage
module Octogate
  module TransferRequest
    class Base
      attr_reader :conn

      def initialize(conn)
        @conn = conn
      end

      def do_request(**options)
        raise NotImplementedError
      end
    end

    class GET < Base
      def do_request(**options)
        conn.get do |req|
          req.url options[:url]
          options[:params].each do |k, v|
            req.params[k] = v
          end
        end
      end
    end


    class POST < Base
      def do_request(**options)
        if options[:parameter_type] == :json && options[:params]
          conn.post options[:url] do |req|
            req.headers['Content-Type'] = 'application/json'
            req.body = Oj.dump(options[:params], mode: :compat)
          end
        else
          conn.post options[:url], options[:params]
        end
      end
    end
  end
end