moyasar 0.4.0 → 0.6.0

Sign up to get free protection for your applications and to get access to all the features.
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: []