webpay 2.4.1 → 3.0.0

Sign up to get free protection for your applications and to get access to all the features.
Files changed (79) hide show
  1. checksums.yaml +4 -4
  2. data/.gitignore +0 -2
  3. data/Rakefile +0 -6
  4. data/lib/webpay/account.rb +19 -24
  5. data/lib/webpay/api_resource.rb +5 -0
  6. data/lib/webpay/charge.rb +48 -27
  7. data/lib/webpay/customer.rb +56 -91
  8. data/lib/webpay/data_types.rb +2069 -0
  9. data/lib/webpay/error.rb +68 -0
  10. data/lib/webpay/event.rb +19 -16
  11. data/lib/webpay/recursion.rb +47 -46
  12. data/lib/webpay/shop.rb +37 -68
  13. data/lib/webpay/token.rb +19 -10
  14. data/lib/webpay.rb +114 -77
  15. data/webpay.gemspec +6 -13
  16. metadata +16 -179
  17. data/.rspec +0 -2
  18. data/.travis.yml +0 -12
  19. data/LICENSE.txt +0 -22
  20. data/README.md +0 -52
  21. data/gemfiles/no_doc_gems +0 -14
  22. data/lib/data/ca-certificates.crt +0 -3829
  23. data/lib/webpay/card.rb +0 -13
  24. data/lib/webpay/client.rb +0 -81
  25. data/lib/webpay/deleted_entity.rb +0 -8
  26. data/lib/webpay/entity.rb +0 -71
  27. data/lib/webpay/entity_list.rb +0 -25
  28. data/lib/webpay/fee.rb +0 -13
  29. data/lib/webpay/operations.rb +0 -49
  30. data/lib/webpay/response_converter.rb +0 -57
  31. data/lib/webpay/version.rb +0 -5
  32. data/lib/webpay/webpay_error.rb +0 -126
  33. data/spec/resources/account/delete.txt +0 -15
  34. data/spec/resources/account/retrieve.txt +0 -23
  35. data/spec/resources/charges/all.txt +0 -139
  36. data/spec/resources/charges/capture.txt +0 -49
  37. data/spec/resources/charges/create_with_card.txt +0 -49
  38. data/spec/resources/charges/create_with_customer.txt +0 -49
  39. data/spec/resources/charges/refund.txt +0 -57
  40. data/spec/resources/charges/retrieve.txt +0 -49
  41. data/spec/resources/charges/retrieve_not_captured.txt +0 -42
  42. data/spec/resources/customers/all.txt +0 -76
  43. data/spec/resources/customers/create.txt +0 -31
  44. data/spec/resources/customers/delete.txt +0 -16
  45. data/spec/resources/customers/retrieve.txt +0 -63
  46. data/spec/resources/customers/retrieve_deleted.txt +0 -16
  47. data/spec/resources/customers/update.txt +0 -31
  48. data/spec/resources/errors/bad_request.txt +0 -18
  49. data/spec/resources/errors/broken_json.txt +0 -16
  50. data/spec/resources/errors/card_error.txt +0 -19
  51. data/spec/resources/errors/not_found.txt +0 -18
  52. data/spec/resources/errors/not_found_ja.txt +0 -20
  53. data/spec/resources/errors/unauthorized.txt +0 -16
  54. data/spec/resources/errors/unknown_api_error.txt +0 -17
  55. data/spec/resources/events/all_with_type.txt +0 -164
  56. data/spec/resources/events/retrieve.txt +0 -41
  57. data/spec/resources/recursions/all.txt +0 -61
  58. data/spec/resources/recursions/create.txt +0 -26
  59. data/spec/resources/recursions/delete.txt +0 -16
  60. data/spec/resources/recursions/resume.txt +0 -26
  61. data/spec/resources/recursions/retrieve.txt +0 -26
  62. data/spec/resources/recursions/retrieve_deleted.txt +0 -16
  63. data/spec/resources/recursions/retrieve_suspended.txt +0 -26
  64. data/spec/resources/shops/all.txt +0 -122
  65. data/spec/resources/shops/create.txt +0 -54
  66. data/spec/resources/shops/retrieve.txt +0 -54
  67. data/spec/resources/shops/update.txt +0 -55
  68. data/spec/resources/tokens/create.txt +0 -30
  69. data/spec/resources/tokens/retrieve.txt +0 -30
  70. data/spec/spec_helper.rb +0 -37
  71. data/spec/webpay/account_spec.rb +0 -24
  72. data/spec/webpay/charge_spec.rb +0 -143
  73. data/spec/webpay/customer_spec.rb +0 -109
  74. data/spec/webpay/event_spec.rb +0 -30
  75. data/spec/webpay/recursion_spec.rb +0 -93
  76. data/spec/webpay/shop_spec.rb +0 -121
  77. data/spec/webpay/token_spec.rb +0 -33
  78. data/spec/webpay/webpay_error_spec.rb +0 -64
  79. data/spec/webpay_spec.rb +0 -40
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA1:
3
- metadata.gz: 87d8f18ea9c3ebbec42dd9ba16a04affffc7359c
4
- data.tar.gz: cf40c50dc29ba456df180e226de6d0590ecf984e
3
+ metadata.gz: f2ca7bfa04c0ed68afb5b9d18d21fc794512a981
4
+ data.tar.gz: 83ca5f17ae63b12de47a2be3a1588bed74235b49
5
5
  SHA512:
