kaui 0.2.2 → 0.2.3

Sign up to get free protection for your applications and to get access to all the features.
data/.travis.yml CHANGED
@@ -2,7 +2,7 @@ language: ruby
2
2
 
3
3
  notifications:
4
4
  email:
5
- - ri-dev@ning.com
5
+ - killbilling-dev@googlegroups.com
6
6
 
7
7
  rvm:
8
8
  - 1.9.3
data/Gemfile CHANGED
@@ -1,21 +1,3 @@
1
- source "http://rubygems.org"
1
+ source 'http://rubygems.org'
2
2
 
3
- gem "rails", "~> 3.2.3"
4
- gem 'rest-client', '~> 1.6.7'
5
- gem 'money-rails', '~> 0.5.0'
6
- gem 'd3_rails', '~> 2.10.0'
7
-
8
- group :development, :test do
9
- # jquery-rails is used by the dummy application
10
- gem "jquery-rails"
11
-
12
- if defined?(JRUBY_VERSION)
13
- gem "jruby-openssl", "~> 0.7.7"
14
-
15
- gem 'activerecord-jdbc-adapter', '~> 1.2.2'
16
- gem 'activerecord-jdbcmysql-adapter', '~> 1.2.2'
17
- gem 'jdbc-mysql', :require => false
18
- else
19
- gem 'mysql2'
20
- end
21
- end
3
+ gemspec
data/Gemfile.lock CHANGED
@@ -1,51 +1,62 @@
1
+ PATH
2
+ remote: .
3
+ specs:
4
+ kaui (0.2.3)
5
+ d3_rails (~> 2.10.3)
6
+ jquery-rails (~> 2.0)
7
+ killbill-client (~> 0.1.1)
8
+ money-rails (~> 0.5.0)
9
+ rails (~> 3.2.3)
10
+ rest-client (~> 1.6.7)
11
+
1
12
  GEM
2
13
  remote: http://rubygems.org/
3
14
  specs:
4
- actionmailer (3.2.3)
5
- actionpack (= 3.2.3)
15
+ actionmailer (3.2.9)
16
+ actionpack (= 3.2.9)
6
17
  mail (~> 2.4.4)
7
- actionpack (3.2.3)
8
- activemodel (= 3.2.3)
9
- activesupport (= 3.2.3)
18
+ actionpack (3.2.9)
19
+ activemodel (= 3.2.9)
20
+ activesupport (= 3.2.9)
10
21
  builder (~> 3.0.0)
11
22
  erubis (~> 2.7.0)
12
- journey (~> 1.0.1)
23
+ journey (~> 1.0.4)
13
24
  rack (~> 1.4.0)
14
25
  rack-cache (~> 1.2)
15
26
  rack-test (~> 0.6.1)
16
- sprockets (~> 2.1.2)
17
- activemodel (3.2.3)
18
- activesupport (= 3.2.3)
27
+ sprockets (~> 2.2.1)
28
+ activemodel (3.2.9)
29
+ activesupport (= 3.2.9)
19
30
  builder (~> 3.0.0)
20
- activerecord (3.2.3)
21
- activemodel (= 3.2.3)
22
- activesupport (= 3.2.3)
31
+ activerecord (3.2.9)
32
+ activemodel (= 3.2.9)
33
+ activesupport (= 3.2.9)
23
34
  arel (~> 3.0.2)
24
35
  tzinfo (~> 0.3.29)
25
- activeresource (3.2.3)
26
- activemodel (= 3.2.3)
27
- activesupport (= 3.2.3)
28
- activesupport (3.2.3)
36
+ activeresource (3.2.9)
37
+ activemodel (= 3.2.9)
38
+ activesupport (= 3.2.9)
39
+ activesupport (3.2.9)
29
40
  i18n (~> 0.6)
30
41
  multi_json (~> 1.0)
31
42
  arel (3.0.2)
32
- builder (3.0.0)
33
- d3_rails (2.10.0)
43
+ builder (3.0.4)
44
+ d3_rails (2.10.3)
34
45
  railties (>= 3.1.0)
35
46
  erubis (2.7.0)
36
47
  hike (1.2.1)
37
- i18n (0.6.0)
38
- journey (1.0.3)
39
- jquery-rails (2.0.2)
40
- railties (>= 3.2.0, < 5.0)
41
- thor (~> 0.14)
42
- json (1.7.0)
43
- json (1.7.0-java)
48
+ i18n (0.6.4)
49
+ journey (1.0.4)
50
+ jquery-rails (2.2.0)
51
+ railties (>= 3.0, < 5.0)
52
+ thor (>= 0.14, < 2.0)
53
+ json (1.8.0)
54
+ killbill-client (0.1.1)
44
55
  mail (2.4.4)
45
56
  i18n (>= 0.4.0)
46
57
  mime-types (~> 1.16)
47
58
  treetop (~> 1.4.8)
48
- mime-types (1.18)
59
+ mime-types (1.23)
49
60
  money (5.0.0)
50
61
  i18n (~> 0.4)
51
62
  json
@@ -53,55 +64,52 @@ GEM
53
64
  activesupport (~> 3.0)
54
65
  money (~> 5.0.0)
55
66
  railties (~> 3.0)
56
- multi_json (1.3.4)
67
+ multi_json (1.7.4)
57
68
  mysql2 (0.3.11)
58
69
  polyglot (0.3.3)
59
- rack (1.4.1)
70
+ rack (1.4.5)
60
71
  rack-cache (1.2)
61
72
  rack (>= 0.4)
62
- rack-ssl (1.3.2)
73
+ rack-ssl (1.3.3)
63
74
  rack
64
- rack-test (0.6.1)
75
+ rack-test (0.6.2)
65
76
  rack (>= 1.0)
66
- rails (3.2.3)
67
- actionmailer (= 3.2.3)
68
- actionpack (= 3.2.3)
69
- activerecord (= 3.2.3)
70
- activeresource (= 3.2.3)
71
- activesupport (= 3.2.3)
77
+ rails (3.2.9)
78
+ actionmailer (= 3.2.9)
79
+ actionpack (= 3.2.9)
80
+ activerecord (= 3.2.9)
81
+ activeresource (= 3.2.9)
82
+ activesupport (= 3.2.9)
72
83
  bundler (~> 1.0)
73
- railties (= 3.2.3)
74
- railties (3.2.3)
75
- actionpack (= 3.2.3)
76
- activesupport (= 3.2.3)
84
+ railties (= 3.2.9)
85
+ railties (3.2.9)
86
+ actionpack (= 3.2.9)
87
+ activesupport (= 3.2.9)
77
88
  rack-ssl (~> 1.3.2)
78
89
  rake (>= 0.8.7)
79
90
  rdoc (~> 3.4)
