kaui 2.0.4 → 2.2.1

Sign up to get free protection for your applications and to get access to all the features.
Files changed (276) hide show
  1. checksums.yaml +5 -5
  2. data/README.md +8 -23
  3. data/Rakefile +4 -2
  4. data/app/assets/config/kaui_manifest.js +45 -0
  5. data/app/assets/javascripts/jquery.spin.js +76 -0
  6. data/app/assets/javascripts/kaui/kaui.js +76 -0
  7. data/app/assets/javascripts/kaui_application.js +25 -0
  8. data/app/assets/javascripts/spin.js +76 -0
  9. data/app/assets/stylesheets/bootstrap_and_overrides.scss +240 -0
  10. data/app/assets/stylesheets/kaui/{account.less → account.scss} +13 -1
  11. data/app/assets/stylesheets/kaui/{audit.less → audit.scss} +5 -1
  12. data/app/assets/stylesheets/kaui/{common.less → common.scss} +19 -17
  13. data/app/assets/stylesheets/kaui/{datatable.less → datatable.scss} +6 -3
  14. data/app/assets/stylesheets/kaui/{header.less → header.scss} +16 -12
  15. data/app/assets/stylesheets/kaui/{home.less → home.scss} +7 -4
  16. data/app/assets/stylesheets/kaui/{invoice.less → invoice.scss} +7 -3
  17. data/app/assets/stylesheets/kaui/kaui.scss +265 -0
  18. data/app/assets/stylesheets/kaui/kaui_bootstrap.scss +3 -0
  19. data/app/assets/stylesheets/kaui/{overdue.less → overdue.scss} +3 -1
  20. data/app/assets/stylesheets/kaui/{payment.less → payment.scss} +3 -0
  21. data/app/assets/stylesheets/kaui/{subscription.less → subscription.scss} +4 -1
  22. data/app/assets/stylesheets/kaui/{tags.less → tags.scss} +9 -5
  23. data/app/assets/stylesheets/kaui/timeline.scss +7 -0
  24. data/app/assets/stylesheets/kaui/tooltip.scss +15 -0
  25. data/app/controllers/kaui/account_children_controller.rb +25 -28
  26. data/app/controllers/kaui/account_custom_fields_controller.rb +16 -15
  27. data/app/controllers/kaui/account_emails_controller.rb +28 -25
  28. data/app/controllers/kaui/account_tags_controller.rb +37 -34
  29. data/app/controllers/kaui/account_timelines_controller.rb +38 -33
  30. data/app/controllers/kaui/accounts_controller.rb +269 -255
  31. data/app/controllers/kaui/admin_allowed_users_controller.rb +105 -99
  32. data/app/controllers/kaui/admin_controller.rb +32 -31
  33. data/app/controllers/kaui/admin_tenants_controller.rb +434 -388
  34. data/app/controllers/kaui/audit_logs_controller.rb +87 -84
  35. data/app/controllers/kaui/bundle_tags_controller.rb +24 -20
  36. data/app/controllers/kaui/bundles_controller.rb +96 -82
  37. data/app/controllers/kaui/chargebacks_controller.rb +36 -33
  38. data/app/controllers/kaui/charges_controller.rb +23 -20
  39. data/app/controllers/kaui/credits_controller.rb +28 -25
  40. data/app/controllers/kaui/custom_fields_controller.rb +172 -38
  41. data/app/controllers/kaui/engine_controller.rb +2 -1
  42. data/app/controllers/kaui/engine_controller_util.rb +134 -114
  43. data/app/controllers/kaui/home_controller.rb +230 -217
  44. data/app/controllers/kaui/invoice_items_controller.rb +43 -39
  45. data/app/controllers/kaui/invoice_tags_controller.rb +32 -0
  46. data/app/controllers/kaui/invoices_controller.rb +134 -88
  47. data/app/controllers/kaui/login_proxy_controller.rb +2 -1
  48. data/app/controllers/kaui/payment_methods_controller.rb +103 -90
  49. data/app/controllers/kaui/payments_controller.rb +95 -92
  50. data/app/controllers/kaui/queues_controller.rb +47 -14
  51. data/app/controllers/kaui/refunds_controller.rb +36 -33
  52. data/app/controllers/kaui/registrations_controller.rb +7 -7
  53. data/app/controllers/kaui/role_definitions_controller.rb +17 -14
  54. data/app/controllers/kaui/sessions_controller.rb +7 -4
  55. data/app/controllers/kaui/subscriptions_controller.rb +197 -187
  56. data/app/controllers/kaui/tag_definitions_controller.rb +28 -27
  57. data/app/controllers/kaui/tags_controller.rb +25 -22
  58. data/app/controllers/kaui/tenants_controller.rb +30 -28
  59. data/app/controllers/kaui/transactions_controller.rb +43 -38
  60. data/app/helpers/kaui/account_helper.rb +22 -12
  61. data/app/helpers/kaui/application_helper.rb +8 -3
  62. data/app/helpers/kaui/date_helper.rb +3 -2
  63. data/app/helpers/kaui/home_helper.rb +2 -0
  64. data/app/helpers/kaui/locale_helper.rb +7 -6
  65. data/app/helpers/kaui/money_helper.rb +2 -1
  66. data/app/helpers/kaui/object_helper.rb +11 -10
  67. data/app/helpers/kaui/payment_helper.rb +7 -6
  68. data/app/helpers/kaui/payment_method_helper.rb +3 -2
  69. data/app/helpers/kaui/permissions_helper.rb +9 -9
  70. data/app/helpers/kaui/plugin_helper.rb +25 -23
  71. data/app/helpers/kaui/subscription_helper.rb +27 -29
  72. data/app/helpers/kaui/us_states_helper.rb +7 -6
  73. data/app/helpers/kaui/uuid_helper.rb +8 -5
  74. data/app/models/kaui/ability.rb +19 -12
  75. data/app/models/kaui/account.rb +45 -28
  76. data/app/models/kaui/account_email.rb +23 -20
  77. data/app/models/kaui/account_timeline.rb +5 -1
  78. data/app/models/kaui/admin.rb +65 -64
  79. data/app/models/kaui/admin_tenant.rb +81 -82
  80. data/app/models/kaui/allowed_user.rb +13 -9
  81. data/app/models/kaui/allowed_user_tenant.rb +4 -2
  82. data/app/models/kaui/application_record.rb +2 -0
  83. data/app/models/kaui/audit_log.rb +6 -3
  84. data/app/models/kaui/base.rb +13 -7
  85. data/app/models/kaui/bundle.rb +41 -24
  86. data/app/models/kaui/catalog.rb +118 -113
  87. data/app/models/kaui/chargeback.rb +5 -1
  88. data/app/models/kaui/credit.rb +4 -1
  89. data/app/models/kaui/custom_field.rb +9 -6
  90. data/app/models/kaui/invoice.rb +25 -22
  91. data/app/models/kaui/invoice_item.rb +9 -6
  92. data/app/models/kaui/invoice_payment.rb +49 -54
  93. data/app/models/kaui/killbill_authenticatable.rb +14 -8
  94. data/app/models/kaui/killbill_registerable.rb +7 -0
  95. data/app/models/kaui/overdue.rb +64 -65
  96. data/app/models/kaui/payment.rb +22 -19
  97. data/app/models/kaui/payment_method.rb +48 -39
  98. data/app/models/kaui/payment_state.rb +41 -38
  99. data/app/models/kaui/rails_methods.rb +9 -9
  100. data/app/models/kaui/refund.rb +7 -1
  101. data/app/models/kaui/role_definition.rb +5 -1
  102. data/app/models/kaui/simple_plan.rb +5 -3
  103. data/app/models/kaui/subscription.rb +10 -7
  104. data/app/models/kaui/tag.rb +25 -22
  105. data/app/models/kaui/tag_definition.rb +50 -45
  106. data/app/models/kaui/tenant.rb +6 -5
  107. data/app/models/kaui/transaction.rb +43 -31
  108. data/app/models/kaui/user.rb +10 -16
  109. data/app/models/kaui/user_role.rb +8 -5
  110. data/app/views/kaui/accounts/_billing_info.html.erb +5 -1
  111. data/app/views/kaui/accounts/_form.html.erb +2 -2
  112. data/app/views/kaui/accounts/_payment_methods.html.erb +3 -0
  113. data/app/views/kaui/accounts/index.html.erb +9 -4
  114. data/app/views/kaui/admin_allowed_users/_form.html.erb +3 -3
  115. data/app/views/kaui/admin_tenants/_form_catalog_translation.erb +1 -1
  116. data/app/views/kaui/admin_tenants/_form_invoice_template.erb +1 -1
  117. data/app/views/kaui/admin_tenants/_form_invoice_translation.erb +1 -1
  118. data/app/views/kaui/admin_tenants/_form_plugin_config.erb +13 -3
  119. data/app/views/kaui/admin_tenants/_show_catalog_simple.erb +11 -5
  120. data/app/views/kaui/admin_tenants/new_catalog.html.erb +2 -2
  121. data/app/views/kaui/admin_tenants/new_overdue_config.html.erb +2 -2
  122. data/app/views/kaui/admin_tenants/new_plan_currency.html.erb +1 -1
  123. data/app/views/kaui/bundles/_bundle_details.html.erb +12 -0
  124. data/app/views/kaui/bundles/index.html.erb +3 -14
  125. data/app/views/kaui/bundles/transfer.html.erb +13 -5
  126. data/app/views/kaui/invoice_tags/_form.html.erb +33 -0
  127. data/app/views/kaui/invoice_tags/_form_bar.html.erb +21 -0
  128. data/app/views/kaui/invoice_tags/edit.html.erb +10 -0
  129. data/app/views/kaui/invoices/_invoice_table.html.erb +29 -8
  130. data/app/views/kaui/invoices/index.html.erb +6 -4
  131. data/app/views/kaui/invoices/show.html.erb +10 -1
  132. data/app/views/kaui/layouts/kaui_flash.html.erb +32 -1
  133. data/app/views/kaui/layouts/kaui_header.html.erb +19 -2
  134. data/app/views/kaui/payment_methods/_payment_methods_details_table.html.erb +13 -4
  135. data/app/views/kaui/payments/_payment_table.html.erb +21 -11
  136. data/app/views/kaui/payments/index.html.erb +12 -10
  137. data/app/views/kaui/queues/index.html.erb +1 -1
  138. data/app/views/kaui/subscriptions/_cancel_by_date_modal.html.erb +1 -4
  139. data/app/views/kaui/subscriptions/_edit_form.html.erb +1 -1
  140. data/app/views/kaui/subscriptions/_form.html.erb +1 -1
  141. data/app/views/kaui/subscriptions/_subscriptions_table.html.erb +3 -3
  142. data/app/views/kaui/subscriptions/edit_bcd.erb +1 -1
  143. data/app/views/kaui/tag_definitions/index.html.erb +2 -2
  144. data/app/views/kaui/tags/index.html.erb +1 -0
  145. data/config/initializers/bootstrap_datepicker_rails.rb +3 -0
  146. data/config/initializers/devise.rb +8 -6
  147. data/config/initializers/js_routes.rb +9 -0
  148. data/config/initializers/kilbill_client_init.rb +13 -0
  149. data/config/initializers/killbill_authenticatable.rb +71 -21
  150. data/config/initializers/killbill_registerable.rb +5 -3
  151. data/config/initializers/time_formats.rb +6 -4
  152. data/config/locales/en.yml +78 -1
  153. data/config/routes.rb +40 -32
  154. data/db/migrate/20130812155313_devise_create_kaui_users.rb +10 -8
  155. data/db/migrate/20150109214021_create_kaui_tenants.rb +10 -8
  156. data/db/migrate/20150112232813_create_kaui_allowed_users.rb +10 -8
  157. data/lib/generators/kaui/install/install_generator.rb +23 -20
  158. data/lib/generators/kaui/install/templates/config/initializers/kaui.rb +3 -1
  159. data/lib/kaui/engine.rb +17 -5
  160. data/lib/kaui/installer/installer.rb +27 -26
  161. data/lib/kaui/version.rb +3 -1
  162. data/lib/kaui.rb +74 -30
  163. data/lib/tasks/kaui_tasks.rake +1 -0
  164. metadata +145 -440
  165. data/app/assets/javascripts/application.js +0 -17
  166. data/app/assets/javascripts/kaui/bootstrap-tweaks.js +0 -172
  167. data/app/assets/stylesheets/bootstrap_and_overrides.css.less +0 -44
  168. data/app/assets/stylesheets/kaui/kaui.less +0 -21
  169. data/app/assets/stylesheets/kaui/timeline.less +0 -4
  170. data/config/initializers/asset.rb +0 -1
  171. data/config/initializers/kilbill-client-init.rb +0 -9
  172. data/db/schema.rb +0 -15
  173. data/test/dummy/README.rdoc +0 -261
  174. data/test/dummy/Rakefile +0 -7
  175. data/test/dummy/app/controllers/application_controller.rb +0 -9
  176. data/test/dummy/app/helpers/application_helper.rb +0 -2
  177. data/test/dummy/bin/bundle +0 -3
  178. data/test/dummy/bin/rails +0 -4
  179. data/test/dummy/bin/rake +0 -4
  180. data/test/dummy/bin/setup +0 -38
  181. data/test/dummy/bin/update +0 -29
  182. data/test/dummy/bin/yarn +0 -11
  183. data/test/dummy/config/application.rb +0 -18
  184. data/test/dummy/config/boot.rb +0 -3
  185. data/test/dummy/config/database.yml +0 -27
  186. data/test/dummy/config/environment.rb +0 -5
  187. data/test/dummy/config/environments/development.rb +0 -58
  188. data/test/dummy/config/environments/production.rb +0 -91
  189. data/test/dummy/config/environments/test.rb +0 -49
  190. data/test/dummy/config/initializers/application_controller_renderer.rb +0 -6
  191. data/test/dummy/config/initializers/assets.rb +0 -14
  192. data/test/dummy/config/initializers/backtrace_silencers.rb +0 -7
  193. data/test/dummy/config/initializers/cookies_serializer.rb +0 -5
  194. data/test/dummy/config/initializers/filter_parameter_logging.rb +0 -4
  195. data/test/dummy/config/initializers/inflections.rb +0 -16
  196. data/test/dummy/config/initializers/killbill_client.rb +0 -1
  197. data/test/dummy/config/initializers/mime_types.rb +0 -4
  198. data/test/dummy/config/initializers/new_framework_defaults_5_1.rb +0 -14
  199. data/test/dummy/config/initializers/secret_token.rb +0 -7
  200. data/test/dummy/config/initializers/session_store.rb +0 -8
  201. data/test/dummy/config/initializers/wrap_parameters.rb +0 -14
  202. data/test/dummy/config/locales/en.yml +0 -33
  203. data/test/dummy/config/routes.rb +0 -3
  204. data/test/dummy/config/secrets.yml +0 -32
  205. data/test/dummy/config/symmetric-encryption.yml +0 -135
  206. data/test/dummy/config.ru +0 -4
  207. data/test/dummy/db/schema.rb +0 -52
  208. data/test/dummy/public/404.html +0 -26
  209. data/test/dummy/public/422.html +0 -26
  210. data/test/dummy/public/500.html +0 -25
  211. data/test/dummy/public/favicon.ico +0 -0
  212. data/test/dummy/script/rails +0 -6
  213. data/test/fixtures/SpyCarAdvanced.xml +0 -824
  214. data/test/fixtures/catalog-v1.xml +0 -73
  215. data/test/fixtures/catalog_translation_fr-v1.properties +0 -1
  216. data/test/fixtures/invoice_template-v1.html +0 -100
  217. data/test/fixtures/invoice_translation_fr-v1.properties +0 -23
  218. data/test/fixtures/overdue-v1.xml +0 -49
  219. data/test/fixtures/stripe.yml +0 -2
  220. data/test/functional/kaui/account_children_controller_test.rb +0 -32
  221. data/test/functional/kaui/account_custom_fields_controller_test.rb +0 -29
  222. data/test/functional/kaui/account_emails_controller_test.rb +0 -55
  223. data/test/functional/kaui/account_tags_controller_test.rb +0 -48
  224. data/test/functional/kaui/account_timelines_controller_test.rb +0 -20
  225. data/test/functional/kaui/accounts_controller_test.rb +0 -297
  226. data/test/functional/kaui/admin_allowed_users_controller_test.rb +0 -234
  227. data/test/functional/kaui/admin_controller_test.rb +0 -45
  228. data/test/functional/kaui/admin_tenants_controller_test.rb +0 -352
  229. data/test/functional/kaui/audit_logs_controller_test.rb +0 -71
  230. data/test/functional/kaui/bundle_tags_controller_test.rb +0 -23
  231. data/test/functional/kaui/bundles_controller_test.rb +0 -130
  232. data/test/functional/kaui/chargebacks_controller_test.rb +0 -42
  233. data/test/functional/kaui/charges_controller_test.rb +0 -60
  234. data/test/functional/kaui/credits_controller_test.rb +0 -54
  235. data/test/functional/kaui/custom_fields_controller_test.rb +0 -52
  236. data/test/functional/kaui/functional_test_helper.rb +0 -13
  237. data/test/functional/kaui/functional_test_helper_nosetup.rb +0 -120
  238. data/test/functional/kaui/home_controller_test.rb +0 -407
  239. data/test/functional/kaui/invoice_items_controller_test.rb +0 -82
  240. data/test/functional/kaui/invoices_controller_test.rb +0 -88
  241. data/test/functional/kaui/login_proxy_controller_test.rb +0 -12
  242. data/test/functional/kaui/payment_methods_controller_test.rb +0 -52
  243. data/test/functional/kaui/payments_controller_test.rb +0 -59
  244. data/test/functional/kaui/queues_controller_test.rb +0 -17
  245. data/test/functional/kaui/refunds_controller_test.rb +0 -63
  246. data/test/functional/kaui/registrations_controller_test.rb +0 -49
  247. data/test/functional/kaui/role_definitions_controller_test.rb +0 -47
  248. data/test/functional/kaui/subscriptions_controller_test.rb +0 -194
  249. data/test/functional/kaui/tag_definitions_controller_test.rb +0 -29
  250. data/test/functional/kaui/tags_controller_test.rb +0 -21
  251. data/test/functional/kaui/tenants_controller_test.rb +0 -60
  252. data/test/functional/kaui/transactions_controller_test.rb +0 -90
  253. data/test/integration/kaui/date_helper_integration_test.rb +0 -16
  254. data/test/integration/kaui/integration_test_helper.rb +0 -32
  255. data/test/integration/kaui/navigation_test.rb +0 -43
  256. data/test/killbill_test_helper.rb +0 -217
  257. data/test/test_helper.rb +0 -22
  258. data/test/unit/helpers/kaui/admin_allowed_users_helper_test.rb +0 -6
  259. data/test/unit/helpers/kaui/admin_tenants_helper_test.rb +0 -6
  260. data/test/unit/helpers/kaui/payment_method_helper_test.rb +0 -17
  261. data/test/unit/helpers/kaui/tenants_helper_test.rb +0 -6
  262. data/test/unit/helpers/kaui/uuid_helper_test.rb +0 -16
  263. data/test/unit/kaui/account_email_test.rb +0 -19
  264. data/test/unit/kaui/account_test.rb +0 -14
  265. data/test/unit/kaui/admin_tenant_test.rb +0 -132
  266. data/test/unit/kaui/allowed_user_test.rb +0 -34
  267. data/test/unit/kaui/base_test.rb +0 -23
  268. data/test/unit/kaui/date_helper_test.rb +0 -26
  269. data/test/unit/kaui/invoice_item_test.rb +0 -11
  270. data/test/unit/kaui/invoice_payment_test.rb +0 -42
  271. data/test/unit/kaui/invoice_test.rb +0 -20
  272. data/test/unit/kaui/money_helper_test.rb +0 -16
  273. data/test/unit/kaui/payment_test.rb +0 -42
  274. data/test/unit/kaui/tag_definition_test.rb +0 -11
  275. data/test/unit/kaui/tenant_test.rb +0 -19
  276. /data/app/assets/stylesheets/{application.css → kaui_application.css} +0 -0
