class TransferTo::Request

Attributes

name[R]
params[R]
user[R]

Public Class Methods

new(user, password, aurl = nil) click to toggle source
# File lib/transfer_to/request.rb, line 6
def initialize(user, password, aurl = nil)
  @user   = user
  @pass   = password
  @conn = Faraday.new(url: aurl) do |faraday|
    faraday.request  :url_encoded
    faraday.adapter  :net_http
  end
end

Public Instance Methods

action=(name) click to toggle source
# File lib/transfer_to/request.rb, line 27
def action=(name)
  reset
  @name = name
  add_param :action, name
end
add_param(key, value) click to toggle source
# File lib/transfer_to/request.rb, line 37
def add_param(key, value)
  @params[key.to_sym] = value
end
authenticate() click to toggle source
# File lib/transfer_to/request.rb, line 20
def authenticate
  time = Time.now.to_i.to_s
  add_param :key,   time
  add_param :md5,   md5_hash(@user + @pass + time.to_s)
  add_param :login, @user
end
get?() click to toggle source
# File lib/transfer_to/request.rb, line 45
def get?
  @params[:method] == :get
end
key() click to toggle source
# File lib/transfer_to/request.rb, line 41
def key
  @params[:key]
end
params=(parameters) click to toggle source
# File lib/transfer_to/request.rb, line 33
def params=(parameters)
  @params.merge!(parameters)
end
post?() click to toggle source
# File lib/transfer_to/request.rb, line 49
def post?
  @params[:method] == :post
end
reset() click to toggle source
# File lib/transfer_to/request.rb, line 15
def reset
  @params = {}
  authenticate
end
run(method = :get) click to toggle source
# File lib/transfer_to/request.rb, line 53
def run(method = :get)
  add_param :method, method
  @conn.send(method, "/cgi-bin/shop/topup", @params) do |req|
    req.options = { timeout: 600, open_timeout: 600 }
  end
end

Private Instance Methods

md5_hash(str) click to toggle source
# File lib/transfer_to/request.rb, line 62
def md5_hash(str)
  (Digest::MD5.new << str).to_s
end
to_time(time) click to toggle source
# File lib/transfer_to/request.rb, line 66
def to_time(time)
  case time.class.name
  when "String"  then return Time.parse(time)
  when "Integer" then return Time.at(time)
  when "Time"    then return time
  else raise ArgumentError
  end
rescue
  Time.now
end
to_yyyymmdd(time) click to toggle source
# File lib/transfer_to/request.rb, line 77
def to_yyyymmdd(time)
  to_time(time).strftime("%Y-%m-%d")
end