80
- thor (~> 0.14.6)
81
- rake (0.9.2.2)
82
- rdoc (3.12)
91
+ thor (>= 0.14.6, < 2.0)
92
+ rake (10.0.4)
93
+ rdoc (3.12.2)
83
94
  json (~> 1.4)
84
95
  rest-client (1.6.7)
85
96
  mime-types (>= 1.16)
86
- sprockets (2.1.3)
97
+ sprockets (2.2.2)
87
98
  hike (~> 1.2)
99
+ multi_json (~> 1.0)
88
100
  rack (~> 1.0)
89
101
  tilt (~> 1.1, != 1.3.0)
90
- thor (0.14.6)
91
- tilt (1.3.3)
92
- treetop (1.4.10)
102
+ thor (0.18.1)
103
+ tilt (1.4.1)
104
+ treetop (1.4.12)
93
105
  polyglot
94
106
  polyglot (>= 0.3.1)
95
- tzinfo (0.3.33)
107
+ tzinfo (0.3.37)
96
108
 
97
109
  PLATFORMS
98
110
  java
99
111
  ruby
100
112
 
101
113
  DEPENDENCIES
102
- d3_rails (~> 2.10.0)
103
- jquery-rails
104
- money-rails (~> 0.5.0)
114
+ kaui!
105
115
  mysql2
106
- rails (~> 3.2.3)
107
- rest-client (~> 1.6.7)
@@ -86,11 +86,8 @@ class Kaui::AccountsController < Kaui::EngineController
86
86
 
87
87
  def do_add_payment_method
88
88
  account_id = params[:id]
89
- begin
90
- @account = Kaui::KillbillHelper::get_account(account_id)
91
- rescue => e
92
- flash[:error] = "Error while adding payment method: #{as_string(e)}"
93
- end
89
+ # Needed in the failure case scenario
90
+ @account = Kaui::KillbillHelper::get_account(account_id)
94
91
 
95
92
  # Implementation example using standard credit card fields
96
93
  @card_type = params[:card_type]
@@ -108,35 +105,31 @@ class Kaui::AccountsController < Kaui::EngineController
108
105
  @reason = params[:reason]
109
106
  @comment = params[:comment]
110
107
 
111
- if @account.present?
112
- properties = [ Kaui::PluginInfoProperty.new('key' => 'type', 'value' => 'CreditCard'),
113
- Kaui::PluginInfoProperty.new('key' => 'cardType', 'value' => @card_type),
114
- Kaui::PluginInfoProperty.new('key' => 'cardHolderName', 'value' => @card_holder_name),
115
- Kaui::PluginInfoProperty.new('key' => 'expirationDate', 'value' => "#{@expiration_year}-#{@expiration_month}"),
116
- Kaui::PluginInfoProperty.new('key' => 'maskNumber', 'value' => @credit_card_number),
117
- Kaui::PluginInfoProperty.new('key' => 'address1', 'value' => @address1),
118
- Kaui::PluginInfoProperty.new('key' => 'address2', 'value' => @address2),
119
- Kaui::PluginInfoProperty.new('key' => 'city', 'value' => @city),
120
- Kaui::PluginInfoProperty.new('key' => 'country', 'value' => @country),
121
- Kaui::PluginInfoProperty.new('key' => 'postalCode', 'value' => @postal_code),
122
- Kaui::PluginInfoProperty.new('key' => 'state', 'value' => @state) ]
123
-
124
- plugin_info = Kaui::PluginInfo.new('properties' => properties)
125
- payment_method = Kaui::PaymentMethod.new('accountId' => @account.account_id,
126
- 'isDefault' => @is_default == 1,
127
- 'pluginName' => Kaui.creditcard_plugin_name.call,
128
- 'pluginInfo' => plugin_info)
108
+ payment_method = KillBillClient::Model::PaymentMethod.new
109
+ payment_method.account_id = account_id
110
+ payment_method.plugin_name = params[:plugin_name] || Kaui.creditcard_plugin_name.call
111
+ payment_method.plugin_info = {
112
+ 'type' => 'CreditCard',
113
+ 'cardType' => @card_type,
114
+ 'cardHolderName' => @card_holder_name,
115
+ 'expirationDate' => "#{@expiration_year}-#{@expiration_month}",
116
+ 'maskNumber' => @credit_card_number,
117
+ 'address1' => @address1,
118
+ 'address2' => @address2,
119
+ 'city' => @city,
120
+ 'country' => @country,
121
+ 'postalCode' => @postal_code,
122
+ 'state' => @state
123
+ }
129
124
 
130
- begin
131
- Kaui::KillbillHelper::add_payment_method(payment_method, current_user, @reason, @comment)
132
- flash[:info] = "Payment method created"
133
- redirect_to kaui_engine.account_timeline_path(@account.account_id)
134
- return
135
- rescue => e
136
- flash[:error] = "Error while adding payment method #{invoice_id}: #{as_string(e)}"
137
- end
125
+ begin
126
+ Kaui::KillbillHelper::add_payment_method(@is_default == 1, payment_method, current_user, @reason, @comment)
127
+ flash[:info] = 'Payment method created'
128
+ redirect_to kaui_engine.account_timeline_path(account_id)
129
+ rescue => e
130
+ flash[:error] = "Error while adding payment method: #{as_string(e)}"
131
+ render "kaui/payment_methods/new"
138
132
  end
139
- render "kaui/payment_methods/new"
140
133
  end
141
134
 
142
135
  def set_default_payment_method
@@ -144,12 +137,12 @@ class Kaui::AccountsController < Kaui::EngineController
144
137
  @payment_method_id = params[:payment_method_id]
145
138
  if @account_id.present? && @payment_method_id.present?
146
139
  begin
147
- @payment_methods = Kaui::KillbillHelper::set_payment_method_as_default(@account_id, @payment_method_id)
140
+ @payment_methods = Kaui::KillbillHelper::set_payment_method_as_default(@account_id, @payment_method_id, current_user, params[:reason], params[:comment])
148
141
  rescue => e
149
- flash[:error] = "Error while setting payment method as default #{invoice_id}: #{as_string(e)}"
142
+ flash[:error] = "Error while setting payment method as default #{@payment_method_id}: #{as_string(e)}"
150
143
  end
151
144
  else
152
- flash[:notice] = "No account_id or payment_method_id given"
145
+ flash[:notice] = 'No account_id or payment_method_id given'
153
146
  end
154
147
  redirect_to :back
155
148
  end
@@ -12,7 +12,7 @@ class Kaui::EngineController < ApplicationController
12
12
 
13
13
  protected
14
14
 
15
- def get_layout
16
- layout ||= Kaui.config[:layout]
17
- end
15
+ def get_layout
16
+ layout ||= Kaui.config[:layout]
17
+ end
18
18
  end
@@ -1,20 +1,36 @@
1
1
  require 'kaui/killbill_helper'