@@ -1,33 +1,39 @@
1
+ # frozen_string_literal: true
2
+
1
3
  require 'killbill_client'
2
4
 
5
+ # Hack for Zeitwerk
6
+ module Kaui
7
+ module KillbillAuthenticatable; end
8
+ end
9
+
3
10
  module Devise
4
11
  module Models
5
12
  module KillbillAuthenticatable
6
13
  extend ActiveSupport::Concern
7
14
 
8
- def valid_killbill_password?(kb_username, kb_password)
15
+ def valid_killbill_password?(creds)
9
16
  # Simply try to look-up the permissions for that user - this will
10
17
  # Take care of the auth part
11
- response = Kaui::User.find_permissions(kb_username, kb_password)
18
+ response = Kaui::User.find_permissions(creds)
12
19
  # Auth was successful, update the session id
13
20
  self.kb_session_id = response.session_id
14
21
  true
15
- rescue KillBillClient::API::Unauthorized => _
22
+ rescue KillBillClient::API::Unauthorized => _e
16
23
  false
17
24
  end
18
25
 
19
26
  def after_killbill_authentication
20
- self.save(:validate => false)
27
+ save(validate: false)
21
28
  end
22
29
 
23
30
  module ClassMethods
24
-
25
31
  # Invoked by the KillbillAuthenticatable strategy to lookup the user
