module QC::API
Public Class Methods
json2reqstr(json)
click to toggle source
# File lib/qc.rb, line 265 def API.json2reqstr json "GET\n/iaas/\n" + json2params(json) end
json2sign(key, json)
click to toggle source
# File lib/qc.rb, line 269 def API.json2sign key, json QC.hmac(key, json2reqstr(sort_json(json))) end
json2url(key, json)
click to toggle source
# File lib/qc.rb, line 273 def API.json2url key, json sign = json2sign(key, json) params = json2params(json) "https://api.qingcloud.com/iaas/?#{params}&signature=#{sign}" end
sort_json(json)
click to toggle source
# File lib/qc.rb, line 261 def API.sort_json json JSON.parse(json).to_a.sort.to_s end
Private Class Methods
json2params(json)
click to toggle source
# File lib/qc.rb, line 281 def API.json2params json JSON.parse(json).to_a.map do |i| "#{CGI.escape(i[0])}=#{CGI.escape(i[1].to_s)}" end.join('&') end