2
2
 
3
3
  class Kaui::PaymentMethodsController < Kaui::EngineController
4
+ def index
5
+ if params[:account_id]
6
+ begin
7
+ @payment_methods = Kaui::KillbillHelper.get_payment_methods params[:account_id]
8
+ render :show
9
+ rescue => e
10
+ flash.now[:error] = "Error while retrieving payment method for account #{params[:id]}: #{as_string(e)}"
11
+ end
12
+ end
13
+ end
14
+
4
15
  def show
5
- # TODO: show payment method details
16
+ @payment_methods = []
17
+ begin
18
+ @payment_methods << Kaui::KillbillHelper.get_payment_method(params[:id])
19
+ rescue => e
20
+ flash.now[:error] = "Error while retrieving payment method #{params[:id]}: #{as_string(e)}"
21
+ end
6
22
  end
7
23
 
8
24
  def destroy
9
25
  payment_method_id = params[:id]
10
26
  if payment_method_id.present?
11
27
  begin
12
- Kaui::KillbillHelper.delete_payment_method(payment_method_id, params[:set_auto_pay_off])
28
+ Kaui::KillbillHelper.delete_payment_method(payment_method_id, params[:set_auto_pay_off], current_user, params[:reason], params[:comment])
13
29
  rescue => e
14
30
  flash[:error] = "Error while deleting payment method #{payment_method_id}: #{as_string(e)}"
15
31
  end
16
32
  else
17
- flash[:notice] = "Did not get the payment method id"
33
+ flash[:notice] = 'Did not get the payment method id'
18
34
  end
19
35
  redirect_to :back
20
36
  end
@@ -1,3 +1,5 @@
1
+ require 'killbill_client'
2
+
1
3
  module Kaui
2
4
  module KillbillHelper
3
5
 
@@ -6,7 +8,7 @@ module Kaui
6
8
  Rails.logger.info "Performing #{method} request to #{url}"
7
9
  begin
8
10
  response = RestClient.send(method.to_sym, url, *args)
9
- data = { :code => response.code }
11
+ data = {:code => response.code}
10
12
  if response.code < 300 && response.body.present?
11
13
  if response.headers[:content_type] =~ /application\/json.*/
12
14
  data[:json] = JSON.parse(response.body)
@@ -25,7 +27,7 @@ module Kaui
25
27
  if response.nil? || response[:json].nil?
26
28
  arity == :single ? nil : []
27
29
  elsif block_given?
28
- arity == :single ? yield(response[:json]) : response[:json].collect {|item| yield(item) }
30
+ arity == :single ? yield(response[:json]) : response[:json].collect { |item| yield(item) }
29
31
  else
30
32
  response[:json]
31
33
  end
@@ -52,17 +54,17 @@ module Kaui
52
54
 
53
55
  def self.get_account_timeline(account_id)
54
56
  data = call_killbill :get, "/1.0/kb/accounts/#{account_id}/timeline?audit=MINIMAL"
55
- process_response(data, :single) {|json| Kaui::AccountTimeline.new(json) }
57
+ process_response(data, :single) { |json| Kaui::AccountTimeline.new(json) }
56
58
  end
57
59
 
58
60
  def self.get_account(account_id, with_balance = false, with_balance_and_cba = false)
59
61
  data = call_killbill :get, "/1.0/kb/accounts/#{account_id}?accountWithBalance=#{with_balance}&accountWithBalanceAndCBA=#{with_balance_and_cba}"
60
- process_response(data, :single) {|json| Kaui::Account.new(json) }
62
+ process_response(data, :single) { |json| Kaui::Account.new(json) }
61
63
  end
62
64
 
63
65
  def self.get_account_by_external_key(external_key, with_balance = false, with_balance_and_cba = false)
64
66
  data = call_killbill :get, "/1.0/kb/accounts?externalKey=#{external_key}&accountWithBalance=#{with_balance}&accountWithBalanceAndCBA=#{with_balance_and_cba}"
65
- process_response(data, :single) {|json| Kaui::Account.new(json) }
67
+ process_response(data, :single) { |json| Kaui::Account.new(json) }
66
68
  end
67
69
 
68
70
  def self.get_account_by_bundle_id(bundle_id)
@@ -95,7 +97,7 @@ module Kaui
95
97
  end
96
98
 
97
99
  def self.update_email_notifications(account_id, is_notified, current_user = nil, reason = nil, comment = nil)
98
- email_data = { :isNotifiedForInvoices => is_notified }
100
+ email_data = {:isNotifiedForInvoices => is_notified}
99
101
  call_killbill :put,
100
102
  "/1.0/kb/accounts/#{account_id}/emailNotifications",
101
103
  ActiveSupport::JSON.encode(email_data, :root => false),
@@ -118,17 +120,17 @@ module Kaui
118
120
 
119
121
  def self.get_bundles(account_id)
120
122
  data = call_killbill :get, "/1.0/kb/accounts/#{account_id}/bundles"
121
- process_response(data, :multiple) {|json| Kaui::Bundle.new(json) }
123
+ process_response(data, :multiple) { |json| Kaui::Bundle.new(json) }
122
124
  end
123
125
 
124
126
  def self.get_bundle_by_external_key(account_id, external_key)
125
127
  data = call_killbill :get, "/1.0/kb/accounts/#{account_id}/bundles?externalKey=#{external_key}"
126
- process_response(data, :single) {|json| Kaui::Bundle.new(json) }
128
+ process_response(data, :single) { |json| Kaui::Bundle.new(json) }
127
129
  end
128
130
 
129
131
  def self.get_bundle(bundle_id)
130
132
  data = call_killbill :get, "/1.0/kb/bundles/#{bundle_id}"
131
- process_response(data, :single) {|json| Kaui::Bundle.new(json) }
133
+ process_response(data, :single) { |json| Kaui::Bundle.new(json) }
132
134
  end
133
135
 
134
136
  def self.transfer_bundle(bundle_id, new_account_id, cancel_immediately = false, transfer_addons = true, current_user = nil, reason = nil, comment = nil)
@@ -145,7 +147,7 @@ module Kaui
145
147
 
146
148
  def self.get_subscriptions_for_bundle(bundle_id)
147
149
  data = call_killbill :get, "/1.0/kb/bundles/#{bundle_id}/subscriptions"
148
- process_response(data, :multiple) {|json| Kaui::Subscription.new(json) }
150
+ process_response(data, :multiple) { |json| Kaui::Subscription.new(json) }
149
151
  end
150
152
 
151
153
  def self.get_subscriptions(account_id)
@@ -159,7 +161,7 @@ module Kaui
159
161
 
160
162
  def self.get_subscription(subscription_id)
161
163
  data = call_killbill :get, "/1.0/kb/subscriptions/#{subscription_id}"