26
32
  # before attempting authentication
27
33
  def find_for_killbill_authentication(kb_username)
28
- find_for_authentication(:kb_username => kb_username) ||
29
- new(:kb_username => kb_username)
30
- rescue KillBillClient::API::Unauthorized => _
34
+ find_for_authentication(kb_username: kb_username) ||
35
+ new(kb_username: kb_username)
36
+ rescue KillBillClient::API::Unauthorized => _e
31
37
  # Multi-Tenancy was enabled, but the tenant_id couldn't be retrieved because of bad credentials
32
38
  nil
33
39
  end
@@ -1,3 +1,10 @@
1
+ # frozen_string_literal: true
2
+
3
+ # Hack for Zeitwerk
4
+ module Kaui
5
+ module KillbillRegisterable; end
6
+ end
7
+
1
8
  module Devise
2
9
  module Models
3
10
  module KillbillRegisterable
@@ -1,89 +1,88 @@
1
- class Kaui::Overdue < KillBillClient::Model::Overdue
1
+ # frozen_string_literal: true
2
2
 
3
- class << self
4
-
5
-
6
- def from_overdue_form_model(view_form_model)
7
- result = KillBillClient::Model::Overdue.new
8
- result.initial_reevaluation_interval = nil # TODO
9
- result.overdue_states = []
10
- view_form_model["states"].each do |state_model|
11
-
12
- state = KillBillClient::Model::OverdueStateConfig.new
13
- state.name = state_model["name"]
14
- state.auto_reevaluation_interval_days = nil
15
- state.external_message = state_model["external_message"]
16
- state.is_clear_state = state_model["is_clear_state"].nil? ? false : state_model["is_clear_state"]
17
- state.is_block_changes = state_model["is_block_changes"]
18
- if state_model["subscription_cancellation_policy"] == :NONE.to_s
19
- state.is_disable_entitlement = false
20
- state.subscription_cancellation_policy = nil
21
- else
22
- state.is_disable_entitlement = true
23
- state.subscription_cancellation_policy = state_model["subscription_cancellation_policy"].blank? ? :NONE : state_model["subscription_cancellation_policy"].to_s.gsub!(/POLICY_/, '')
24
- end
3
+ module Kaui
4
+ class Overdue < KillBillClient::Model::Overdue
5
+ class << self
6
+ def from_overdue_form_model(view_form_model)
7
+ result = KillBillClient::Model::Overdue.new
8
+ result.initial_reevaluation_interval = nil # TODO
9
+ result.overdue_states = []
10
+ view_form_model['states'].each do |state_model|
11
+ state = KillBillClient::Model::OverdueStateConfig.new
12
+ state.name = state_model['name']
13
+ state.auto_reevaluation_interval_days = nil
14
+ state.external_message = state_model['external_message']
15
+ state.is_clear_state = state_model['is_clear_state'].nil? ? false : state_model['is_clear_state']
16
+ state.is_block_changes = state_model['is_block_changes']
17
+ if state_model['subscription_cancellation_policy'] == :NONE.to_s
18
+ state.is_disable_entitlement = false
19
+ state.subscription_cancellation_policy = nil
20
+ else
21
+ state.is_disable_entitlement = true
22
+ state.subscription_cancellation_policy = state_model['subscription_cancellation_policy'].blank? ? :NONE : state_model['subscription_cancellation_policy'].to_s.gsub!(/POLICY_/, '')
23
+ end
25
24
 
