paysio 1.0.2 → 1.0.3
Sign up to get free protection for your applications and to get access to all the features.
- data/Gemfile.lock +1 -1
- data/README.rdoc +5 -0
- data/lib/paysio/client.rb +4 -1
- data/lib/paysio/errors/not_authorized.rb +7 -0
- data/lib/paysio/errors/resource_not_valid.rb +7 -0
- data/lib/paysio/resource.rb +6 -2
- data/lib/paysio/version.rb +1 -1
- data/lib/paysio.rb +4 -0
- metadata +3 -1
data/Gemfile.lock
CHANGED
data/README.rdoc
CHANGED
@@ -27,3 +27,8 @@
|
|
27
27
|
== Actions: refund charge
|
28
28
|
charge = Paysio::Charge.find("ch_1111111")
|
29
29
|
charge.refund
|
30
|
+
|
31
|
+
|
32
|
+
== Actions: redirect to charge after create (e.g. in Ruby on Rails)
|
33
|
+
charge = Paysio::Charge.create(amount: 100, payment_system_id: 'test', description: 'test charge')
|
34
|
+
redirect_to charge.redirect_url
|
data/lib/paysio/client.rb
CHANGED
@@ -2,6 +2,9 @@ module Paysio
|
|
2
2
|
class Client
|
3
3
|
class << self
|
4
4
|
def request(method, path, params = {}, headers = {})
|
5
|
+
unless Paysio.api_key
|
6
|
+
raise Paysio::Errors::NotAuthorized, "Please specify Paysio.api_key"
|
7
|
+
end
|
5
8
|
headers = {
|
6
9
|
user_agent: "Pays.io RubyClient/#{Paysio::VERSION}",
|
7
10
|
content_type: 'application/x-www-form-urlencoded'
|
@@ -27,7 +30,7 @@ module Paysio
|
|
27
30
|
rescue Oj::ParseError
|
28
31
|
# raise APIError.new("Invalid response object from API: #{body.inspect} (#{code})", code, body)
|
29
32
|
end
|
30
|
-
Paysio::Resource.build_from(resp)
|
33
|
+
Paysio::Resource.build_from(resp, response.headers[:location])
|
31
34
|
end
|
32
35
|
|
33
36
|
def execute(opts)
|
data/lib/paysio/resource.rb
CHANGED
@@ -1,5 +1,7 @@
|
|
1
1
|
module Paysio
|
2
2
|
class Resource
|
3
|
+
attr_accessor :redirect_url
|
4
|
+
|
3
5
|
def initialize(id = nil)
|
4
6
|
@values = {}
|
5
7
|
@id = id
|
@@ -68,7 +70,8 @@ module Paysio
|
|
68
70
|
|
69
71
|
def validate!(attrs)
|
70
72
|
unless valid?(attrs)
|
71
|
-
raise
|
73
|
+
raise Paysio::Errors::ResourceNotValid,
|
74
|
+
"#{self.name} should have following attributes: #{@validate_presence_of.inspect}"
|
72
75
|
end
|
73
76
|
end
|
74
77
|
|
@@ -76,7 +79,7 @@ module Paysio
|
|
76
79
|
"/#{self.name.demodulize.tableize}"
|
77
80
|
end
|
78
81
|
|
79
|
-
def build_from(resp)
|
82
|
+
def build_from(resp, redirect_url = nil)
|
80
83
|
case resp
|
81
84
|
when Array
|
82
85
|
resp.map { |values| build_from(values) }
|
@@ -88,6 +91,7 @@ module Paysio
|
|
88
91
|
end
|
89
92
|
resource = klass.new(resp['id'])
|
90
93
|
resource.refresh_from(resp)
|
94
|
+
resource.redirect_url = redirect_url
|
91
95
|
resource
|
92
96
|
else
|
93
97
|
resp
|
data/lib/paysio/version.rb
CHANGED
data/lib/paysio.rb
CHANGED
@@ -17,6 +17,10 @@ require 'paysio/actions/update'
|
|
17
17
|
require 'paysio/actions/destroy'
|
18
18
|
require 'paysio/actions/find'
|
19
19
|
|
20
|
+
# errors
|
21
|
+
require 'paysio/errors/not_authorized'
|
22
|
+
require 'paysio/errors/resource_not_valid'
|
23
|
+
|
20
24
|
# resources
|
21
25
|
require 'paysio/resources/list'
|
22
26
|
require 'paysio/resources/charge'
|
metadata
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: paysio
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 1.0.
|
4
|
+
version: 1.0.3
|
5
5
|
prerelease:
|
6
6
|
platform: ruby
|
7
7
|
authors:
|
@@ -101,6 +101,8 @@ files:
|
|
101
101
|
- lib/paysio/actions/list.rb
|
102
102
|
- lib/paysio/actions/update.rb
|
103
103
|
- lib/paysio/client.rb
|
104
|
+
- lib/paysio/errors/not_authorized.rb
|
105
|
+
- lib/paysio/errors/resource_not_valid.rb
|
104
106
|
- lib/paysio/json.rb
|
105
107
|
- lib/paysio/resource.rb
|
106
108
|
- lib/paysio/resources/charge.rb
|