162
- process_response(data, :single) {|json| Kaui::Subscription.new(json) }
164
+ process_response(data, :single) { |json| Kaui::Subscription.new(json) }
163
165
  end
164
166
 
165
167
  def self.create_subscription(subscription, current_user = nil, reason = nil, comment = nil)
@@ -235,7 +237,7 @@ module Kaui
235
237
 
236
238
  def self.get_invoice(invoice_id)
237
239
  data = call_killbill :get, "/1.0/kb/invoices/#{invoice_id}?withItems=true"
238
- process_response(data, :single) {|json| Kaui::Invoice.new(json) }
240
+ process_response(data, :single) { |json| Kaui::Invoice.new(json) }
239
241
  end
240
242
 
241
243
  def self.get_invoice_item(invoice_id, invoice_item_id)
@@ -307,14 +309,14 @@ module Kaui
307
309
  def self.get_available_addons(base_product_name)
308
310
  data = call_killbill :get, "/1.0/kb/catalog/availableAddons?baseProductName=#{base_product_name}"
309
311
  if data.has_key?(:json)
310
- data[:json].inject({}) {|catalog_hash, item| catalog_hash.merge!(item["planName"] => item) }
312
+ data[:json].inject({}) { |catalog_hash, item| catalog_hash.merge!(item["planName"] => item) }
311
313
  end
312
314
  end
313
315
 
314
316
  def self.get_available_base_plans()
315
317
  data = call_killbill :get, "/1.0/kb/catalog/availableBasePlans"
316
318
  if data.has_key?(:json)
317
- data[:json].inject({}) {|catalog_hash, item| catalog_hash.merge!(item["planName"] => item) }
319
+ data[:json].inject({}) { |catalog_hash, item| catalog_hash.merge!(item["planName"] => item) }
318
320
  end
319
321
  end
320
322
 
@@ -327,18 +329,18 @@ module Kaui
327
329
 
328
330
  def self.get_payments(invoice_id)
329
331
  data = call_killbill :get, "/1.0/kb/invoices/#{invoice_id}/payments"
330
- response_data = process_response(data, :multiple) {|json| Kaui::Payment.new(json) }
332
+ response_data = process_response(data, :multiple) { |json| Kaui::Payment.new(json) }
331
333
  return response_data
332
334
  end
333
335
 
334
336
  def self.pay_all_invoices(account_id, external = false, current_user = nil, reason = nil, comment = nil)
335
337
  call_killbill :post,
336
- "/1.0/kb/invoices/payments?externalPayment=#{external}",
337
- ActiveSupport::JSON.encode({:accountId => account_id}, :root => false),
338
- :content_type => "application/json",
339
- "X-Killbill-CreatedBy" => current_user,
340
- "X-Killbill-Reason" => extract_reason_code(reason),
341
- "X-Killbill-Comment" => "#{comment}"
338
+ "/1.0/kb/invoices/payments?externalPayment=#{external}",
339
+ ActiveSupport::JSON.encode({:accountId => account_id}, :root => false),
340
+ :content_type => "application/json",
341
+ "X-Killbill-CreatedBy" => current_user,
342
+ "X-Killbill-Reason" => extract_reason_code(reason),
343
+ "X-Killbill-Comment" => "#{comment}"
342
344
  end
343
345
 
344
346
  def self.create_payment(payment, external, current_user = nil, reason = nil, comment = nil)
@@ -351,24 +353,19 @@ module Kaui
351
353
  payment_data.delete(:chargebacks)
352
354
  payment_data.delete(:audit_logs)
353
355
  call_killbill :post,
354
- "/1.0/kb/invoices/#{payment.invoice_id}/payments?externalPayment=#{external}",
355
- ActiveSupport::JSON.encode(payment_data, :root => false),
356
- :content_type => "application/json",
357
- "X-Killbill-CreatedBy" => current_user,
358
- "X-Killbill-Reason" => extract_reason_code(reason),
359
- "X-Killbill-Comment" => "#{comment}"
356
+ "/1.0/kb/invoices/#{payment.invoice_id}/payments?externalPayment=#{external}",
357
+ ActiveSupport::JSON.encode(payment_data, :root => false),
358
+ :content_type => "application/json",
359
+ "X-Killbill-CreatedBy" => current_user,
360
+ "X-Killbill-Reason" => extract_reason_code(reason),
361
+ "X-Killbill-Comment" => "#{comment}"
360
362
  end
361
363
  end
362
364
 
363
365
  ############## PAYMENT METHOD ##############
364
366
 
365
- def self.delete_payment_method(payment_method_id, set_auto_pay_off = false, current_user = nil, reason = nil, comment = nil)
366
- set_auto_pay_off_param = "?deleteDefaultPmWithAutoPayOff=true" if set_auto_pay_off
367
- call_killbill :delete,
368
- "/1.0/kb/paymentMethods/#{payment_method_id}#{set_auto_pay_off_param}",
369
- "X-Killbill-CreatedBy" => current_user,
370
- "X-Killbill-Reason" => "#{reason}",
371
- "X-Killbill-Comment" => "#{comment}"
367
+ def self.delete_payment_method(payment_method_id, set_auto_pay_off = false, current_user = nil, reason = nil, comment = nil)
368
+ KillBillClient::Model::PaymentMethod.destroy payment_method_id, set_auto_pay_off, current_user, reason, comment
372
369
  end
373
370
 
374
371
  def self.get_non_external_payment_methods(account_id)
@@ -376,34 +373,19 @@ module Kaui
376
373
  end
377
374
 
378
375
  def self.get_payment_methods(account_id)
379
- data = call_killbill :get, "/1.0/kb/accounts/#{account_id}/paymentMethods?withPluginInfo=true"
380
- process_response(data, :multiple) {|json| Kaui::PaymentMethod.new(json) }
376
+ KillBillClient::Model::PaymentMethod.find_all_by_account_id account_id, true
381
377
  end
382
378
 
383
379
  def self.get_payment_method(payment_method_id)
384
- data = call_killbill :get, "/1.0/kb/paymentMethods/#{payment_method_id}?withPluginInfo=true"
385
- process_response(data, :single) {|json| Kaui::PaymentMethod.new(json) }
380
+ KillBillClient::Model::PaymentMethod.find_by_id payment_method_id, true
386
381
  end
387
382
 
388
383
  def self.set_payment_method_as_default(account_id, payment_method_id, current_user = nil, reason = nil, comment = nil)
389
- call_killbill :put,
390
- "/1.0/kb/accounts/#{account_id}/paymentMethods/#{payment_method_id}/setDefault",
391
- "",
392
- :content_type => :json,
393
- "X-Killbill-CreatedBy" => current_user,
394
- "X-Killbill-Reason" => extract_reason_code(reason),
395
- "X-Killbill-Comment" => "#{comment}"
384
+ KillBillClient::Model::PaymentMethod.set_default payment_method_id, account_id, current_user, reason, comment
396
385
  end