26
- if state_model["condition"]
27
- state.condition = KillBillClient::Model::OverdueCondition.new
28
- if state_model["condition"]["time_since_earliest_unpaid_invoice_equals_or_exceeds"]
29
- state.condition.time_since_earliest_unpaid_invoice_equals_or_exceeds = KillBillClient::Model::DurationAttributes.new
30
- state.condition.time_since_earliest_unpaid_invoice_equals_or_exceeds.unit = "DAYS"
31
- state.condition.time_since_earliest_unpaid_invoice_equals_or_exceeds.number = state_model["condition"]["time_since_earliest_unpaid_invoice_equals_or_exceeds"]
25
+ if state_model['condition']
26
+ state.condition = KillBillClient::Model::OverdueCondition.new
27
+ if state_model['condition']['time_since_earliest_unpaid_invoice_equals_or_exceeds']
28
+ state.condition.time_since_earliest_unpaid_invoice_equals_or_exceeds = KillBillClient::Model::DurationAttributes.new
29
+ state.condition.time_since_earliest_unpaid_invoice_equals_or_exceeds.unit = 'DAYS'
30
+ state.condition.time_since_earliest_unpaid_invoice_equals_or_exceeds.number = state_model['condition']['time_since_earliest_unpaid_invoice_equals_or_exceeds']
31
+ end
32
+ state.condition.number_of_unpaid_invoices_equals_or_exceeds = state_model['condition']['number_of_unpaid_invoices_equals_or_exceeds']
33
+ state.condition.total_unpaid_invoice_balance_equals_or_exceeds = state_model['condition']['total_unpaid_invoice_balance_equals_or_exceeds']
34
+ state.condition.control_tag_inclusion = format_tag_condition(state_model['condition']['control_tag_inclusion'])
35
+ state.condition.control_tag_exclusion = format_tag_condition(state_model['condition']['control_tag_exclusion'])
32
36
  end