6
- metadata.gz: 4288b0e1971a4f31ae6e016bdb9892ad31f3a8bc28124ae2d8a6b575563b9113e59d12246e6a5cf81d00650064791c0392472a3be8e1e9be003c60fa611425b6
7
- data.tar.gz: 863e697452bf067c38e7af2f8a8a9d986612f9541281abe193afa4c01412f1cf2976d8e357d325dca2d9857ce88f370350a67fe923e8faa65a72cf669939c3de
6
+ metadata.gz: 5a0f1c55019eba364a5f2c1b3d855e2d85704e9a668781268854cb8291cc3555cfad2612c82a34900e31b28f09834afbab85ae1e79aed6bf6c4b0c2c67d62e57
7
+ data.tar.gz: fe64c67d719db5755d6876915c9b66f6a2ce75c16b80fd3002c82e7611d992fd2dfd274f580c0eb268648cd3b3b2f09d443ceb028e0760afa15c60b159eef244
data/.gitignore CHANGED
@@ -3,8 +3,6 @@
3
3
  .bundle
4
4
  .config
5
5
  Gemfile.lock
6
- gemfiles/*.lock
7
- lib/bundler/man
8
6
  pkg
9
7
  rdoc
10
8
  spec/reports
data/Rakefile CHANGED
@@ -1,7 +1 @@
1
1
  require "bundler/gem_tasks"
2
-
3
- require 'rspec/core/rake_task'
4
-
5
- RSpec::Core::RakeTask.new(:spec)
6
-
7
- task :default => :spec
@@ -1,27 +1,22 @@
1
- module WebPay
2
-
3
- # Object for API response hash object with <code>hash['object'] = account</code>
4
- class Account < Entity
5
- class << self
6
-
7
- # Get the account of api_key's owner
8
- # @return [Account] the account of api_key's owner
9
- def retrieve
10
- convert(WebPay.client.get(path))
11
- end
12
-
13
- # Clear all test data of api_key's owner
14
- # @return [Boolean] true if the request succeeded
15
- def delete_data
16
- response = WebPay.client.delete([path, 'data'].join('/'))
17
- response['deleted']
18
- end
1
+ class WebPay::Account < WebPay::ApiResource
2
+ # Retrieve information of the current user
3
+ #
4
+ # @param params [EmptyRequest|Hash] Parameters to API call
5
+ # @return [AccountResponse]
6
+ def retrieve(params = {})
7
+ req = WebPay::EmptyRequest.create(params)
8
+ raw_response = @client.request(:get, 'account', req)
9
+ WebPay::AccountResponse.new(raw_response)
10
+ end
19
11
 
20
- # @api private
21
- # @return [String] Relative path to API root: <code>'/account'</code>
22
- def path
23
- '/account'
24
- end
25
- end
12
+ # Delete all test data of this account
13
+ #
14
+ # @param params [EmptyRequest|Hash] Parameters to API call
15
+ # @return [DeletedResponse]
16
+ def delete_data(params = {})
17
+ req = WebPay::EmptyRequest.create(params)
18
+ raw_response = @client.request(:delete, 'account/data', req)
19
+ WebPay::DeletedResponse.new(raw_response)
26
20
  end
21
+
27
22
  end
@@ -0,0 +1,5 @@
1
+ class WebPay::ApiResource
2
+ def initialize(client)
3
+ @client = client
4
+ end
5
+ end
data/lib/webpay/charge.rb CHANGED
@@ -1,33 +1,54 @@
1
- module WebPay
2
-
3
- # Object for API response hash object with <code>hash['object'] = charge</code>
4
- class Charge < Entity
5
- install_class_operations :create, :retrieve, :all
1
+ class WebPay::Charge < WebPay::ApiResource
2
+ # Create a charge object with given parameters.
3
+ # In live mode, this issues a transaction.
4
+ #
5
+ # @param params [ChargeRequestCreate|Hash] Parameters to API call
6
+ # @return [ChargeResponse]
7
+ def create(params = {})
8
+ req = WebPay::ChargeRequestCreate.create(params)
9
+ raw_response = @client.request(:post, 'charges', req)
10
+ WebPay::ChargeResponse.new(raw_response)
11
+ end
6
12
 
7
- # @return [String] Relative path to API root
8
- # @api private
9
- def self.path
10
- '/charges'
11
- end
13
+ # Retrieve a existing charge object by charge id
14
+ #
15
+ # @param params [ChargeIdRequest|Hash] Parameters to API call
16
+ # @return [ChargeResponse]
17
+ def retrieve(params = {})
18
+ req = WebPay::ChargeIdRequest.create(params)
19
+ raw_response = @client.request(:get, 'charges/:id', req)
20
+ WebPay::ChargeResponse.new(raw_response)
21
+ end
12
22
 
13
- # Refund this charge
14
- # @param [Hash] params request parameters
15
- # @option params [Integer] :amount The amount to refund. Default is all amount.
16
- def refund(params = {})
17
- update_attributes(WebPay.client.post([path, 'refund'].join('/'), params))
18
- end
23
+ # Refund a paid charge specified by charge id.
24
+ # Optional argument amount is to refund partially.
25
+ #
26
+ # @param params [ChargeRequestWithAmount|Hash] Parameters to API call
27
+ # @return [ChargeResponse]
28
+ def refund(params = {})
29
+ req = WebPay::ChargeRequestWithAmount.create(params)
30
+ raw_response = @client.request(:post, 'charges/:id/refund', req)
31
+ WebPay::ChargeResponse.new(raw_response)
32
+ end
19
33
 
20
- # Capture a not captured charge
21
- # @param [Hash] params request parameters
22
- # @option params [Integer] :amount The amount to capture. Default is all amount.
23
- def capture(params = {})
24
- update_attributes(WebPay.client.post([path, 'capture'].join('/'), params))
25
- end
34
+ # Capture a not captured charge specified by charge id
35
+ #
36
+ # @param params [ChargeRequestWithAmount|Hash] Parameters to API call
37
+ # @return [ChargeResponse]
38
+ def capture(params = {})
39
+ req = WebPay::ChargeRequestWithAmount.create(params)
40
+ raw_response = @client.request(:post, 'charges/:id/capture', req)
41
+ WebPay::ChargeResponse.new(raw_response)
42
+ end
26
43
 
27
- # @return [String] Relative path of instance to API root
28
- # @api private
29
- def path
30
- "/charges/#{id}"
31
- end
44
+ # List charges filtered by params
45
+ #
46
+ # @param params [ListRequestWithCustomer|Hash] Parameters to API call
47
+ # @return [ChargeResponseList]
48
+ def all(params = {})
49
+ req = WebPay::ListRequestWithCustomer.create(params)
50
+ raw_response = @client.request(:get, 'charges', req)
51
+ WebPay::ChargeResponseList.new(raw_response)
32
52
  end
53
+
33
54
  end
@@ -1,98 +1,63 @@
1
- module WebPay
2
-
3
- # Object for API response hash object with <code>hash['object'] = customer</code>
4
- class Customer < Entity
5
- install_class_operations :create, :all
6
-
7
- # Attributes updated by assignment.
8
- # These attributes are sent on save.
9
- # Only description, card, and email are effective.
10
- attr_accessor :updated_attributes
11
-
12
- # @return [String] Relative path to API root
13
- # @api private
14
- def self.path
15
- '/customers'
16
- end
17
-
18
- # @return [Entity] WebPay::Customer or WebPay::DeletedEntity. <code>deleted?</code> is to classify.
19
- def self.retrieve(id)
20
- id = id.to_s
21
- if id.strip == ''
22
- raise InvalidRequestError.invalid_id(id)
23
- end
24
- response = WebPay.client.get([path, id].join('/'))
25
- if response['deleted']
26
- DeletedEntity.new(response)
27
- else
28
- convert(response)
29
- end
30
- end
31
-
32
- # @api private
33
- def initialize(attributes)
34
- @updated_attributes = {}
35
- super(attributes)
36
- end
37
-
38
- # @return [Boolean] false
39
- def deleted?
40
- false
41
- end
42
-
43
- # <code>object['key']=</code> is wrapper for <code>object.key =</code>.
44
- # Method call style is recommended.
45
- # @return [Object] Given value
46
- def []=(key, value)
47
- send("#{key}=", value)
48
- end
49
-
50
- # <code>object['key']</code> is wrapper for <code>object.key</code>.
51
- # Method call style is recommended.
52
- # @return [Object] The attribute's value
53
- def [](key)
54
- send(key)
55
- end
56
-
57
- [:description, :card, :email].each do |attr|
58
- define_method("#{attr}=") do |value|
59
- @updated_attributes[attr.to_s] = value
60
- end
61
- define_method("#{attr}") do
62
- @updated_attributes[attr.to_s] || @attributes[attr.to_s]
63
- end
64
- end
1
+ class WebPay::Customer < WebPay::ApiResource
2
+ # Create a customer object with given parameters.
3
+ #
4
+ # @param params [CustomerRequestCreate|Hash] Parameters to API call
5
+ # @return [CustomerResponse]
6
+ def create(params = {})
7
+ req = WebPay::CustomerRequestCreate.create(params)
8
+ raw_response = @client.request(:post, 'customers', req)
9
+ WebPay::CustomerResponse.new(raw_response)
10
+ end
65
11
 
66
- # Return a hash similar to the response from API.
67
- # If an attribute's value is updated, the updated value is used.
68
- # @return [Hash] a hash similar to the response from API
69
- def to_hash
70
- Hash[@attributes.merge(@updated_attributes).map { |k, v| [k, v.is_a?(Entity) ? v.to_hash : v] }]
71
- end
12
+ # Retrieve a customer object by customer id.
13
+ # If the customer is already deleted, "deleted" attribute becomes true.
14
+ #
15
+ # @param params [CustomerIdRequest|Hash] Parameters to API call
16
+ # @return [CustomerResponse]
17
+ def retrieve(params = {})
18
+ req = WebPay::CustomerIdRequest.create(params)
19
+ raw_response = @client.request(:get, 'customers/:id', req)
20
+ WebPay::CustomerResponse.new(raw_response)
21
+ end
72
22
 
73
- alias_method :to_h, :to_hash
23
+ # Update an existing customer with specified parameters
24
+ #
25
+ # @param params [CustomerRequestUpdate|Hash] Parameters to API call
26
+ # @return [CustomerResponse]
27
+ def update(params = {})
28
+ req = WebPay::CustomerRequestUpdate.create(params)
29
+ raw_response = @client.request(:post, 'customers/:id', req)
30
+ WebPay::CustomerResponse.new(raw_response)
31
+ end
74
32
 
75
- # Send update request of modified attributes.
76
- # description, card, and email are modifiable.
77
- # @return [Customer] this object with attributes updated
78
- def save
79
- update_attributes(WebPay.client.post(path, @updated_attributes))
80
- @updated_attributes = {}
81
- self
82
- end
33
+ # Delete an existing customer
34
+ #
35
+ # @param params [CustomerIdRequest|Hash] Parameters to API call
36
+ # @return [CustomerResponse]
37
+ def delete(params = {})
38
+ req = WebPay::CustomerIdRequest.create(params)
39
+ raw_response = @client.request(:delete, 'customers/:id', req)
40
+ WebPay::CustomerResponse.new(raw_response)
41
+ end
83
42
 
84
- # Delete this customer.
85
- # This operation cannot be undone.
86
- # @return [Boolean] true if operation succeeded
87
- def delete
88
- response = WebPay.client.delete(path)
89
- response['deleted']
90
- end
43
+ # List customers filtered by params
44
+ #
45
+ # @param params [ListRequest|Hash] Parameters to API call
46
+ # @return [CustomerResponseList]
47
+ def all(params = {})
48
+ req = WebPay::ListRequest.create(params)
49
+ raw_response = @client.request(:get, 'customers', req)
50
+ WebPay::CustomerResponseList.new(raw_response)
51
+ end
91
52
 
92
- # @return [String] Relative path of instance to API root
93
- # @api private
94
- def path
95
- "/customers/#{id}"
96
- end
53
+ # Delete a card data of a customer
54
+ #
55
+ # @param params [CustomerIdRequest|Hash] Parameters to API call
56
+ # @return [CustomerResponse]
57
+ def delete_active_card(params = {})
58
+ req = WebPay::CustomerIdRequest.create(params)
59
+ raw_response = @client.request(:delete, 'customers/:id/active_card', req)
60
+ WebPay::CustomerResponse.new(raw_response)
97
61
  end
62
+
98
63
  end