397
386
 
398
- def self.add_payment_method(payment_method, current_user = nil, reason = nil, comment = nil)
399
- payment_method_data = Kaui::Refund.camelize(payment_method.to_hash)
400
- call_killbill :post,
401
- "/1.0/kb/accounts/#{payment_method.account_id}/paymentMethods?isDefault=#{payment_method.is_default}",
402
- ActiveSupport::JSON.encode(payment_method_data, :root => false),
403
- :content_type => :json,
404
- "X-Killbill-CreatedBy" => current_user,
405
- "X-Killbill-Reason" => extract_reason_code(reason),
406
- "X-Killbill-Comment" => "#{comment}"
387
+ def self.add_payment_method(is_default, payment_method, current_user = nil, reason = nil, comment = nil)
388
+ payment_method.create is_default, current_user, reason, comment
407
389
  end
408
390
 
409
391
  ############## REFUND ##############
@@ -415,7 +397,7 @@ module Kaui
415
397
 
416
398
  def self.get_refunds_for_payment(payment_id)
417
399
  data = call_killbill :get, "/1.0/kb/payments/#{payment_id}/refunds"
418
- process_response(data, :multiple) {|json| Kaui::Refund.new(json) }
400
+ process_response(data, :multiple) { |json| Kaui::Refund.new(json) }
419
401
  end
420
402
 
421
403
  def self.create_refund(payment_id, refund, current_user = nil, reason = nil, comment = nil)
@@ -436,7 +418,7 @@ module Kaui
436
418
 
437
419
  def self.get_chargebacks_for_payment(payment_id)
438
420
  data = call_killbill :get, "/1.0/kb/chargebacks/payments/#{payment_id}"
439
- process_response(data, :multiple) {|json| Kaui::Chargeback.new(json) }
421
+ process_response(data, :multiple) { |json| Kaui::Chargeback.new(json) }
440
422
  end
441
423
 
442
424
  def self.create_chargeback(chargeback, current_user = nil, reason = nil, comment = nil)
@@ -580,5 +562,23 @@ module Kaui
580
562
  data = call_killbill :get, "/1.0/kb/analytics/sanity"
581
563
  process_response(data, :single) { |json| Kaui::AnalyticsSanity.new(json) }
582
564
  end
565
+
566
+ def self.before_all
567
+ methods.each do |method_name|
568
+ method = method(method_name)
569
+ (
570
+ class << self;
571
+ self
572
+ end
573
+ ).instance_eval {
574
+ define_method(method_name) do |*args, &block|
575
+ yield
576
+ method.call(*args, &block)
577
+ end
578
+ }
579
+ end
580
+ end
581
+
582
+ before_all { KillBillClient.url = Kaui.killbill_finder.call }
583
583
  end
584
584
  end
@@ -3,41 +3,47 @@
3
3
  </div>
4
4
  <table class="table table-condensed table-striped">
5
5
  <thead>
6
- <tr>
7
- <th>Type</th>
8
- <th>Card Type</th>
9
- <th>Account Name</th>
10
- <th>Mask Number / Baid</th>
11
- <th>Expiration Date</th>
12
- <th>Default Method</th>
13
- <th>Actions</th>
14
- </tr>
6
+ <tr>
7
+ <th>Plugin</th>
8
+ <th>External id</th>
9
+ <th>Plugin info</th>
10
+ <th>Default Method</th>
11
+ <th>Actions</th>
12
+ </tr>
15
13
  </thead>
16
14
  <tbody>
17
- <% if payment_methods.present? && !payment_methods.nil? %>
15
+ <% if payment_methods.present? && !payment_methods.nil? %>
18
16
  <% payment_methods.each do |payment_method| %>
19
- <tr>
20
- <td><%= payment_method.type %></a></td>
21
- <td><%= payment_method.card_type %></a></td>
22
- <td><%= payment_method.card_holder_name %><%= payment_method.email %></a></td>
23
- <td><%= payment_method.mask_number %><%= payment_method.baid %></td>
24
- <td><%= payment_method.expiration_dt %></td>
25
- <td>
26
- <% if payment_method.is_default %>
27
- <i class="icon-ok"></i>
28
- <% else %>
29
- <%= link_to "Make Default", kaui_engine.set_default_payment_method_account_path(payment_method.account_id, :params => { :payment_method_id => payment_method.payment_method_id }), :method => :put, :confirm => "Are you sure you want to make this payment method default?", :class => "btn btn-mini" %>
30
- <% end %>
31
- </td>
32
- <td>
33
- <% if payment_method.is_default %>
34
- <%= link_to "Delete", kaui_engine.payment_method_path(payment_method.payment_method_id, :params => { :set_auto_pay_off => "true" }), :method => :delete, :confirm => "Are you sure you want to delete this payment method?", :class => "btn btn-mini" %>
35
- <% else %>
36
- <%= link_to "Delete", kaui_engine.payment_method_path(payment_method.payment_method_id), :method => :delete, :confirm => "Are you sure you want to delete this payment method?", :class => "btn btn-mini" %>
37
- <% end %>
38
- </td>
39
- </tr>
17
+ <tr>
18
+ <td><%= payment_method.plugin_name %></a></td>
19
+ <td>
20
+ <%= payment_method.plugin_info.external_payment_id unless payment_method.plugin_info.blank? %>
21
+ </td>
22
+ <td>
23
+ <% unless payment_method.plugin_info.blank? and payment_method.plugin_info.properties.blank? %>
24
+ <ul>
25
+ <% payment_method.plugin_info.properties.each do |property| %>
26
+ <li><%= property.key %>: <%= property.value %></li>
27
+ <% end %>
28
+ </ul>
29
+ <% end %>
30
+ </td>
31
+ <td>
32
+ <% if payment_method.is_default %>
33
+ <i class="icon-ok"></i>
34
+ <% else %>
35
+ <%= link_to "Make Default", kaui_engine.set_default_payment_method_account_path(payment_method.account_id, :params => {:payment_method_id => payment_method.payment_method_id}), :method => :put, :confirm => "Are you sure you want to make this payment method default?", :class => "btn btn-mini" %>
36
+ <% end %>
37
+ </td>
38
+ <td>
39
+ <% if payment_method.is_default %>
40
+ <%= link_to "Delete", kaui_engine.payment_method_path(payment_method.payment_method_id, :params => {:set_auto_pay_off => "true"}), :method => :delete, :confirm => "Are you sure you want to delete this payment method?", :class => "btn btn-mini" %>
41
+ <% else %>
42
+ <%= link_to "Delete", kaui_engine.payment_method_path(payment_method.payment_method_id), :method => :delete, :confirm => "Are you sure you want to delete this payment method?", :class => "btn btn-mini" %>
43
+ <% end %>
44
+ </td>
45
+ </tr>
40
46
  <% end %>