33
- state.condition.number_of_unpaid_invoices_equals_or_exceeds = state_model["condition"]["number_of_unpaid_invoices_equals_or_exceeds"]
34
- state.condition.total_unpaid_invoice_balance_equals_or_exceeds = state_model["condition"]["total_unpaid_invoice_balance_equals_or_exceeds"]
35
- state.condition.control_tag_inclusion = format_tag_condition(state_model["condition"]["control_tag_inclusion"])
36
- state.condition.control_tag_exclusion = format_tag_condition(state_model["condition"]["control_tag_exclusion"])
37
+
38
+ result.overdue_states << state
37
39
  end
40
+ # We reversed them to display on the form , so we have to reverse them back before uploading new config
41
+ result.overdue_states.reverse!
38
42
 
39
- result.overdue_states << state
43
+ result
40
44
  end
41
- # We reversed them to display on the form , so we have to reverse them back before uploading new config
42
- result.overdue_states.reverse!
43
45
 
44
- result
45
- end
46
-
47
- def get_overdue_json(options)
48
- result = KillBillClient::Model::Overdue.get_tenant_overdue_config_json(options)
49
- class << result
50
- attr_accessor :has_states
46
+ def get_tenant_overdue_config(options)
47
+ overdue_xml = KillBillClient::Model::Overdue.get_tenant_overdue_config_xml(options)
48
+ Nokogiri::XML(overdue_xml, &:noblanks)
51
49
  end
52
- result.has_states = result.overdue_states.size > 0 && result.overdue_states[0].is_clear_state
53
50
 
54
- result.overdue_states.each do |state|
55
- class << state
56
- attr_accessor :subscription_cancellation
57
- end
58
- if state.is_disable_entitlement
59
- state.subscription_cancellation = state.subscription_cancellation_policy ? "POLICY_#{state.subscription_cancellation_policy}".to_sym : :NONE
60
- else
61
- state.subscription_cancellation = :NONE
51
+ def get_overdue_json(options)
52
+ result = KillBillClient::Model::Overdue.get_tenant_overdue_config_json(options)
53
+ class << result
54
+ attr_accessor :has_states
62
55
  end
63
- if state.condition.nil?
56
+ result.has_states = result.overdue_states.size.positive? && result.overdue_states[0].is_clear_state
57
+
58
+ result.overdue_states.each do |state|
59
+ class << state
60
+ attr_accessor :subscription_cancellation
61
+ end
62
+ state.subscription_cancellation = if state.is_disable_entitlement
63
+ state.subscription_cancellation_policy ? "POLICY_#{state.subscription_cancellation_policy}".to_sym : :NONE
64
+ else
65
+ :NONE
66
+ end
67
+ next unless state.condition.nil?
68
+
64
69
  state.condition = KillBillClient::Model::OverdueCondition.new
65
70
  state.condition.time_since_earliest_unpaid_invoice_equals_or_exceeds = KillBillClient::Model::DurationAttributes.new
66
- state.condition.time_since_earliest_unpaid_invoice_equals_or_exceeds.unit = "DAYS"
71
+ state.condition.time_since_earliest_unpaid_invoice_equals_or_exceeds.unit = 'DAYS'
67
72
  state.condition.time_since_earliest_unpaid_invoice_equals_or_exceeds.number = 0
