Module: Webmoney::RequestResult

Included in:
Webmoney
Defined in:
lib/request_result.rb

Overview

:nodoc:all

Instance Method Summary collapse

Instance Method Details

#result_balance(doc) ⇒ Object



107
108
109
110
111
112
113
114
115
116
117
118
119
120
# File 'lib/request_result.rb', line 107

def result_balance(doc)
  purses = []
  doc.at('//purses').children.each do |purse|
    purses_hash = {}
    purse.children.each do |child|
      purses_hash[child.name.to_sym] = child.content
    end
    purses << purses_hash unless purses_hash.empty?
  end
  {
    :purses => purses,
    :retval => doc.at('//retval').inner_html.to_i
  }
end

#result_bussines_level(doc) ⇒ Object



12
13
14
# File 'lib/request_result.rb', line 12

def result_bussines_level(doc)
  doc.at('//level').inner_html.to_i
end

#result_check_sign(doc) ⇒ Object



4
5
6
# File 'lib/request_result.rb', line 4

def result_check_sign(doc)
  doc.at('//testsign/res').inner_html == 'yes' ? true : false
end

#result_check_user(doc) ⇒ Object



101
102
103
104
105
# File 'lib/request_result.rb', line 101

def result_check_user(doc)
  {
    :retval => doc.at('//retval').inner_html.to_i
  }
end

#result_create_invoice(doc) ⇒ Object



31
32
33
34
35
36
37
38
39
40
41
42
43
44
# File 'lib/request_result.rb', line 31

def result_create_invoice(doc)
  res = {
    :retval => doc.at('//retval').inner_html.to_i,
    :retdesc   => (doc.at('//testwmpurse/retdesc').inner_html rescue nil),
    :orderid  => doc.at('//invoice/orderid').inner_html.to_i
  }
  if res[:retval] == 0
    res[:id]  = doc.at('//invoice')['id'].to_i
    res[:ts]  = doc.at('//invoice')['ts'].to_i
    res[:state] = doc.at('//invoice/state').inner_html.to_i
    res[:created_at] = Time.parse(doc.at('//invoice/datecrt').inner_html)
  end
  res
end

#result_create_transaction(doc) ⇒ Object



46
47
48
49
50
51
52
53
54
# File 'lib/request_result.rb', line 46

def result_create_transaction(doc)
  op = doc.at('//operation')
  {
    :operation_id => op['id'],
    :operation_ts => op['ts']
  }.merge( op.children.inject({}) do |memo, elm|
    memo.merge!(elm.name.to_sym => elm.text)
  end )
end

#result_find_wm(doc) ⇒ Object



23
24
25
26
27
28
29
# File 'lib/request_result.rb', line 23

def result_find_wm(doc)
  {
    :retval => doc.at('//retval').inner_html.to_i,
    :wmid   => (doc.at('//testwmpurse/wmid').inner_html rescue nil),
    :purse  => (doc.at('//testwmpurse/purse').inner_html rescue nil)
  }
end

#result_get_passport(doc) ⇒ Object



8
9
10
# File 'lib/request_result.rb', line 8

def result_get_passport(doc)
  Webmoney::Passport.parse_result(doc)
end

#result_login(doc) ⇒ Object



80
81
82
83
84
85
86
87
# File 'lib/request_result.rb', line 80

def (doc)
  {
    :retval => doc.at('/response')['retval'].to_i,
    :retdesc   => doc.at('/response')['sval'],
    :lastAccess => doc.at('/response')['lastAccess'],
    :expires => doc.at('/response')['expires']
  }
end

#result_outgoing_invoices(doc) ⇒ Object



56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
# File 'lib/request_result.rb', line 56

def result_outgoing_invoices(doc)
  res = {
    :retval => doc.at('//retval').inner_html.to_i,
    :retdesc   => (doc.at('//testwmpurse/retdesc').inner_html rescue nil),
  }
  res[:invoices] = doc.xpath('//outinvoices/outinvoice').map do |invoice|
    r = {
      :id => invoice['id'].to_i,
      :ts => invoice['ts'].to_i,
    }
    invoice.elements.each do |tag|
      name = tag.name.to_sym
      value = tag.inner_html
      value = value.to_i if [:orderid, :tranid, :period, :expiration, :wmtranid, :state].include?(name)
      value = value.to_f if [:rest, :amount, :comiss].include?(name)
      value = Time.parse(value) if [:datecrt, :dateupd].include?(name)
      value = cp1251_to_utf8(value) if [:desc, :address].include?(name)
      r[name] = value
    end
    r
  end
  res
end

#result_send_message(doc) ⇒ Object



16
17
18
19
20
21
# File 'lib/request_result.rb', line 16

def result_send_message(doc)
  {
    :id => doc.at('//message')['id'],
    :date => Time.parse(doc.at('//message/datecrt').inner_html)
  }
end

#result_trust_me(doc) ⇒ Object Also known as: result_i_trust



89
90
91
92
93
94
95
96
97
# File 'lib/request_result.rb', line 89

def result_trust_me(doc)
  {
    :count        => doc.at('//trustlist')['cnt'].to_i,
    :invoices     => doc.xpath('//trust[@inv="1"]/purse').map(&:inner_text),
    :transactions => doc.xpath('//trust[@trans="1"]/purse').map(&:inner_text),
    :balance      => doc.xpath('//trust[@purse="1"]/purse').map(&:inner_text),
    :history      => doc.xpath('//trust[@transhist="1"]/purse').map(&:inner_text)
  }
end