41
- <% end %>
47
+ <% end %>
42
48
  </tbody>
43
- </table>
49
+ </table>
@@ -1,14 +1,15 @@
1
1
  <%= form_tag payment_methods_path, :class => "form-horizontal", :method => :get do %>
2
- <fieldset>
3
- <legend>Please enter account id</legend>
4
- <div class="control-group">
5
- <label class="control-label" for="account_id">Account</label>
6
- <div class="controls">
7
- <%= text_field_tag 'account_id', nil, :class => "input-xlarge", :id => "account_id" %>
2
+ <fieldset>
3
+ <legend>Please enter account id</legend>
4
+ <div class="control-group">
5
+ <label class="control-label" for="account_id">Account</label>
6
+
7
+ <div class="controls">
8
+ <%= text_field_tag 'account_id', nil, :class => "input-xlarge", :id => "account_id" %>
9
+ </div>
8
10
  </div>
9
- </div>
10
- <div class="form-actions">
11
- <%= button_tag "Search", :class =>"btn btn-primary" %>
12
- </div>
13
- </fieldset>
11
+ <div class="form-actions">
12
+ <%= button_tag "Search", :class => "btn btn-primary" %>
13
+ </div>
14
+ </fieldset>
14
15
  <% end %>
@@ -1 +1 @@
1
- <%= render :partial => 'payment_methods_table' %>
1
+ <%= render :partial => 'payment_methods_table', :locals => {:payment_methods => @payment_methods} %>
@@ -22,7 +22,7 @@
22
22
  <td><%= format_date(payment.effective_date, @account.timezone).html_safe if payment.effective_date.present? %></td>
23
23
  <td><%= humanized_money_with_symbol payment.amount_to_money %> (<%= payment.currency %>)</td>
24
24
  <td><%= humanized_money_with_symbol payment.paid_amount_to_money %> (<%= payment.currency %>)</td>
25
- <td><%= "#{@payment_methods[payment.payment_id].type} #{@payment_methods[payment.payment_id].card_type} #{@payment_methods[payment.payment_id].mask_number}" if @payment_methods.present? and @payment_methods[payment.payment_id].present? %></td>
25
+ <td><%= "#{@payment_methods[payment.payment_id].plugin_info.type} #{@payment_methods[payment.payment_id].plugin_info.cc_type} #{@payment_methods[payment.payment_id].plugin_info.cc_last4}" if @payment_methods.present? and @payment_methods[payment.payment_id].present? and @payment_methods[payment.payment_id].plugin_info.present? %></td>
26
26
  <td><%= payment.ext_first_payment_id_ref %> <%= " / " if payment.ext_second_payment_id_ref.present? %> <%= payment.ext_second_payment_id_ref %></td>
27
27
  <td><%= payment.retry_count %></td>
28
28
  <td><%= payment.status %> <%= payment.gateway_error_code unless payment.status == 'SUCCESS' %> <%= payment.gateway_error_msg %></td>
data/config/routes.rb CHANGED
@@ -37,7 +37,7 @@ Kaui::Engine.routes.draw do
37
37
 
38
38
  resources :payments, :only => [ :create, :new, :index, :show ]
39
39
 
40
- resources :payment_methods, :only => [ :show, :destroy ]
40
+ resources :payment_methods, :only => [ :index, :show, :destroy ]
41
41
 
42
42
  resources :refunds, :only => [ :index, :show, :create, :new ]
43
43
 
data/kaui.gemspec CHANGED
@@ -1,27 +1,39 @@
1
- $:.push File.expand_path("../lib", __FILE__)
1
+ $LOAD_PATH.unshift File.expand_path('../lib', __FILE__)
2
2
 
3
- # Maintain your gem's version:
4
- require "kaui/version"
3
+ require 'kaui/version'
5
4
 
6
- # Describe your gem and declare its dependencies:
7
5
  Gem::Specification.new do |s|
8
- s.name = "kaui"
9
- s.version = Kaui::VERSION
10
- s.authors = ["Alena Dudzinskaya"]
11
- s.email = ["alenad@glam.com"]
12
- s.homepage = "https://github.com/killbill/killbill-admin-ui"
13
- s.summary = "Killbill Admin UI plugin"
14
- s.description = "Rails UI plugin for Killbill administration."
15
-
16
- s.files = `git ls-files`.split("\n")
17
- s.test_files = `git ls-files -- {test,spec,features}/*`.split("\n")
18
- s.bindir = 'bin'
19
- s.executables = `git ls-files -- bin/*`.split("\n").map{ |f| File.basename(f) }
20
- s.require_paths = ["lib"]
6
+ s.name = 'kaui'
7
+ s.version = Kaui::VERSION
8
+ s.summary = 'Killbill Admin UI plugin'
9
+ s.description = 'Rails UI plugin for Killbill administration.'
10
+
11
+ s.required_ruby_version = '>= 1.8.7'
12
+
13
+ s.license = 'Apache License (2.0)'
14
+
15
+ s.author = 'Killbill core team'
16
+ s.email = 'killbilling-users@googlegroups.com'
17
+ s.homepage = 'http://www.killbilling.org'
18
+
19
+ s.files = `git ls-files`.split("\n")
20
+ s.test_files = `git ls-files -- {test,spec,features}/*`.split("\n")
21
+ s.bindir = 'bin'
22
+ s.executables = `git ls-files -- bin/*`.split("\n").map { |f| File.basename(f) }
23
+ s.require_paths = %w(lib)
21
24
 
22
25
  s.add_dependency 'rails', '~> 3.2.3'
23
26
  s.add_dependency 'jquery-rails', '~> 2.0'
24
27
  s.add_dependency 'rest-client', '~> 1.6.7'
25
28
  s.add_dependency 'money-rails', '~> 0.5.0'
26
29
  s.add_dependency 'd3_rails', '~> 2.10.3'
30
+ s.add_dependency 'killbill-client', '~> 0.1.1'
31
+
32
+ if defined?(JRUBY_VERSION)
33
+ s.add_development_dependency 'activerecord-jdbc-adapter', '~> 1.2.2'
34
+ s.add_development_dependency 'activerecord-jdbcmysql-adapter', '~> 1.2.2'
35
+ #s.add_development_dependency 'jdbc-mysql', :require => false
36
+ else
37
+ s.add_development_dependency 'mysql2'
38
+ end
27
39
  end
data/lib/kaui/engine.rb CHANGED
@@ -9,6 +9,7 @@ require 'd3_rails'
9
9
  require 'json'
10
10
  require 'money-rails'
11
11
  require 'rest_client'
12
+ require 'killbill_client'
12
13
 
13
14
  module Kaui
