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 CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA1:
3
- metadata.gz: 54dc5f434f8cd3766a3a8d8ce30c90504c75d4ad
4
- data.tar.gz: 1e0b19e49a5c77e515a40593b05185adc488b325
3
+ metadata.gz: 554e32ec1adefa67fc7e979cff1cdd8a164ec66d
4
+ data.tar.gz: c54f854bc8c1908c0936d5471854a706fae64070
5
5
  SHA512:
6
- metadata.gz: 2e4b91fe32e1a192097a5b5fc9fec77eb1b7db29941878d757b2c640f8aa8bee72734df3ae5dffa1bf51b7076e214392615375b9aac379e4fbce16f5373dcaab
7
- data.tar.gz: 24ac15b7b9ee2e56123b85cbf08660f420360db123b5aaa9fb8924df680f8618fd0c524cae63d30a1c12c114e7f1f0315c9190943919529d01a5ed6ee358f09e
6
+ metadata.gz: d46e73cd154121bcefdf30f9499b6a2eb453dbe1bd992c8c65c9b5b20a08d5af76d3817d20810391443f770e85a5661b16796fc0052d3a4c16c70870491ede50
7
+ data.tar.gz: a9c3a9746f8b3d4edba7f8192b8b739be45b6d363064003f3a3df19bf5ed8396ef71d8dbc892dbda7d192eb41d95af432701f42c93357f941032aab036b939a3
data/.travis.yml CHANGED
@@ -1,7 +1,7 @@
1
1
  language: ruby
2
+ cache: bundler
2
3
  rvm:
3
4
  - 2.1.10
4
5
  - 2.2
5
6
  - 2.3.3
6
- - 2.4.0-preview3
7
- - jruby-head
7
+ - 2.4.0
@@ -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}"
@@ -8,13 +8,11 @@ module Moyasar
8
8
  end
9
9
 
10
10
  module ClassMethods
11
-
12
11
  def fetch(id)
13
12
  response = request(:get, find_url(id))
14
13
  new(response.body)
15
14
  end
16
15
  alias find fetch
17
-
18
16
  end
19
17
 
20
18
  module InstanceMethods
@@ -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(message)
4
- super({message: message, type: 'API_ERROR', http_code: 500})
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
- attrs['message'] = "#{attrs['message']}: #{@errors.keys.first} #{@errors.values.first.first}" if @errors.keys.count == 1
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
 
@@ -1,10 +1,10 @@
1
1
  module Moyasar
2
2
  class MoyasarError < StandardError
3
3
  attr_reader :type, :http_code
4
-
4
+
5
5
  def initialize(attrs = {})
6
6
  @type = attrs['type']
7
- @http_code = attrs['code']
7
+ @http_code = attrs['http_code']
8
8
  super(attrs['message'])
9
9
  end
10
10
  end
@@ -1,6 +1,6 @@
1
1
  module Moyasar
2
2
  class Invoice < Resource
3
- attr_reader :id, :status, :created_at, :modified_at
3
+ attr_reader :id, :status, :amount_format, :url, :created_at, :updated_at
4
4
  attr_accessor :description, :amount, :currency
5
5
  end
6
6
  end
@@ -1,6 +1,9 @@
1
1
  module Moyasar
2
2
  class Payment < Resource
3
- attr_reader :id, :status, :amount, :currency, :source, :created_at, :modified_at
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
@@ -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
@@ -1,3 +1,3 @@
1
1
  module Moyasar
2
- VERSION = '0.4.0'
2
+ VERSION = '0.6.0'
3
3
  end
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..401
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, "We had problem with Moyasar server."
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 wrpper library for Moyasar Payment service}
13
- spec.description = %q{Ruby wrpper library for Moyasar Payment service}
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 = 'exe'
27
- spec.executables = spec.files.grep(%r{^exe/}) { |f| File.basename(f) }
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.0.0'
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.0
4
+ version: 0.6.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - Abdulaziz AlShetwi
8
8
  autorequire:
9
- bindir: exe
9
+ bindir: bin
10
10
  cert_chain: []
11
- date: 2016-11-27 00:00:00.000000000 Z
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 wrpper library for Moyasar Payment service
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.0.0
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 wrpper library for Moyasar Payment service
120
+ summary: Ruby wrapper library for Moyasar Payment Service
118
121
  test_files: []