kaui 0.2.2 → 0.2.3

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.
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