14
15
  class Engine < ::Rails::Engine
@@ -1,10 +1,10 @@
1
- require 'rest_client'
2
-
3
1
  module Kaui
4
2
  module ErrorHelper
5
3
  def as_string(e)
6
4
  if e.is_a?(RestClient::Exception)
7
5
  "#{e.message} #{e.response}".split(/\n/).take(5).join("\n")
6
+ elsif e.is_a?(KillBillClient::API::ResponseError)
7
+ "Error #{e.response.code}: #{e.response.message}"
8
8
  else
9
9
  e.message
10
10
  end
data/lib/kaui/version.rb CHANGED
@@ -1,3 +1,3 @@
1
1
  module Kaui
2
- VERSION = "0.2.2"
2
+ VERSION = "0.2.3"
3
3
  end
data/lib/kaui.rb CHANGED
@@ -19,7 +19,7 @@ module Kaui
19
19
  self.bundle_home_path = lambda {|bundle_id| Kaui::Engine.routes.url_helpers.bundle_path(:id => bundle_id) }
20
20
  self.invoice_home_path = lambda {|invoice_id| Kaui::Engine.routes.url_helpers.invoice_path(:id => invoice_id) }
21
21
  self.bundle_key_display_string = lambda {|bundle_key| bundle_key }
22
- self.creditcard_plugin_name = lambda { nil }
22
+ self.creditcard_plugin_name = lambda { '__EXTERNAL_PAYMENT__' }
23
23
 
24
24
  def self.config(&block)
25
25
  # TODO
metadata CHANGED
@@ -1,15 +1,15 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: kaui
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.2.2
4
+ version: 0.2.3
5
5
  prerelease:
6
6
  platform: ruby
7
7
  authors:
8
- - Alena Dudzinskaya
8
+ - Killbill core team
9
9
  autorequire:
10
10
  bindir: bin
11
11
  cert_chain: []
12
- date: 2013-02-21 00:00:00.000000000 Z
12
+ date: 2013-06-05 00:00:00.000000000 Z
13
13
  dependencies:
14
14
  - !ruby/object:Gem::Dependency
15
15
  name: rails
@@ -91,9 +91,40 @@ dependencies:
91
91
  - - ~>
92
92
  - !ruby/object:Gem::Version
93
93
  version: 2.10.3
94
+ - !ruby/object:Gem::Dependency
95
+ name: killbill-client
96
+ requirement: !ruby/object:Gem::Requirement
97
+ none: false
98
+ requirements:
99
+ - - ~>
100
+ - !ruby/object:Gem::Version
101
+ version: 0.1.1
102
+ type: :runtime
103
+ prerelease: false
104
+ version_requirements: !ruby/object:Gem::Requirement
105
+ none: false
106
+ requirements:
107
+ - - ~>
108
+ - !ruby/object:Gem::Version
109
+ version: 0.1.1
110
+ - !ruby/object:Gem::Dependency
111
+ name: mysql2
112
+ requirement: !ruby/object:Gem::Requirement
113
+ none: false
114
+ requirements:
115
+ - - ! '>='
116
+ - !ruby/object:Gem::Version
117
+ version: '0'
118
+ type: :development
119
+ prerelease: false
120
+ version_requirements: !ruby/object:Gem::Requirement
121
+ none: false
122
+ requirements:
123
+ - - ! '>='
124
+ - !ruby/object:Gem::Version
125
+ version: '0'
94
126
  description: Rails UI plugin for Killbill administration.
95
- email:
96
- - alenad@glam.com
127
+ email: killbilling-users@googlegroups.com
97
128
  executables:
98
129
  - kaui
99
130
  extensions: []
@@ -162,9 +193,6 @@ files:
162
193
  - app/models/kaui/overdue_state.rb
163
194
  - app/models/kaui/payment.rb
164
195
  - app/models/kaui/payment_attempt.rb
165
- - app/models/kaui/payment_method.rb
166
- - app/models/kaui/plugin_info.rb
167
- - app/models/kaui/plugin_info_property.rb
168
196
  - app/models/kaui/product.rb
169
197
  - app/models/kaui/refund.rb
170
198
  - app/models/kaui/subscription.rb
@@ -309,7 +337,6 @@ files:
309
337
  - test/unit/helpers/kaui/home_helper_test.rb
310
338
  - test/unit/helpers/kaui/invoices_helper_test.rb
311
339
  - test/unit/helpers/kaui/payments_helper_test.rb
312
- - test/unit/helpers/kaui/plugin_infos_helper_test.rb
313
340
  - test/unit/helpers/kaui/refunds_helper_test.rb
314
341
  - test/unit/kaui/account_test.rb
315
342
  - test/unit/kaui/base_test.rb
@@ -317,9 +344,6 @@ files:
317
344
  - test/unit/kaui/invoice_item_test.rb
318
345
  - test/unit/kaui/invoice_test.rb
319
346
  - test/unit/kaui/overdue_state_test.rb
320
- - test/unit/kaui/payment_method_test.rb
321
- - test/unit/kaui/plugin_info_property_test.rb
322
- - test/unit/kaui/plugin_info_test.rb
323
347
  - test/unit/kaui/refund_test.rb
324
348
  - test/unit/kaui/tag_definition_test.rb
325
349
  - test/unit/model_test.rb
@@ -330,8 +354,9 @@ files:
330
354
  - vendor/assets/javascripts/js/jquery.dataTables.v1.9.3.min.js
331
355
  - vendor/assets/stylesheets/css/bootstrap-datepicker.cd46d38.css
332
356
  - vendor/assets/stylesheets/css/bootstrap.v2.2.1.min.css
333
- homepage: https://github.com/killbill/killbill-admin-ui
334
- licenses: []
357
+ homepage: http://www.killbilling.org
358
+ licenses:
359
+ - Apache License (2.0)
335
360
  post_install_message:
336
361
  rdoc_options: []
337
362
  require_paths:
@@ -341,16 +366,16 @@ required_ruby_version: !ruby/object:Gem::Requirement
341
366
  requirements:
342
367
  - - ! '>='
343
368
  - !ruby/object:Gem::Version
344
- version: '0'
345
- segments:
346
- - 0
347
- hash: 451527317018567128
369
+ version: 1.8.7
348
370
  required_rubygems_version: !ruby/object:Gem::Requirement
349
371
  none: false
350
372
  requirements:
351
373
  - - ! '>='
352
374
  - !ruby/object:Gem::Version
353
375
  version: '0'
376
+ segments:
377
+ - 0
378
+ hash: 3422084026111820071
354
379
  requirements: []
355
380
  rubyforge_project:
356
381
  rubygems_version: 1.8.24
@@ -422,7 +447,6 @@ test_files:
422
447
  - test/unit/helpers/kaui/home_helper_test.rb
423
448
  - test/unit/helpers/kaui/invoices_helper_test.rb
