Module: WechatGate::Request

Defined in:
lib/wechat_gate/request.rb

Class Method Summary collapse

Class Method Details

.send(url, method = :get, payload = nil, headers = nil, &block) ⇒ Object



5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
# File 'lib/wechat_gate/request.rb', line 5

def self.send(url, method = :get, payload = nil, headers = nil, &block)
  method = method.to_sym

  opts = {
    method: method,
    url: url,
    verify_ssl: false
  }
  if method == :post and payload
    opts.merge! payload: payload
  end

  if headers
    opts.merge! headers: headers
  end

  response = RestClient::Request.execute(opts)
  response = JSON.parse(response)
  raise response.to_s if response['errmsg'] and response['errmsg'] != 'ok'

  if block_given?
    yield(response)
  else
    response
  end
end