webpay 2.0.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.
@@ -0,0 +1,13 @@
1
+ module WebPay
2
+
3
+ # Object for API response hash object with <code>hash['object'] = token</code>
4
+ class Token < Entity
5
+ install_class_operations :create, :retrieve
6
+
7
+ # @return [String] Relative path to API root
8
+ # @api private
9
+ def self.path
10
+ '/tokens'
11
+ end
12
+ end
13
+ end
@@ -0,0 +1,5 @@
1
+ module WebPay
2
+
3
+ # Version of WebPay gem
4
+ VERSION = "2.0.0"
5
+ end
@@ -0,0 +1,120 @@
1
+ module WebPay
2
+
3
+ # Abstract error class for WebPay errors.
4
+ # All WebPay error classes inherit this.
5
+ # This error itself is not raised.
6
+ class WebPayError < StandardError
7
+ # @api private
8
+ # @return [WebPayError]
9
+ def self.from_response(status, body)
10
+ hash = JSON.load(body)
11
+ unless hash['error']
12
+ return APIConnectionError.new("Invalid response #{body}")
13
+ end
14
+ error_hash = hash['error']
15
+ case status
16
+ when 400, 404
17
+ InvalidRequestError.new(status, error_hash)
18
+ when 401
19
+ AuthenticationError.new(status, error_hash)
20
+ when 402
21
+ CardError.new(status, error_hash)
22
+ else
23
+ APIError.new(status, error_hash)
24
+ end
25
+ end
26
+
27
+ # @return [Integer, nil] HTTP status code
28
+ attr_reader :status
29
+
30
+ # @return [Hash, nil] Responded error object
31
+ attr_reader :error_response
32
+
33
+ def initialize(message, status = nil, error_response = nil)
34
+ @status, @error_response = status, error_response
35
+ super(message)
36
+ end
37
+ end
38
+
39
+ # This error is raised when API request fails.
40
+ class APIConnectionError < WebPayError
41
+ # @api private
42
+ # @return [APIConnectionError]
43
+ def self.faraday_error(e)
44
+ new("Connection with WebPay API server failed. #{e.message}", e)
45
+ end
46
+
47
+ # @return [Error] The original error raised in request
48
+ attr_reader :original_error
49
+
50
+ def initialize(message, original_error)
51
+ @original_error = original_error
52
+ super(message)
53
+ end
54
+ end
55
+
56
+ # This error means WebPay service reported internal server error.
57
+ class APIError < WebPayError
58
+
59
+ # @return [String] 'api_error' or 'processing_error'
60
+ attr_reader :type
61
+
62
+ def initialize(status, error_response)
63
+ @type = error_response['type']
64
+ super(error_response['message'], status, error_response)
65
+ end
66
+ end
67
+
68
+ # Occurs when api_key is invalid.
69
+ # Check again that a correct api_key is set
70
+ class AuthenticationError < WebPayError
71
+ def initialize(status, error_response)
72
+ super(error_response['message'], status, error_response)
73
+ end
74
+ end
75
+
76
+ # Occurs when card information is invalid
77
+ class CardError < WebPayError
78
+
79
+ # @return [String] 'card_error'
80
+ attr_reader :type
81
+
82
+ # @return [String] Error code
83
+ attr_reader :code
84
+
85
+ # @return [String] The field where an error is detected
86
+ attr_reader :param
87
+
88
+ def initialize(status, error_response)
89
+ @type = error_response['type']
90
+ @code = error_response['code']
91
+ @param = error_response['param']
92
+ super(error_response['message'], status, error_response)
93
+ end
94
+ end
95
+
96
+ # Occurs when the specified entity is not found, or request parameters are
97
+ # invalid
98
+ class InvalidRequestError < WebPayError
99
+
100
+ # @return [String] 'invalid_request_error'
101
+ attr_reader :type
102
+
103
+ # @return [String] The field where an error is detected
104
+ attr_reader :param
105
+
106
+ def initialize(status, error_response)
107
+ @type = error_response['type']
108
+ @param = error_response['param']
109
+ super(error_response['message'], status, error_response)
110
+ end
111
+
112
+ # Internal
113
+ def self.invalid_id(id)
114
+ InvalidRequestError.new(nil, {
115
+ 'type' => 'invalid_request_error',
116
+ 'message' => "ID must not be empty",
117
+ 'param' => 'id' })
118
+ end
119
+ end
120
+ end
data/webpay.gemspec ADDED
@@ -0,0 +1,27 @@
1
+ # coding: utf-8
2
+ lib = File.expand_path('../lib', __FILE__)
3
+ $LOAD_PATH.unshift(lib) unless $LOAD_PATH.include?(lib)
4
+ require 'webpay/version'
5
+
6
+ Gem::Specification.new do |spec|
7
+ spec.name = 'webpay'
8
+ spec.version = WebPay::VERSION
9
+ spec.authors = ['webpay', 'tomykaira']
10
+ spec.email = ['administrators@webpay.jp', 'tomykaira@gmail.com']
11
+ spec.description = 'WebPay is payment gateway service in Japan. see also https://webpay.jp/'
12
+ spec.summary = 'Ruby bindings of WebPay API'
13
+ spec.homepage = 'https://webpay.jp'
14
+ spec.license = 'MIT'
15
+
16
+ spec.files = `git ls-files`.split($/)
17
+ spec.executables = spec.files.grep(%r{^bin/}) { |f| File.basename(f) }
18
+ spec.test_files = spec.files.grep(%r{^(test|spec|features)/})
19
+ spec.require_paths = ['lib']
20
+
21
+ spec.add_dependency 'faraday', '~> 0.8.7'
22
+
23
+ spec.add_development_dependency 'bundler', '~> 1.3'
24
+ spec.add_development_dependency 'rake'
25
+ spec.add_development_dependency 'yard', '~> 0.8.6.2'
26
+ spec.add_development_dependency 'redcarpet', '~> 3.0.0'
27
+ end
metadata ADDED
@@ -0,0 +1,149 @@
1
+ --- !ruby/object:Gem::Specification
2
+ name: webpay
3
+ version: !ruby/object:Gem::Version
4
+ version: 2.0.0
5
+ prerelease:
6
+ platform: ruby
7
+ authors:
8
+ - webpay
9
+ - tomykaira
10
+ autorequire:
11
+ bindir: bin
12
+ cert_chain: []
13
+ date: 2013-07-16 00:00:00.000000000 Z
14
+ dependencies:
15
+ - !ruby/object:Gem::Dependency
16
+ name: faraday
17
+ requirement: !ruby/object:Gem::Requirement
18
+ none: false
19
+ requirements:
20
+ - - ~>
21
+ - !ruby/object:Gem::Version
22
+ version: 0.8.7
23
+ type: :runtime
24
+ prerelease: false
25
+ version_requirements: !ruby/object:Gem::Requirement
26
+ none: false
27
+ requirements:
28
+ - - ~>
29
+ - !ruby/object:Gem::Version
30
+ version: 0.8.7
31
+ - !ruby/object:Gem::Dependency
32
+ name: bundler
33
+ requirement: !ruby/object:Gem::Requirement
34
+ none: false
35
+ requirements:
36
+ - - ~>
37
+ - !ruby/object:Gem::Version
38
+ version: '1.3'
39
+ type: :development
40
+ prerelease: false
41
+ version_requirements: !ruby/object:Gem::Requirement
42
+ none: false
43
+ requirements:
44
+ - - ~>
45
+ - !ruby/object:Gem::Version
46
+ version: '1.3'
47
+ - !ruby/object:Gem::Dependency
48
+ name: rake
49
+ requirement: !ruby/object:Gem::Requirement
50
+ none: false
51
+ requirements:
52
+ - - ! '>='
53
+ - !ruby/object:Gem::Version
54
+ version: '0'
55
+ type: :development
56
+ prerelease: false
57
+ version_requirements: !ruby/object:Gem::Requirement
58
+ none: false
59
+ requirements:
60
+ - - ! '>='
61
+ - !ruby/object:Gem::Version
62
+ version: '0'
63
+ - !ruby/object:Gem::Dependency
64
+ name: yard
65
+ requirement: !ruby/object:Gem::Requirement
66
+ none: false
67
+ requirements:
68
+ - - ~>
69
+ - !ruby/object:Gem::Version
70
+ version: 0.8.6.2
71
+ type: :development
72
+ prerelease: false
73
+ version_requirements: !ruby/object:Gem::Requirement
74
+ none: false
75
+ requirements:
76
+ - - ~>
77
+ - !ruby/object:Gem::Version
78
+ version: 0.8.6.2
79
+ - !ruby/object:Gem::Dependency
80
+ name: redcarpet
81
+ requirement: !ruby/object:Gem::Requirement
82
+ none: false
83
+ requirements:
84
+ - - ~>
85
+ - !ruby/object:Gem::Version
86
+ version: 3.0.0
87
+ type: :development
88
+ prerelease: false
89
+ version_requirements: !ruby/object:Gem::Requirement
90
+ none: false
91
+ requirements:
92
+ - - ~>
93
+ - !ruby/object:Gem::Version
94
+ version: 3.0.0
95
+ description: WebPay is payment gateway service in Japan. see also https://webpay.jp/
96
+ email:
97
+ - administrators@webpay.jp
98
+ - tomykaira@gmail.com
99
+ executables: []
100
+ extensions: []
101
+ extra_rdoc_files: []
102
+ files:
103
+ - .gitignore
104
+ - Gemfile
105
+ - LICENSE.txt
106
+ - README.md
107
+ - Rakefile
108
+ - lib/data/ca-certificates.crt
109
+ - lib/webpay.rb
110
+ - lib/webpay/account.rb
111
+ - lib/webpay/card.rb
112
+ - lib/webpay/charge.rb
113
+ - lib/webpay/client.rb
114
+ - lib/webpay/customer.rb
115
+ - lib/webpay/entity.rb
116
+ - lib/webpay/entity_list.rb
117
+ - lib/webpay/event.rb
118
+ - lib/webpay/operations.rb
119
+ - lib/webpay/response_converter.rb
120
+ - lib/webpay/token.rb
121
+ - lib/webpay/version.rb
122
+ - lib/webpay/webpay_error.rb
123
+ - webpay.gemspec
124
+ homepage: https://webpay.jp
125
+ licenses:
126
+ - MIT
127
+ post_install_message:
128
+ rdoc_options: []
129
+ require_paths:
130
+ - lib
131
+ required_ruby_version: !ruby/object:Gem::Requirement
132
+ none: false
133
+ requirements:
134
+ - - ! '>='
135
+ - !ruby/object:Gem::Version
136
+ version: '0'
137
+ required_rubygems_version: !ruby/object:Gem::Requirement
138
+ none: false
139
+ requirements:
140
+ - - ! '>='
141
+ - !ruby/object:Gem::Version
142
+ version: '0'
143
+ requirements: []
144
+ rubyforge_project:
145
+ rubygems_version: 1.8.23
146
+ signing_key:
147
+ specification_version: 3
148
+ summary: Ruby bindings of WebPay API
149
+ test_files: []