module ConfirmationCode::Service::Damatu
Constants
- ACCOUNT_URL
- HOST
- RECOGNITION_ERROR_URL
- UPLOAD_LOCAL_URL
- UPLOAD_URL
Attributes
app_id[R]
app_key[R]
Public Instance Methods
account(options = {})
click to toggle source
# File lib/confirmation_code/service/damatu.rb, line 74 def account(options = {}) account_options = damatu_options(options) account_options['sign'] = sign(account_options['user']) response = client.get(ACCOUNT_URL, account_options) result(JSON.parse(response.body)) end
client()
click to toggle source
# File lib/confirmation_code/service/damatu.rb, line 36 def client @client ||= HTTPClient.new end
damatu_options(options)
click to toggle source
# File lib/confirmation_code/service/damatu.rb, line 89 def damatu_options(options) damatu_options = {} damatu_options['appID'] = @app_id damatu_options['user'] = options[:user_name] damatu_options['pwd'] = get_pwd(options[:user_name], options[:user_pw]) damatu_options['type'] = options[:type] unless options[:type].nil? return damatu_options end
get_pwd(user, pwd)
click to toggle source
# File lib/confirmation_code/service/damatu.rb, line 44 def get_pwd(user, pwd) return md5(@app_key + md5(md5(user) + md5(pwd))) end
md5(value)
click to toggle source
# File lib/confirmation_code/service/damatu.rb, line 40 def md5(value) return Digest::MD5.hexdigest(value) end
recognition_error(ret_id, options = {})
click to toggle source
# File lib/confirmation_code/service/damatu.rb, line 81 def recognition_error(ret_id, options = {}) recognition_options = damatu_options(options) recognition_options['id'] = ret_id.to_s recognition_options['sign'] = sign(recognition_options['user'], ret_id.to_s.bytes) response = client.post(RECOGNITION_ERROR_URL, recognition_options) result(JSON.parse(response.body)) end
result(body)
click to toggle source
# File lib/confirmation_code/service/damatu.rb, line 98 def result(body) { "success" => body['ret'] == 0, "data" => body.except('ret', 'sign', 'cookie') } end
set_app_key(app_key)
click to toggle source
# File lib/confirmation_code/service/damatu.rb, line 32 def set_app_key(app_key) @app_key = app_key end
set_extra_options(options)
click to toggle source
# File lib/confirmation_code/service/damatu.rb, line 27 def set_extra_options(options) @app_key = options[:app_key] @app_id = options[:app_id] end
sign(user, param = [])
click to toggle source
# File lib/confirmation_code/service/damatu.rb, line 48 def sign(user, param = []) encode_str = (@app_key.bytes + user.bytes + param).pack('c*') return md5(encode_str)[0..7] end
upload(image_url, options = {})
click to toggle source
# File lib/confirmation_code/service/damatu.rb, line 53 def upload(image_url, options = {}) upload_options = damatu_options(options) upload_options['url'] = CGI::escape(image_url) upload_options['sign'] = sign(upload_options['user'], image_url.bytes) upload_options['type'] = 200 if upload_options['type'].nil? response = client.get(UPLOAD_URL, upload_options) result(JSON.parse(response.body)) end
upload_local(image_path, options = {})
click to toggle source
# File lib/confirmation_code/service/damatu.rb, line 62 def upload_local(image_path, options = {}) upload_options = damatu_options(options) upload_options['type'] = 200 if upload_options['type'].nil? byte_data = File.read(image_path) File.open(image_path) do |file| upload_options['file'] = file upload_options['sign'] = sign(upload_options['user'], byte_data.bytes) response = client.post(UPLOAD_LOCAL_URL, upload_options) result(JSON.parse(response.body)) end end