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