68
73
  state.condition.number_of_unpaid_invoices_equals_or_exceeds = 0
69
74
  state.condition.total_unpaid_invoice_balance_equals_or_exceeds = 0
70
75
  state.condition.control_tag_inclusion = :NONE
71
76
  state.condition.control_tag_exclusion = :NONE
72
77
  end
78
+ result
73
79
  end
74
- result
75
- end
76
80
 
77
- def format_tag_condition(control_tag)
78
- if control_tag.blank? || control_tag == :NONE.to_s
79
- return nil
80
- else
81
- return control_tag
81
+ def format_tag_condition(control_tag)
82
+ return nil if control_tag.blank? || control_tag == :NONE.to_s
83
+
84
+ control_tag
82
85
  end
83
86
  end
84
-
85
-
86
87
  end
87
-
88
88
  end
89
-
@@ -1,30 +1,33 @@
1
- class Kaui::Payment < KillBillClient::Model::Payment
1
+ # frozen_string_literal: true
2
2
 
3
- include Kaui::PaymentState
3
+ module Kaui
4
+ class Payment < KillBillClient::Model::Payment
5
+ include Kaui::PaymentState
4
6
 
5
- attr_accessor :payment_date, :target_invoice_id
7
+ attr_accessor :payment_date, :target_invoice_id
6
8
 
7
- TRANSACTION_STATUSES = %w(SUCCESS PENDING PAYMENT_FAILURE PLUGIN_FAILURE UNKNOWN)
9
+ TRANSACTION_STATUSES = %w[SUCCESS PENDING PAYMENT_FAILURE PLUGIN_FAILURE UNKNOWN].freeze
8
10
 
9
- def self.build_from_raw_payment(raw_payment)
10
- result = Kaui::Payment.new
11
- KillBillClient::Model::PaymentAttributes.instance_variable_get('@json_attributes').each do |attr|
12
- result.send("#{attr}=", raw_payment.send(attr))
11
+ def self.build_from_raw_payment(raw_payment)
12
+ result = Kaui::Payment.new
13
+ KillBillClient::Model::PaymentAttributes.instance_variable_get('@json_attributes').each do |attr|
14
+ result.send("#{attr}=", raw_payment.send(attr))
15
+ end
16
+ result
13
17
  end
14
- result
15
- end
16
18
 
17
- def self.list_or_search(search_key = nil, offset = 0, limit = 10, options = {})
18
- if search_key.present?
19
- find_in_batches_by_search_key(search_key, offset, limit, options)
20
- else
21
- find_in_batches(offset, limit, options)
19
+ def self.list_or_search(search_key = nil, offset = 0, limit = 10, options = {})
20
+ if search_key.present?
21
+ find_in_batches_by_search_key(search_key, offset, limit, options)
22
+ else
23
+ find_in_batches(offset, limit, options)
24
+ end
22
25
  end
23
- end
24
26
 
25
- [:auth, :captured, :purchased, :refunded, :credited].each do |type|
26
- define_method "#{type}_amount_to_money" do
27
- Kaui::Base.to_money(send("#{type}_amount"), currency)
27
+ %i[auth captured purchased refunded credited].each do |type|
28
+ define_method "#{type}_amount_to_money" do
29
+ Kaui::Base.to_money(send("#{type}_amount"), currency)
30
+ end
28
31
  end
29
32
  end
30
33
  end
@@ -1,58 +1,67 @@
1
- class Kaui::PaymentMethod < KillBillClient::Model::PaymentMethod
1
+ # frozen_string_literal: true
2
2
 
3
- def self.list_or_search(search_key = nil, offset = 0, limit = 10, options = {})
4
- if search_key.present?
5
- find_in_batches_by_search_key(search_key, offset, limit, options)
6
- else
7
- find_in_batches(offset, limit, options)
3
+ module Kaui
4
+ class PaymentMethod < KillBillClient::Model::PaymentMethod
5
+ def self.list_or_search(search_key = nil, offset = 0, limit = 10, options = {})
6
+ if search_key.present?
7
+ find_in_batches_by_search_key(search_key, offset, limit, options)
8
+ else
9
+ find_in_batches(offset, limit, options)
10
+ end
8
11
  end
9
- end
10
12
 
11
- def self.find_safely_by_id(id, options = {})
12
- Kaui::PaymentMethod.find_by_id(id, true, options)
13
- rescue => e
14
- # Maybe the plugin is not registered or the plugin threw an exception
15
- Rails.logger.warn(e)
16
- Kaui::PaymentMethod.find_by_id(id, false, options) rescue nil # deleted pm?
17
- end
13
+ def self.find_safely_by_id(id, options = {})
14
+ Kaui::PaymentMethod.find_by_id(id, true, options)
15
+ rescue StandardError => e
16
+ # Maybe the plugin is not registered or the plugin threw an exception
17
+ Rails.logger.warn(e)
18
+ begin
19
+ Kaui::PaymentMethod.find_by_id(id, false, options)
20
+ rescue StandardError
21
+ nil
22
+ end
23
+ end
18
24
 
19
- def self.find_all_safely_by_account_id(account_id, options = {})
20
- pms = Kaui::PaymentMethod.find_all_by_account_id(account_id, false, options)
25
+ def self.find_all_safely_by_account_id(account_id, options = {})
26
+ pms = Kaui::PaymentMethod.find_all_by_account_id(account_id, false, options)
21
27
 
22
- pms.each_with_index do |pm, i|
23
- begin
28
+ pms.each_with_index do |pm, i|
24
29
  pms[i] = Kaui::PaymentMethod.find_by_id(pm.payment_method_id, true, options)
25
- rescue => e
30
+ rescue StandardError => e
26
31
  # Maybe the plugin is not registered or the plugin threw an exception
27
32
  Rails.logger.warn(e)
28
33
  end
34
+ pms
29
35
  end
30
- pms
31
- end
32
36
 
