webpay 2.0.0

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