424
449
  - test/unit/helpers/kaui/payments_helper_test.rb
425
- - test/unit/helpers/kaui/plugin_infos_helper_test.rb
426
450
  - test/unit/helpers/kaui/refunds_helper_test.rb
427
451
  - test/unit/kaui/account_test.rb
428
452
  - test/unit/kaui/base_test.rb
@@ -430,9 +454,6 @@ test_files:
430
454
  - test/unit/kaui/invoice_item_test.rb
431
455
  - test/unit/kaui/invoice_test.rb
432
456
  - test/unit/kaui/overdue_state_test.rb
433
- - test/unit/kaui/payment_method_test.rb
434
- - test/unit/kaui/plugin_info_property_test.rb
435
- - test/unit/kaui/plugin_info_test.rb
436
457
  - test/unit/kaui/refund_test.rb
437
458
  - test/unit/kaui/tag_definition_test.rb
438
459
  - test/unit/model_test.rb
@@ -1,36 +0,0 @@
1
- class Kaui::PaymentMethod < Kaui::Base
2
- define_attr :account_id
3
- define_attr :is_default
4
- define_attr :payment_method_id
5
- define_attr :plugin_name
6
-
7
- has_one :plugin_info, Kaui::PluginInfo
8
-
9
- def card_type
10
- plugin_info.property("cardType") if plugin_info.present?
11
- end
12
-
13
- def type
14
- plugin_info.property("type") if plugin_info.present?
15
- end
16
-
17
- def mask_number
18
- plugin_info.property("maskNumber") if plugin_info.present?
19
- end
20
-
21
- def card_holder_name
22
- plugin_info.property("cardHolderName") if plugin_info.present?
23
- end
24
-
25
- def expiration_dt
26
- plugin_info.property("expirationDate") if plugin_info.present?
27
- end
28
-
29
- def baid
30
- plugin_info.property("baid") if plugin_info.present?
31
- end
32
-
33
- def email
34
- plugin_info.property("email") if plugin_info.present?
35
- end
36
- end
@@ -1,10 +0,0 @@
1
- class Kaui::PluginInfo < Kaui::Base
2
- define_attr :external_payment_id
3
-
4
- has_many :properties, Kaui::PluginInfoProperty
5
-
6
- def property(key)
7
- prop = properties.find { |prop| prop.key == key } unless properties.nil?
8
- prop.value unless prop.nil?
9
- end
10
- end
@@ -1,5 +0,0 @@
1
- class Kaui::PluginInfoProperty < Kaui::Base
2
- define_attr :key
3
- define_attr :value
4
- define_attr :is_updatable
5
- end
@@ -1,20 +0,0 @@
1
- require 'test_helper'
2
-
3
- module Kaui::PluginInfosHelperTest
4
- @@plugin_info_keys = [:accountId, :type, :cardHolderName, :cardType, :expirationDate, :maskNumber,
5
- :address1, :address2, :city, :postalCode, :state, :country]
6
-
7
- def plugin_info_properies
8
- properties = []
9
- @@plugin_info_keys.each do |key|
10
- as_json = plugin_info_properties("plugin_info_property_#{key.to_s}".to_sym)
11
- properties << Kaui::PluginInfoProperty.new(as_json).to_hash
12
- end
13
- properties
14
- end
15
-
16
- def create_plugin_info(plugin_info_json)
17
- plugin_info_json["properties"] = plugin_info_properies
18
- Kaui::PluginInfo.new(plugin_info_json)
19
- end
20
- end
@@ -1,26 +0,0 @@
1
- require 'test_helper'
2
-
3
- class Kaui::PaymentMethodTest < ActiveSupport::TestCase
4
- fixtures :payment_methods, :plugin_infos, :plugin_info_properties
5
-
6
- include Kaui::PluginInfosHelperTest
7
-
8
- test "can serialize from json" do
9
- as_json = plugin_infos(:plugin_info_for_pierre)
10
- plugin_info = create_plugin_info(as_json)
11
-
12
- as_json = payment_methods(:payment_method_for_pierre)
13
- as_json["pluginInfo"] = plugin_info
14
- payment_method = Kaui::PaymentMethod.new(as_json)
15
-
16
- assert_equal as_json["accountId"], payment_method.account_id
17
- assert_equal as_json["isDefault"], payment_method.is_default
18
- assert_equal as_json["paymentMethodId"], payment_method.payment_method_id
19
- assert_equal as_json["pluginName"], payment_method.plugin_name
20
- @@plugin_info_keys.each_with_index do |key, i|
21
- assert_equal plugin_info_properies[i]["key"], payment_method.plugin_info.properties[i].key
22
- assert_equal plugin_info_properies[i]["value"], payment_method.plugin_info.properties[i].value
23
- assert_equal plugin_info_properies[i]["is_updatable"], payment_method.plugin_info.properties[i].is_updatable
24
- end
25
- end
26
- end
@@ -1,20 +0,0 @@
1
- require 'test_helper'
2
-
3
- class Kaui::PluginInfoPropertyTest < ActiveSupport::TestCase
4
- fixtures :plugin_info_properties
5
-
6
- keys = [:accountId, :type, :cardHolderName, :cardType, :expirationDate, :maskNumber,
7
- :address1, :address2, :city, :postalCode, :state, :country]
8
-
9
- test "can serialize from json" do
10
- keys.each do |key|
11
- as_json = plugin_info_properties("plugin_info_property_#{key.to_s}".to_sym)
12
- plugin_info_property = Kaui::PluginInfoProperty.new(as_json)
13
-
14
- assert_equal as_json["isUpdatable"], plugin_info_property.is_updatable
15
- assert_equal as_json["key"], plugin_info_property.key
16
- assert_equal key.to_s, plugin_info_property.key
17
- assert_equal as_json["value"], plugin_info_property.value
18
- end
19
- end
20
- end
@@ -1,19 +0,0 @@
1
- require 'test_helper'
2
-
3
- class Kaui::PluginInfoTest < ActiveSupport::TestCase
4
- fixtures :plugin_infos, :plugin_info_properties
5
-
6
- include Kaui::PluginInfosHelperTest
7
-
8
- test "can serialize from json" do
9
- as_json = plugin_infos(:plugin_info_for_pierre)
10
- plugin_info = create_plugin_info(as_json)
11
-
12
- assert_equal as_json["externalPaymentId"], plugin_info.external_payment_id
13
- @@plugin_info_keys.each_with_index do |key, i|
14
- assert_equal plugin_info_properies[i]["key"], plugin_info.properties[i].key
15
- assert_equal plugin_info_properies[i]["value"], plugin_info.properties[i].value
16
- assert_equal plugin_info_properies[i]["is_updatable"], plugin_info.properties[i].is_updatable
17
- end
18
- end
19
- end