33
- def self.find_non_external_by_account_id(account_id, with_plugin_info = false, options = {})
34
- payment_methods = find_all_by_account_id(account_id, with_plugin_info, options)
35
- payment_methods.reject { |x| x.plugin_name == '__EXTERNAL_PAYMENT__' }
36
- end
37
+ def self.find_non_external_by_account_id(account_id, with_plugin_info, options = {})
38
+ payment_methods = find_all_by_account_id(account_id, with_plugin_info, options)
39
+ payment_methods.reject { |x| x.plugin_name == '__EXTERNAL_PAYMENT__' }
40
+ end
37
41
 
38
- def self.payment_methods_for_payments(payments = [], options = {})
39
- payment_method_per_payment = {}
40
- payment_methods_cache = {}
41
- deleted_payment_methods = Set.new
42
+ def self.payment_methods_for_payments(payments = [], options = {})
43
+ payment_method_per_payment = {}
44
+ payment_methods_cache = {}
45
+ deleted_payment_methods = Set.new
42
46
 
43
- payments.each do |payment|
44
- next if deleted_payment_methods.include?(payment.payment_method_id)
47
+ payments.each do |payment|
48
+ next if deleted_payment_methods.include?(payment.payment_method_id)
45
49
 
46
- # The payment method may have been deleted
47
- payment_methods_cache[payment.payment_method_id] ||= Kaui::PaymentMethod.find_by_id(payment.payment_method_id, true, options) rescue nil
50
+ # The payment method may have been deleted
51
+ payment_methods_cache[payment.payment_method_id] ||= begin
52
+ Kaui::PaymentMethod.find_by_id(payment.payment_method_id, true, options)
53
+ rescue StandardError
54
+ nil
55
+ end
48
56
 
49
- if payment_methods_cache[payment.payment_method_id].nil?
50
- deleted_payment_methods.add(payment.payment_method_id)
51
- else
52
- payment_method_per_payment[payment.payment_id] = payment_methods_cache[payment.payment_method_id]
57
+ if payment_methods_cache[payment.payment_method_id].nil?
58
+ deleted_payment_methods.add(payment.payment_method_id)
59
+ else
60
+ payment_method_per_payment[payment.payment_id] = payment_methods_cache[payment.payment_method_id]
61
+ end
53
62
  end
54
- end
55
63
 
56
- payment_method_per_payment
64
+ payment_method_per_payment
65
+ end
57
66
  end
58
67
  end
@@ -1,56 +1,59 @@
1
- module Kaui::PaymentState
1
+ # frozen_string_literal: true
2
2
 
3
- def refundable?
4
- transactions.each do |transaction|
5
- return true if transaction.status == 'SUCCESS' && %w(CAPTURE PURCHASE).include?(transaction.transaction_type)
3
+ module Kaui
4
+ module PaymentState
5
+ def refundable?
6
+ transactions.each do |transaction|
7
+ return true if transaction.status == 'SUCCESS' && %w[CAPTURE PURCHASE].include?(transaction.transaction_type)
8
+ end
9
+ false
6
10
  end
7
- false
8
- end
9
11
 
10
- def amount_refundable
11
- captured_amount + purchased_amount - refunded_amount
12
- end
12
+ def amount_refundable
13
+ captured_amount + purchased_amount - refunded_amount
14
+ end
13
15
 
14
- def amount_capturable
15
- auth_amount - captured_amount
16
- end
16
+ def amount_capturable
17
+ auth_amount - captured_amount
18
+ end
17
19
 
18
- def capturable?
19
- maybe = false
20
- transactions.each do |transaction|
21
- if transaction.status == 'SUCCESS'
20
+ def capturable?
21
+ maybe = false
22
+ transactions.each do |transaction|
23
+ next unless transaction.status == 'SUCCESS'
22
24
  return false if transaction.transaction_type == 'VOID'
25
+
23
26
  maybe = true if transaction.transaction_type == 'AUTHORIZE'
24
27
  end
28
+ maybe && refunded_amount.zero?
25
29
  end
26
- maybe && refunded_amount == 0
27
- end
28
30
 
29
- def voidable?
30
- transactions.each do |transaction|
31
- return false if transaction.status == 'SUCCESS' && transaction.transaction_type == 'VOID'
31
+ def voidable?
32
+ transactions.each do |transaction|
33
+ return false if transaction.status == 'SUCCESS' && transaction.transaction_type == 'VOID'
34
+ end
35
+ capturable? && captured_amount.zero?
32
36
  end
33
- capturable? && captured_amount == 0
34
- end
35
37
 
36
- def chargebackable?
37
- refundable?
38
- end
38
+ def chargebackable?
39
+ refundable?
40
+ end
39
41
 
40
- def total_authed_amount_to_money
41
- auth_amount_to_money + purchased_amount_to_money
42
- end
42
+ def total_authed_amount_to_money
43
+ auth_amount_to_money + purchased_amount_to_money
44
+ end
43
45
 
44
- def paid_amount_to_money
45
- captured_amount_to_money + purchased_amount_to_money
46
- end
46
+ def paid_amount_to_money
47
+ captured_amount_to_money + purchased_amount_to_money
48
+ end
47
49
 
48
- # TODO Better name?
49
- def returned_amount_to_money
50
- refunded_amount_to_money + credited_amount_to_money
51
- end
50
+ # TODO: Better name?
51
+ def returned_amount_to_money
52
+ refunded_amount_to_money + credited_amount_to_money
53
+ end
52
54
 
53
- def is_fully_refunded?
54
- refunded_amount == captured_amount || refunded_amount == purchased_amount
55
+ def fully_refunded?
56
+ refunded_amount == captured_amount || refunded_amount == purchased_amount
57
+ end
55
58
  end
56
59
  end
@@ -1,6 +1,7 @@
1
+ # frozen_string_literal: true
2
+
1
3
  module Kaui
2
4
  module RailsMethods
3
-
4
5
  def self.included(base_class)
5
6
  base_class.class_eval do
6
7
  # Required to build urls in views
@@ -10,7 +11,7 @@ module Kaui
10
11
  include ActiveModel::Conversion
11
12
 
