paytureman 0.1.2 → 0.2.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA1:
3
- metadata.gz: 832c9f8c57b03bb1e623d68327afd8b33496c26c
4
- data.tar.gz: 66e8910ad74385f08c3bbee423e62ca6a89d5b0e
3
+ metadata.gz: 2d8145dfb3dbac036340d6431033e2d9dcf36fd8
4
+ data.tar.gz: 1d2802a1d7e49b216bc800f67176c1a808cb51e8
5
5
  SHA512:
6
- metadata.gz: 57cb1492118c300a6fa66b1301a10562bdbe3acc2906b97abfd6714daa0ee2b663177055963e5d6bc4a93a01282b46ee4be773c6aad9e562307835e2e84befc5
7
- data.tar.gz: ebbf38cdd9106eada9de4a8657c34effb49f02d821d3c8fc61f8faee2d29df2773db023308104acce1a26c47e97799876d03d137f96ca9b157eed682c701c6fb
6
+ metadata.gz: 48456b447a38f61e83ebaf7151320c8333325f607e300583bf4783c3916c9ed643daaf3b8c2968941a7dfa748aac1579c255fd68605d5230f8f8df6d5ba3f627
7
+ data.tar.gz: 718a093a0bcc3a2e9dec27d5580d9e8b2a47c557bc11a3b97f305f2bf9a7e3143747358c0ecb55153754b35fd4a7623e2b4e3d62c96f02db25afa5975b1fd637
@@ -2,6 +2,8 @@ module Paytureman
2
2
 
3
3
  class Payment
4
4
 
5
+ attr_reader :order_id
6
+
5
7
  def initialize(order_id, amount, ip)
6
8
  @order_id, @amount, @ip = order_id, amount, ip
7
9
  end
@@ -14,11 +16,29 @@ module Paytureman
14
16
  new(memento.order_id, memento.amount, memento.ip)
15
17
  end
16
18
 
19
+ def self.new_from_payment(donor)
20
+ memento = OpenStruct.new
21
+ donor.save_to_memento(memento)
22
+ new_from_memento(memento)
23
+ end
24
+
25
+ def current
26
+ current_payment_type = {
27
+ :new => PaymentNew,
28
+ :prepared => PaymentPrepared,
29
+ :authorized => PaymentBlocked,
30
+ :voided => PaymentCancelled,
31
+ :charged => PaymentCharged
32
+ }[payture.status(order_id)] || PaymentUnknown
33
+ current_payment_type.new_from_payment(self)
34
+ end
35
+
17
36
  attr_accessor :payture
18
37
 
19
38
  protected
20
39
 
21
- attr_accessor :order_id, :amount, :ip
40
+ attr_accessor :amount, :ip
41
+ attr_writer :order_id
22
42
 
23
43
  def payture
24
44
  @payture ||= Api.instance
@@ -0,0 +1,6 @@
1
+ module Paytureman
2
+
3
+ class PaymentUnknown < PaymentWithSession
4
+ end
5
+
6
+ end
data/lib/payture/api.rb CHANGED
@@ -23,6 +23,12 @@ module Paytureman
23
23
  response[:success]
24
24
  end
25
25
 
26
+ def status(order_id)
27
+ response = make_request(:pay_status, order_id: order_id)
28
+ return :prepared if !response[:success] && response[:err_code] == :none
29
+ response[:success] && response[:state]
30
+ end
31
+
26
32
  protected
27
33
 
28
34
  def rest_client
@@ -48,6 +54,9 @@ module Paytureman
48
54
  if result[:amount]
49
55
  result[:amount] = result[:amount].to_i
50
56
  end
57
+ if result[:err_code]
58
+ result[:err_code] = result[:err_code].downcase.to_sym
59
+ end
51
60
  return result
52
61
  end
53
62
 
data/lib/paytureman.rb CHANGED
@@ -13,5 +13,6 @@ require_relative 'payments/payment_prepared'
13
13
  require_relative 'payments/payment_blocked'
14
14
  require_relative 'payments/payment_charged'
15
15
  require_relative 'payments/payment_cancelled'
16
+ require_relative 'payments/payment_unknown'
16
17
 
17
18
  require_relative 'service/payment_persistence'
data/paytureman.gemspec CHANGED
@@ -4,7 +4,7 @@ $LOAD_PATH.unshift(lib) unless $LOAD_PATH.include?(lib)
4
4
 
5
5
  Gem::Specification.new do |spec|
6
6
  spec.name = "paytureman"
7
- spec.version = "0.1.2"
7
+ spec.version = "0.2.0"
8
8
  spec.authors = ["Ivan Kasatenko"]
9
9
  spec.email = ["ivan@uniqsystems.ru"]
10
10
  spec.summary = %q{Payture API implementation}
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: paytureman
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.1.2
4
+ version: 0.2.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - Ivan Kasatenko
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2014-01-28 00:00:00.000000000 Z
11
+ date: 2014-01-29 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: rest_client
@@ -127,6 +127,7 @@ files:
127
127
  - lib/payments/payment_charged.rb
128
128
  - lib/payments/payment_new.rb
129
129
  - lib/payments/payment_prepared.rb
130
+ - lib/payments/payment_unknown.rb
130
131
  - lib/payments/payment_with_session.rb
131
132
  - lib/payture/api.rb
132
133
  - lib/paytureman.rb