class CmccHxy::RestClient

Public Class Methods

get(url, params) click to toggle source
# File lib/cmcc_hxy/rest_client.rb, line 7
def get(url, params)
  request { RestClient.get(url, params) }
end
post(url, params) click to toggle source
# File lib/cmcc_hxy/rest_client.rb, line 11
def post(url, params)
  request { RestClient.post(url, params) }
end

Private Class Methods

request() { || ... } click to toggle source
# File lib/cmcc_hxy/rest_client.rb, line 17
def request
  response = yield
  result = JSON.parse(response)

  if response.code == 200 && result.is_a?(Hash) && result.key?('error_code')
    raise CmccHxy::Error.new(result.fetch('error_msg'))
  end

  result
rescue JSON::ParserError
  raise CmccHxy::Error.new("移动和校园 JSON 解析出错")
rescue RestClient::ExceptionWithResponse => e
  raise CmccHxy::Error.new("移动和校园请求出错 #{e.response.code}")
end