12
13
  def ==(other)
13
- !other.nil? && self.class == other.class && self.to_hash == other.to_hash
14
+ !other.nil? && self.class == other.class && to_hash == other.to_hash
14
15
  end
15
16
 
16
17
  def persisted?
@@ -36,7 +37,7 @@ module Kaui
36
37
  false
37
38
  end
38
39
 
39
- def update_attributes(tag_definition)
40
+ def update_attributes(_tag_definition)
40
41
  @errors.add(:update, 'Updating this object is not yet supported')
41
42
  false
42
43
  end
@@ -45,11 +46,10 @@ module Kaui
45
46
  @errors.add(:destroy, 'Destroying this object is not yet supported')
46
47
  false
47
48
  end
48
-
49
- end # end instance methods
49
+ end
50
50
 
51
51
  base_class.instance_eval do
52
- def self.human_attribute_name(attr, options = {})
52
+ def self.human_attribute_name(attr, _options = {})
53
53
  attr
54
54
  end
55
55
 
@@ -65,10 +65,10 @@ module Kaui
65
65
  all.count
66
66
  end
67
67
 
68
- def self.find(id)
68
+ def self.find(_id)
69
69
  nil
70
70
  end
71
- end # end class methods
72
- end # end def included
71
+ end
72
+ end
73
73
  end
74
74
  end
@@ -1,2 +1,8 @@
1
- class Kaui::Refund
1
+ # frozen_string_literal: true
2
+
3
+ module Kaui
4
+ # rubocop:disable Lint/EmptyClass
5
+ class Refund
6
+ end
7
+ # rubocop:enable Lint/EmptyClass
2
8
  end
@@ -1,2 +1,6 @@
1
- class Kaui::RoleDefinition < KillBillClient::Model::RoleDefinition
1
+ # frozen_string_literal: true
2
+
3
+ module Kaui
4
+ class RoleDefinition < KillBillClient::Model::RoleDefinition
5
+ end
2
6
  end
@@ -1,4 +1,6 @@
1
- class Kaui::SimplePlan < KillBillClient::Model::SimplePlanAttributes
2
- end
3
-
1
+ # frozen_string_literal: true
4
2
 
3
+ module Kaui
4
+ class SimplePlan < KillBillClient::Model::SimplePlanAttributes
5
+ end
6
+ end
@@ -1,10 +1,13 @@
1
- class Kaui::Subscription < KillBillClient::Model::Subscription
1
+ # frozen_string_literal: true
2
2
 
3
- def cancel_entitlement_immediately(user = nil, reason = nil, comment = nil, options = {})
4
- requested_date = nil
5
- entitlement_policy = 'IMMEDIATE'
6
- billing_policy = nil
7
- use_requested_date_for_billing = true
8
- cancel(user, reason, comment, requested_date, entitlement_policy, billing_policy, use_requested_date_for_billing, options)
3
+ module Kaui
4
+ class Subscription < KillBillClient::Model::Subscription
5
+ def cancel_entitlement_immediately(user = nil, reason = nil, comment = nil, options = {})
6
+ requested_date = nil
7
+ entitlement_policy = 'IMMEDIATE'
8
+ billing_policy = nil
9
+ use_requested_date_for_billing = true
10
+ cancel(user, reason, comment, requested_date, entitlement_policy, billing_policy, use_requested_date_for_billing, options)
11
+ end
9
12
  end
10
13
  end
@@ -1,32 +1,35 @@
1
- class Kaui::Tag < KillBillClient::Model::Tag
1
+ # frozen_string_literal: true
2
2
 
3
- def self.list_or_search(search_key = nil, offset = 0, limit = 10, options = {})
4
- if search_key.present?
5
- find_in_batches_by_search_key(search_key, offset, limit, options)
6
- else
7
- find_in_batches(offset, limit, options)
3
+ module Kaui
4
+ class Tag < KillBillClient::Model::Tag
5
+ def self.list_or_search(search_key = nil, offset = 0, limit = 10, options = {})
6
+ if search_key.present?
7
+ find_in_batches_by_search_key(search_key, offset, limit, options)
8
+ else
9
+ find_in_batches(offset, limit, options)
10
+ end
8
11
  end
9
- end
10
12
 
11
- class << self
12
- [:account, :bundle, :subscription].each do |model|
13
- define_method "all_for_#{model.to_s}" do |model_id, included_deleted, audit, options|
14
- instance = Kaui.const_get(model.to_s.camelize).new("#{model.to_s}_id".to_sym => model_id)
15
- instance.tags(included_deleted, audit, options)
16
- end
13
+ class << self
14
+ %i[account bundle subscription invoice].each do |model|
15
+ define_method "all_for_#{model}" do |model_id, included_deleted, audit, options|
16
+ instance = Kaui.const_get(model.to_s.camelize).new("#{model}_id".to_sym => model_id)
17
+ instance.tags(included_deleted, audit, options)
18
+ end
17
19
 
18
- define_method "set_for_#{model.to_s}" do |model_id, tags, user, reason, comment, options|
19
- instance = Kaui.const_get(model.to_s.camelize).new("#{model.to_s}_id".to_sym => model_id)
20
- instance.set_tags(tags, user, reason, comment, options)
20
+ define_method "set_for_#{model}" do |model_id, tags, user, reason, comment, options|
21
+ instance = Kaui.const_get(model.to_s.camelize).new("#{model}_id".to_sym => model_id)
22
+ instance.set_tags(tags, user, reason, comment, options)
23
+ end
21
24
  end
22
25
  end
23
- end
24
26
 
25
- def is_system_tag?
26
- Kaui::TagDefinition(:id => tag_definition_id).is_system_tag?
27
- end
27
+ def system_tag?
28
+ Kaui::TagDefinition(id: tag_definition_id).system_tag?
29
+ end
28
30
 
29
- def <=>(tag)
30
- tag_definition_name.downcase <=> tag.tag_definition_name.downcase
31
+ def <=>(other)
32
+ tag_definition_name.downcase <=> other.tag_definition_name.downcase
33
+ end
31
34
  end
32
35
  end