moyasar 0.4.0 → 0.6.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 +4 -4
- data/.travis.yml +2 -2
- data/lib/moyasar/actions/construct.rb +2 -4
- data/lib/moyasar/actions/fetch.rb +0 -2
- data/lib/moyasar/actions/refund.rb +29 -0
- data/lib/moyasar/actions/update.rb +1 -8
- data/lib/moyasar/errors/api_error.rb +5 -2
- data/lib/moyasar/errors/invalid_request_error.rb +3 -1
- data/lib/moyasar/errors/moyasar_error.rb +2 -2
- data/lib/moyasar/invoice.rb +1 -1
- data/lib/moyasar/payment.rb +5 -2
- data/lib/moyasar/resource.rb +5 -1
- data/lib/moyasar/version.rb +1 -1
- data/lib/moyasar.rb +5 -4
- data/moyasar.gemspec +6 -6
- metadata +10 -7
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 554e32ec1adefa67fc7e979cff1cdd8a164ec66d
|
4
|
+
data.tar.gz: c54f854bc8c1908c0936d5471854a706fae64070
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: d46e73cd154121bcefdf30f9499b6a2eb453dbe1bd992c8c65c9b5b20a08d5af76d3817d20810391443f770e85a5661b16796fc0052d3a4c16c70870491ede50
|
7
|
+
data.tar.gz: a9c3a9746f8b3d4edba7f8192b8b739be45b6d363064003f3a3df19bf5ed8396ef71d8dbc892dbda7d192eb41d95af432701f42c93357f941032aab036b939a3
|
data/.travis.yml
CHANGED
@@ -10,17 +10,15 @@ module Moyasar
|
|
10
10
|
|
11
11
|
module ClassMethods
|
12
12
|
end
|
13
|
-
|
14
|
-
module InstanceMethods
|
15
13
|
|
14
|
+
module InstanceMethods
|
16
15
|
def construct(attrs = {})
|
17
16
|
attrs.each do |key, value|
|
18
17
|
self.instance_variable_set("@#{key}".to_sym, value)
|
19
18
|
end
|
20
19
|
end
|
21
|
-
|
22
20
|
end
|
23
|
-
|
21
|
+
|
24
22
|
module Initializer
|
25
23
|
def initialize(attrs = {})
|
26
24
|
# puts "construct ...#{self} #{attrs}"
|
@@ -0,0 +1,29 @@
|
|
1
|
+
module Moyasar
|
2
|
+
module Actions
|
3
|
+
module Refund
|
4
|
+
|
5
|
+
def self.included(klass)
|
6
|
+
klass.extend ClassMethods
|
7
|
+
klass.send :include, InstanceMethods
|
8
|
+
end
|
9
|
+
|
10
|
+
module ClassMethods
|
11
|
+
def refund(id, attrs = {})
|
12
|
+
perform_refund(id, attrs)
|
13
|
+
end
|
14
|
+
|
15
|
+
def perform_refund(id, attrs = {})
|
16
|
+
response = request(:post, refund_url(id), params: attrs)
|
17
|
+
new(response.body)
|
18
|
+
end
|
19
|
+
end
|
20
|
+
|
21
|
+
module InstanceMethods
|
22
|
+
def refund(attrs = {})
|
23
|
+
self.class.perform_refund(id, attrs) unless id.nil?
|
24
|
+
end
|
25
|
+
end
|
26
|
+
|
27
|
+
end
|
28
|
+
end
|
29
|
+
end
|
@@ -11,17 +11,10 @@ module Moyasar
|
|
11
11
|
end
|
12
12
|
|
13
13
|
module InstanceMethods
|
14
|
-
|
15
14
|
def update(attrs = {})
|
16
15
|
response = request(:put, update_url(id), params: attrs)
|
17
|
-
|
18
|
-
if response.code.to_i == 200
|
19
|
-
true
|
20
|
-
else
|
21
|
-
false
|
22
|
-
end
|
16
|
+
response.code.to_i == 200
|
23
17
|
end
|
24
|
-
|
25
18
|
end
|
26
19
|
|
27
20
|
end
|
@@ -1,7 +1,10 @@
|
|
1
1
|
module Moyasar
|
2
2
|
class APIError < MoyasarError
|
3
|
-
def initialize(
|
4
|
-
|
3
|
+
def initialize(attrs = {})
|
4
|
+
attrs['type'] ||= 'API_ERROR'
|
5
|
+
attrs['http_code'] ||= 500
|
6
|
+
attrs['message'] = 'We had a problem with Moyasar server.'
|
7
|
+
super(attrs)
|
5
8
|
end
|
6
9
|
end
|
7
10
|
end
|
@@ -5,7 +5,9 @@ module Moyasar
|
|
5
5
|
def initialize(attrs = {})
|
6
6
|
@errors = attrs['errors']
|
7
7
|
|
8
|
-
|
8
|
+
if @errors.respond_to?(:keys) && @errors.keys.count > 0
|
9
|
+
attrs['message'] = "#{attrs['message']}: #{@errors.keys.first} #{@errors.values.first.first}"
|
10
|
+
end
|
9
11
|
super(attrs)
|
10
12
|
end
|
11
13
|
|
data/lib/moyasar/invoice.rb
CHANGED
data/lib/moyasar/payment.rb
CHANGED
@@ -1,6 +1,9 @@
|
|
1
1
|
module Moyasar
|
2
2
|
class Payment < Resource
|
3
|
-
|
3
|
+
include Moyasar::Actions::Refund
|
4
|
+
|
5
|
+
attr_reader :id, :status, :amount, :amount_format, :fee, :fee_format, :currency, :invoice_id,
|
6
|
+
:source, :refunded, :refunded_at, :ip, :created_at, :updated_at
|
4
7
|
attr_accessor :description
|
5
8
|
|
6
9
|
def initialize(attrs = {})
|
@@ -21,6 +24,6 @@ module Moyasar
|
|
21
24
|
end
|
22
25
|
|
23
26
|
end
|
24
|
-
|
27
|
+
|
25
28
|
end
|
26
29
|
end
|
data/lib/moyasar/resource.rb
CHANGED
@@ -6,7 +6,7 @@ module Moyasar
|
|
6
6
|
include Moyasar::Actions::List
|
7
7
|
include Moyasar::Actions::Fetch
|
8
8
|
include Moyasar::Actions::Update
|
9
|
-
|
9
|
+
|
10
10
|
class << self
|
11
11
|
|
12
12
|
def class_name
|
@@ -38,6 +38,10 @@ module Moyasar
|
|
38
38
|
"#{resource_url}/#{id}"
|
39
39
|
end
|
40
40
|
|
41
|
+
def refund_url(id)
|
42
|
+
"#{resource_url}/#{id}/refund"
|
43
|
+
end
|
44
|
+
|
41
45
|
end
|
42
46
|
|
43
47
|
private
|
data/lib/moyasar/version.rb
CHANGED
data/lib/moyasar.rb
CHANGED
@@ -12,6 +12,7 @@ require 'moyasar/actions/create'
|
|
12
12
|
require 'moyasar/actions/list'
|
13
13
|
require 'moyasar/actions/fetch'
|
14
14
|
require 'moyasar/actions/update'
|
15
|
+
require 'moyasar/actions/refund'
|
15
16
|
|
16
17
|
require 'moyasar/source'
|
17
18
|
require 'moyasar/resource'
|
@@ -54,12 +55,12 @@ module Moyasar
|
|
54
55
|
client = Moyasar::HTTPClient.new(@api_base)
|
55
56
|
response = client.request_json(method, url, key, params, headers)
|
56
57
|
case response.code
|
57
|
-
when 400..
|
58
|
-
error_data = response.body.merge({'http_code' => response.code})
|
58
|
+
when 400..429
|
59
|
+
error_data = response.body.merge({ 'http_code' => response.code })
|
59
60
|
error = Errors[response.body['type']].new(error_data)
|
60
61
|
raise error
|
61
|
-
when 500
|
62
|
-
raise APIError
|
62
|
+
when 500..504
|
63
|
+
raise APIError.new({ 'http_code' => response.code })
|
63
64
|
end
|
64
65
|
response
|
65
66
|
end
|
data/moyasar.gemspec
CHANGED
@@ -9,8 +9,8 @@ Gem::Specification.new do |spec|
|
|
9
9
|
spec.authors = ['Abdulaziz AlShetwi']
|
10
10
|
spec.email = ['developers@moyasar.com']
|
11
11
|
|
12
|
-
spec.summary = %q{Ruby
|
13
|
-
spec.description = %q{Ruby
|
12
|
+
spec.summary = %q{Ruby wrapper library for Moyasar Payment Service}
|
13
|
+
spec.description = %q{Ruby wrapper library for Moyasar Payment Service}
|
14
14
|
spec.homepage = 'https://moyasar.com/docs/api?ruby'
|
15
15
|
spec.license = 'MIT'
|
16
16
|
|
@@ -23,13 +23,13 @@ Gem::Specification.new do |spec|
|
|
23
23
|
# end
|
24
24
|
|
25
25
|
spec.files = `git ls-files -z`.split("\x0").reject { |f| f.match(%r{^(test|spec|features)/}) }
|
26
|
-
spec.bindir = '
|
27
|
-
spec.executables = spec.files.grep(%r{^
|
26
|
+
spec.bindir = 'bin'
|
27
|
+
spec.executables = spec.files.grep(%r{^bin/}) { |f| File.basename(f) }
|
28
28
|
spec.require_paths = ['lib']
|
29
29
|
|
30
30
|
spec.add_development_dependency 'bundler' # , "~> 1.10"
|
31
31
|
spec.add_development_dependency 'rake' # , "~> 10.0"
|
32
32
|
spec.add_development_dependency 'minitest'
|
33
|
-
|
34
|
-
spec.required_ruby_version = '>= 2.
|
33
|
+
|
34
|
+
spec.required_ruby_version = '>= 2.1.10'
|
35
35
|
end
|
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: moyasar
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.
|
4
|
+
version: 0.6.0
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Abdulaziz AlShetwi
|
8
8
|
autorequire:
|
9
|
-
bindir:
|
9
|
+
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date:
|
11
|
+
date: 2017-03-14 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: bundler
|
@@ -52,10 +52,12 @@ dependencies:
|
|
52
52
|
- - ">="
|
53
53
|
- !ruby/object:Gem::Version
|
54
54
|
version: '0'
|
55
|
-
description: Ruby
|
55
|
+
description: Ruby wrapper library for Moyasar Payment Service
|
56
56
|
email:
|
57
57
|
- developers@moyasar.com
|
58
|
-
executables:
|
58
|
+
executables:
|
59
|
+
- console
|
60
|
+
- setup
|
59
61
|
extensions: []
|
60
62
|
extra_rdoc_files: []
|
61
63
|
files:
|
@@ -73,6 +75,7 @@ files:
|
|
73
75
|
- lib/moyasar/actions/create.rb
|
74
76
|
- lib/moyasar/actions/fetch.rb
|
75
77
|
- lib/moyasar/actions/list.rb
|
78
|
+
- lib/moyasar/actions/refund.rb
|
76
79
|
- lib/moyasar/actions/request.rb
|
77
80
|
- lib/moyasar/actions/update.rb
|
78
81
|
- lib/moyasar/errors/account_inactive_error.rb
|
@@ -103,7 +106,7 @@ required_ruby_version: !ruby/object:Gem::Requirement
|
|
103
106
|
requirements:
|
104
107
|
- - ">="
|
105
108
|
- !ruby/object:Gem::Version
|
106
|
-
version: 2.
|
109
|
+
version: 2.1.10
|
107
110
|
required_rubygems_version: !ruby/object:Gem::Requirement
|
108
111
|
requirements:
|
109
112
|
- - ">="
|
@@ -114,5 +117,5 @@ rubyforge_project:
|
|
114
117
|
rubygems_version: 2.5.1
|
115
118
|
signing_key:
|
116
119
|
specification_version: 4
|
117
|
-
summary: Ruby
|
120
|
+
summary: Ruby wrapper library for Moyasar Payment Service
|
118
121
|
test_files: []
|