lolita-first-data 1.0.0 → 2.0.0

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.
Files changed (40) hide show
  1. checksums.yaml +7 -0
  2. data/{LICENSE.txt → MIT-LICENSE} +1 -1
  3. data/README.md +8 -89
  4. data/Rakefile +22 -45
  5. data/app/controllers/lolita_first_data/application_controller.rb +23 -0
  6. data/app/controllers/lolita_first_data/test_controller.rb +73 -0
  7. data/app/controllers/lolita_first_data/transactions_controller.rb +63 -0
  8. data/app/models/lolita_first_data/transaction.rb +45 -0
  9. data/config/locales/en.yml +109 -109
  10. data/config/locales/lv.yml +109 -109
  11. data/config/routes.rb +5 -5
  12. data/lib/generators/lolita_first_data/install_generator.rb +13 -14
  13. data/lib/generators/lolita_first_data/templates/migration.rb +21 -21
  14. data/lib/lolita-first-data.rb +25 -6
  15. data/lib/lolita_first_data/billing.rb +82 -0
  16. data/lib/lolita_first_data/custom_logger.rb +8 -0
  17. data/lib/lolita_first_data/engine.rb +5 -0
  18. data/lib/lolita_first_data/version.rb +3 -0
  19. data/lib/tasks/lolita_first_data_tasks.rake +4 -0
  20. metadata +100 -102
  21. data/.rspec +0 -2
  22. data/Gemfile +0 -15
  23. data/Gemfile.lock +0 -140
  24. data/VERSION +0 -1
  25. data/app/controllers/lolita/first_data/common_controller.rb +0 -25
  26. data/app/controllers/lolita/first_data/test_controller.rb +0 -78
  27. data/app/controllers/lolita/first_data/transaction_controller.rb +0 -49
  28. data/app/models/lolita/first_data/transaction.rb +0 -55
  29. data/lib/lolita-first-data/billing.rb +0 -37
  30. data/lib/lolita-first-data/custom_logger.rb +0 -10
  31. data/lib/lolita-first-data/gateway.rb +0 -160
  32. data/lib/lolita-first-data/rails.rb +0 -6
  33. data/lib/tasks/first_data_tasks.rake +0 -78
  34. data/lolita-first-data.gemspec +0 -95
  35. data/spec/cert.pem +0 -63
  36. data/spec/fabricators/reservation_fabricator.rb +0 -4
  37. data/spec/fabricators/transaction_fabricator.rb +0 -7
  38. data/spec/first_data_spec.rb +0 -67
  39. data/spec/spec_helper.rb +0 -101
  40. data/spec/support/rails.rb +0 -16
@@ -1,109 +1,109 @@
1
- lv:
2
- fd:
3
- unknown_error: nezināma kļūda
4
- no_trans_id: Nav transakcijas ID
5
- wrong_request: Nepareizs pieprasījums
6
- purchase_failed: "Neizdevās izveidot maksājumu, lūdzu mēģiniet vēlreiz."
7
- response:
8
- code_914: "Atteikts, nevar atgriezties pie\n oriģinālās transakcijas"
9
- code_003: "Apstirināts VIP"
10
- code_102: "Atteikts, aizdomas par krāpniecību"
11
- code_201: "Atņemt, beidzies kartes derīguma termiņš"
12
- code_300: "Status message: file action successful"
13
- code_123: "Atteikts, pārsniegts naudas\n izdošanas biežuma limits"
14
- code_XXX: "Code to be replaced by card status code or stoplist insertion reason code"
15
- code_915: "Atteikts, rekonsilācijas pārslēgšana\n vai kontrolpunkta kļūda"
16
- code_004: "Apstiprināts, koriģēts 3 celiņš"
17
- code_103: "Atteikts, kartes pieņēmējam\n jāsazinās ar pieņēmējbanku"
18
- code_202: "Atņemt, aizdomas par krāpšanu"
19
- code_301: "Status message: file action not supported by receiver"
20
- code_400: "Apstiprināts (Reversēšanai)"
21
- code_124: "Atteikts, likuma pārkāpums"
22
- code_916: "Atteikts, nepareizs MAC"
23
- code_005: "Apstiprināts, konta tipu norāda\n kartes izdevējs"
24
- code_104: "Atteiks, karte ar ierobežojumu"
25
- code_203: "Atņemt, kartes pieņēmējam jāsazinās\n ar pieņēmējbanku"
26
- code_302: "Status message: unable to locate record on file"
27
- code_500: "Status message: reconciled, in balance"
28
- code_125: "Atteikts, karte nav derīga"
29
- code_917: "Atteikts, MAC atslēgu\n sinhronizācijas kļūda"
30
- code_600: "Apstiprināts (Administratīvais info)"
31
- code_126: "Atteikts, nepareizs PIN bloks"
32
- code_006: "Apstiprināts par daļēju summu, konta\n tipu norāda kartes izdevējs"
33
- code_105: "Atteikts, kartes pieņēmējam jāzvana\n izdevējbankas drošības departamentam"
34
- code_204: "Atņemt, karte ar ierobežojumiem"
35
- code_303: "Status message: duplicate record, old record replaced"
36
- code_501: "Status message: reconciled, out of balance"
37
- code_700: "Apstiprināts (komisiju savākšana)"
38
- code_601: "Status message: impossible to trace back original transaction"
39
- code_007: "Apstiprināts, koriģēts ICC"
40
- code_106: "Atteikts, pieļaujamais PIN\n ievadīšanas skaits izsmelts"
41
- code_205: "Atņemt, kartes pieņēmējam jāzvana\n izdevējbankas drošības departamentam"
42
- code_304: "Status message: file record field edit error"
43
- code_502: "Status message: amount not reconciled, totals provided"
44
- code_127: "Atteikts, PIN garuma kļūda"
45
- code_920: "Atteikts, drošības programmatūras\n kļūda, mēģiniet atkārtoti"
46
- code_918: "Atteikts, nav\n lietojamu transporta atslēgu "
47
- code_800: "Apstiprināts (Tīkla vadībai)"
48
- code_602: "Status message: invalid transaction reference number"
49
- code_107: "Atteikts, griezties pie kartes\n izdevējbankas"
50
- code_206: "Atņemt, pārsniegts atļauto PIN\n ievažu skaits"
51
- code_305: "Status message: file locked out"
52
- code_503: "Status message: totals for reconciliation not available"
53
- code_128: "Atteikts, PIN atslēgu sinhronizācijas kļūda"
54
- code_921: "Atteikts, drošības programmatūras kļūda"
55
- code_919: "Atteikts, kriptēšanas atslēgu\n sinhronizācijas kļūda"
56
- code_900: "Paziņojums atzīts, pieņemt bez\n finansiālas atbildības"
57
- code_603: "Status message: reference number/PAN incompatible"
58
- code_108: "Atteikts, griezties pie kartes\n izdevējbankas, īpaši nosacījumi"
59
- code_207: "Atņemt, īpaši nosacījumi"
60
- code_306: "Status message: file action not successful"
61
- code_504: "Status message: not reconciled, totals provided"
62
- code_129: "Atteikts, aizdomas par kartes viltojumu"
63
- code_922: "Atteikts, ziņojuma numurs neatbilst\n secībai"
64
- code_901: "Paziņojums atzīts, pieņemt ar\n finansiālu atbildību"
65
- code_604: "Status message: POS photograph is not available"
66
- code_110: "Atteikts, nepareiza summa"
67
- code_109: "Atteikts, nepareizs tirgotājs"
68
- code_208: "Atņemt, pazaudēta karte"
69
- code_307: "Status message: file data format error"
70
- code_923: "Pieprasījums tiek apstrādāts"
71
- code_902: "Atteikts, nepareiza transakcija"
72
- code_605: "Status message: requested item supplied"
73
- code_111: "Atteikts, nepareizs kartes numurs"
74
- code_210: "Atņemt, aizdomas par kartes viltojumu"
75
- code_209: "Atņemt, zagta karte"
76
- code_308: "Status message: duplicate record, new record rejected"
77
- code_903: "Vēlreiz ievadi transakciju"
78
- code_606: "Status message: request cannot be\n fulfilled - required documentation is not available"
79
- code_112: "Atteikts, PIN dati nepieciešami"
80
- code_309: "Status message: unknown file"
81
- code_197: "Atteikts, zvaniet AMEX"
82
- code_904: "Atteikts, formāta kļūda"
83
- code_113: "Atteikts, nepieņemama komisija"
84
- code_198: "Atteikts, zvaniet Karšu apstrādes centram"
85
- code_905: "Atteikts, pieņēmējbankai nav pieslēguma"
86
- code_114: "Atteikts, nav pieprasīts konta tips"
87
- code_906: "Atteikts, notiek pārslēgšana"
88
- code_115: "Atteikts, pieprasītā funkcija netiek\n atbalstīta"
89
- code_950: "Atteikts, biznesa vienošanās pārkāpums"
90
- code_116: "Atteikts, nepietiek līdzekļu"
91
- code_907: "Atteikts, nedarbojas izdevējbanka\n vai pieslēgums"
92
- code_117: "Atteikts, nepareizs PIN kods"
93
- code_910: "Atteikts, kartes izdevējbankas izslēgta"
94
- code_908: "Atteikts, nevar atrast\n transakcijas adresātu"
95
- code_118: "Atteikts, nav kartes ieraksta"
96
- code_911: "Atteikts, kartes izdevējbanka\n laicīgi nesniedz atbildi"
97
- code_909: "Atteikts, sistēmas nepareiza darbība"
98
- code_000: "Apstiprināts"
99
- code_120: "Atteikts, transakcija nav atļauta\n terminālam"
100
- code_119: "Atteikts, transakcija nav atļauta\n kartes lietotājam"
101
- code_912: "Atteikts, kartes izdevējbankas nav\n sasniedzama"
102
- code_001: "Apstiprināts, ja var apliecināt identitāti"
103
- code_100: "Atteikts (Vispārīgs, bez komentāriem)"
104
- code_121: "Atteikts, pārsniegts naudas\n izdošanas limits"
105
- code_913: "Atteikts, dubulta pārraide"
106
- code_002: "Apstiprināts par daļēju summu"
107
- code_101: "Atteikts, beidzies kartes derīguma termiņš"
108
- code_200: "Atņemt karti (Vispārīgs, bez komnetāriem)"
109
- code_122: "Atteikts, drošības pārkāpums"
1
+ lv:
2
+ fd:
3
+ unknown_error: nezināma kļūda
4
+ no_trans_id: Nav transakcijas ID
5
+ wrong_request: Nepareizs pieprasījums
6
+ purchase_failed: "Neizdevās izveidot maksājumu, lūdzu mēģiniet vēlreiz."
7
+ response:
8
+ code_914: "Atteikts, nevar atgriezties pie\n oriģinālās transakcijas"
9
+ code_003: "Apstirināts VIP"
10
+ code_102: "Atteikts, aizdomas par krāpniecību"
11
+ code_201: "Atņemt, beidzies kartes derīguma termiņš"
12
+ code_300: "Status message: file action successful"
13
+ code_123: "Atteikts, pārsniegts naudas\n izdošanas biežuma limits"
14
+ code_XXX: "Code to be replaced by card status code or stoplist insertion reason code"
15
+ code_915: "Atteikts, rekonsilācijas pārslēgšana\n vai kontrolpunkta kļūda"
16
+ code_004: "Apstiprināts, koriģēts 3 celiņš"
17
+ code_103: "Atteikts, kartes pieņēmējam\n jāsazinās ar pieņēmējbanku"
18
+ code_202: "Atņemt, aizdomas par krāpšanu"
19
+ code_301: "Status message: file action not supported by receiver"
20
+ code_400: "Apstiprināts (Reversēšanai)"
21
+ code_124: "Atteikts, likuma pārkāpums"
22
+ code_916: "Atteikts, nepareizs MAC"
23
+ code_005: "Apstiprināts, konta tipu norāda\n kartes izdevējs"
24
+ code_104: "Atteiks, karte ar ierobežojumu"
25
+ code_203: "Atņemt, kartes pieņēmējam jāsazinās\n ar pieņēmējbanku"
26
+ code_302: "Status message: unable to locate record on file"
27
+ code_500: "Status message: reconciled, in balance"
28
+ code_125: "Atteikts, karte nav derīga"
29
+ code_917: "Atteikts, MAC atslēgu\n sinhronizācijas kļūda"
30
+ code_600: "Apstiprināts (Administratīvais info)"
31
+ code_126: "Atteikts, nepareizs PIN bloks"
32
+ code_006: "Apstiprināts par daļēju summu, konta\n tipu norāda kartes izdevējs"
33
+ code_105: "Atteikts, kartes pieņēmējam jāzvana\n izdevējbankas drošības departamentam"
34
+ code_204: "Atņemt, karte ar ierobežojumiem"
35
+ code_303: "Status message: duplicate record, old record replaced"
36
+ code_501: "Status message: reconciled, out of balance"
37
+ code_700: "Apstiprināts (komisiju savākšana)"
38
+ code_601: "Status message: impossible to trace back original transaction"
39
+ code_007: "Apstiprināts, koriģēts ICC"
40
+ code_106: "Atteikts, pieļaujamais PIN\n ievadīšanas skaits izsmelts"
41
+ code_205: "Atņemt, kartes pieņēmējam jāzvana\n izdevējbankas drošības departamentam"
42
+ code_304: "Status message: file record field edit error"
43
+ code_502: "Status message: amount not reconciled, totals provided"
44
+ code_127: "Atteikts, PIN garuma kļūda"
45
+ code_920: "Atteikts, drošības programmatūras\n kļūda, mēģiniet atkārtoti"
46
+ code_918: "Atteikts, nav\n lietojamu transporta atslēgu "
47
+ code_800: "Apstiprināts (Tīkla vadībai)"
48
+ code_602: "Status message: invalid transaction reference number"
49
+ code_107: "Atteikts, griezties pie kartes\n izdevējbankas"
50
+ code_206: "Atņemt, pārsniegts atļauto PIN\n ievažu skaits"
51
+ code_305: "Status message: file locked out"
52
+ code_503: "Status message: totals for reconciliation not available"
53
+ code_128: "Atteikts, PIN atslēgu sinhronizācijas kļūda"
54
+ code_921: "Atteikts, drošības programmatūras kļūda"
55
+ code_919: "Atteikts, kriptēšanas atslēgu\n sinhronizācijas kļūda"
56
+ code_900: "Paziņojums atzīts, pieņemt bez\n finansiālas atbildības"
57
+ code_603: "Status message: reference number/PAN incompatible"
58
+ code_108: "Atteikts, griezties pie kartes\n izdevējbankas, īpaši nosacījumi"
59
+ code_207: "Atņemt, īpaši nosacījumi"
60
+ code_306: "Status message: file action not successful"
61
+ code_504: "Status message: not reconciled, totals provided"
62
+ code_129: "Atteikts, aizdomas par kartes viltojumu"
63
+ code_922: "Atteikts, ziņojuma numurs neatbilst\n secībai"
64
+ code_901: "Paziņojums atzīts, pieņemt ar\n finansiālu atbildību"
65
+ code_604: "Status message: POS photograph is not available"
66
+ code_110: "Atteikts, nepareiza summa"
67
+ code_109: "Atteikts, nepareizs tirgotājs"
68
+ code_208: "Atņemt, pazaudēta karte"
69
+ code_307: "Status message: file data format error"
70
+ code_923: "Pieprasījums tiek apstrādāts"
71
+ code_902: "Atteikts, nepareiza transakcija"
72
+ code_605: "Status message: requested item supplied"
73
+ code_111: "Atteikts, nepareizs kartes numurs"
74
+ code_210: "Atņemt, aizdomas par kartes viltojumu"
75
+ code_209: "Atņemt, zagta karte"
76
+ code_308: "Status message: duplicate record, new record rejected"
77
+ code_903: "Vēlreiz ievadi transakciju"
78
+ code_606: "Status message: request cannot be\n fulfilled - required documentation is not available"
79
+ code_112: "Atteikts, PIN dati nepieciešami"
80
+ code_309: "Status message: unknown file"
81
+ code_197: "Atteikts, zvaniet AMEX"
82
+ code_904: "Atteikts, formāta kļūda"
83
+ code_113: "Atteikts, nepieņemama komisija"
84
+ code_198: "Atteikts, zvaniet Karšu apstrādes centram"
85
+ code_905: "Atteikts, pieņēmējbankai nav pieslēguma"
86
+ code_114: "Atteikts, nav pieprasīts konta tips"
87
+ code_906: "Atteikts, notiek pārslēgšana"
88
+ code_115: "Atteikts, pieprasītā funkcija netiek\n atbalstīta"
89
+ code_950: "Atteikts, biznesa vienošanās pārkāpums"
90
+ code_116: "Atteikts, nepietiek līdzekļu"
91
+ code_907: "Atteikts, nedarbojas izdevējbanka\n vai pieslēgums"
92
+ code_117: "Atteikts, nepareizs PIN kods"
93
+ code_910: "Atteikts, kartes izdevējbankas izslēgta"
94
+ code_908: "Atteikts, nevar atrast\n transakcijas adresātu"
95
+ code_118: "Atteikts, nav kartes ieraksta"
96
+ code_911: "Atteikts, kartes izdevējbanka\n laicīgi nesniedz atbildi"
97
+ code_909: "Atteikts, sistēmas nepareiza darbība"
98
+ code_000: "Apstiprināts"
99
+ code_120: "Atteikts, transakcija nav atļauta\n terminālam"
100
+ code_119: "Atteikts, transakcija nav atļauta\n kartes lietotājam"
101
+ code_912: "Atteikts, kartes izdevējbankas nav\n sasniedzama"
102
+ code_001: "Apstiprināts, ja var apliecināt identitāti"
103
+ code_100: "Atteikts (Vispārīgs, bez komentāriem)"
104
+ code_121: "Atteikts, pārsniegts naudas\n izdošanas limits"
105
+ code_913: "Atteikts, dubulta pārraide"
106
+ code_002: "Apstiprināts par daļēju summu"
107
+ code_101: "Atteikts, beidzies kartes derīguma termiņš"
108
+ code_200: "Atņemt karti (Vispārīgs, bez komnetāriem)"
109
+ code_122: "Atteikts, drošības pārkāpums"
@@ -1,5 +1,5 @@
1
- Rails.application.routes.draw do
2
- match '/first_data/checkout', :as => "checkout_first_data", :controller => 'Lolita::FirstData::Transaction', :action => 'checkout'
3
- match '/first_data/answer', :as => "answer_first_data", :controller => 'Lolita::FirstData::Transaction', :action => 'answer'
4
- match '/first_data_test/:action', :controller => 'Lolita::FirstData::Test'
5
- end
1
+ Rails.application.routes.draw do
2
+ get '/first_data/checkout' => 'lolita_first_data/transactions#checkout', as: 'checkout_first_data'
3
+ post '/first_data/answer' => 'lolita_first_data/transactions#answer', as: 'answer_first_data'
4
+ get '/first_data/test' => 'lolita_first_data/test#test'
5
+ end
@@ -1,14 +1,13 @@
1
- module LolitaFirstData
2
- module Generators
3
- class InstallGenerator < Rails::Generators::Base
4
- include Lolita::Generators::FileHelper
5
- source_root File.expand_path("../templates", __FILE__)
6
- desc "Create migrations. "
7
-
8
- def copy_migration
9
- copy_file "migration.rb", "db/migrate/#{Time.now.strftime("%Y%m%d%H%M%S")}_create_lolita_first_data_transaction.rb"
10
- end
11
-
12
- end
13
- end
14
- end
1
+ module LolitaFirstData
2
+ module Generators
3
+ class InstallGenerator < Rails::Generators::Base
4
+ source_root File.expand_path("../templates", __FILE__)
5
+ desc "Create migrations. "
6
+
7
+ def copy_migration
8
+ copy_file "migration.rb", "db/migrate/#{Time.now.strftime("%Y%m%d%H%M%S")}_create_lolita_first_data_transaction.rb"
9
+ end
10
+
11
+ end
12
+ end
13
+ end
@@ -1,21 +1,21 @@
1
- class CreateLolitaFirstDataTransaction < ActiveRecord::Migration
2
- class << self
3
- def up
4
- create_table :first_data_transactions do |t|
5
- t.string :transaction_id, :length => 28
6
- t.string :transaction_code, :length => 3
7
- t.string :status, :default => "processing"
8
- t.references :paymentable, :polymorphic => true
9
- t.string :ip, :length => 10
10
-
11
- t.timestamps
12
- end
13
-
14
- add_index :first_data_transactions, [:paymentable_type,:paymentable_id], :name => "fd_trx_paymentable_type_paymentable_id"
15
- end
16
-
17
- def down
18
- drop_table :first_data_transactions
19
- end
20
- end
21
- end
1
+ class CreateLolitaFirstDataTransaction < ActiveRecord::Migration
2
+ class << self
3
+ def up
4
+ create_table :first_data_transactions do |t|
5
+ t.string :transaction_id, length: 28
6
+ t.string :transaction_code, length: 3
7
+ t.string :status, default: "processing"
8
+ t.references :paymentable, polymorphic: true
9
+ t.string :ip, length: 10
10
+
11
+ t.timestamps
12
+ end
13
+
14
+ add_index :first_data_transactions, [:paymentable_type,:paymentable_id], name: "fd_trx_paymentable_type_paymentable_id"
15
+ end
16
+
17
+ def down
18
+ drop_table :first_data_transactions
19
+ end
20
+ end
21
+ end
@@ -1,6 +1,25 @@
1
- require 'ipaddr'
2
- require 'active_merchant'
3
- require 'lolita-first-data/custom_logger'
4
- require 'lolita-first-data/billing'
5
- require 'lolita-first-data/gateway'
6
- require 'lolita-first-data/rails'
1
+ require "ipaddr"
2
+ require "active_merchant_first_data"
3
+ require "lolita_first_data/engine"
4
+ require "lolita_first_data/version"
5
+ require "lolita_first_data/custom_logger"
6
+ require "lolita_first_data/billing"
7
+
8
+ module LolitaFirstData
9
+ mattr_accessor :custom_logger
10
+
11
+ def self.logger
12
+ unless @logger
13
+ @logger = custom_logger ? custom_logger : default_logger
14
+ end
15
+ @logger
16
+ end
17
+
18
+ protected
19
+
20
+ def self.default_logger
21
+ logger = Logger.new(Rails.root.join('log', 'lolita_first_data.log'))
22
+ logger.formatter = LolitaFirstData::LogFormatter.new
23
+ logger
24
+ end
25
+ end
@@ -0,0 +1,82 @@
1
+ module LolitaFirstData
2
+ module Billing
3
+ def self.included(base)
4
+ base.has_many :first_data_transactions, as: :paymentable, class_name: 'LolitaFirstData::Transaction', dependent: :destroy
5
+ base.extend ClassMethods
6
+ base.class_eval do
7
+
8
+ # Payment description
9
+ def description
10
+ raise 'Redefine this method in your billing model.'
11
+ end
12
+
13
+ # Price of payment in cents
14
+ def price
15
+ raise 'Redefine this method in your billing model.'
16
+ end
17
+
18
+ # Currency as 3 letter code as in ISO 4217
19
+ def currency
20
+ raise 'Redefine this method in your billing model.'
21
+ end
22
+
23
+ def first_data_trx_saved trx
24
+ raise 'This should be inplemented on your paymentable class'
25
+ end
26
+
27
+ def first_data_return_path
28
+ raise 'This should be inplemented on your paymentable class'
29
+ end
30
+
31
+ # Add this to your paid? method along with other payment methods
32
+ # Example:
33
+ # def paid?
34
+ # paypal_paid? || first_data_paid?
35
+ # end
36
+ def first_data_paid?
37
+ self.first_data_transactions.where(status: 'completed', transaction_code: '000').count >= 1
38
+ end
39
+
40
+ def first_data_error_message
41
+ if trx = first_data_transactions.last and trx.transaction_code != '000'
42
+ I18n.t("fd.response.code_#{trx.transaction_code}", default: I18n.t('fd.unknown_error'))
43
+ end
44
+ end
45
+
46
+ # web interface will open in this language
47
+ def first_data_language
48
+ I18n.locale.to_s.sub('-','_').downcase
49
+ end
50
+
51
+ # Reverses last completed transaction and updates status to reversed
52
+ def first_data_reverse
53
+ raise('This is already reversed') if self.status.to_s == 'reversed'
54
+ if trx = self.first_data_transactions.where(status: 'completed').first
55
+ response = self.class.gateway.refund(self.price, trx.transaction_id)
56
+ if response[:result] == 'OK'
57
+ trx.status = 'reversed'
58
+ trx.transaction_code = response[:result_code]
59
+ return trx.save!
60
+ end
61
+ end
62
+ end
63
+ end
64
+ end
65
+
66
+ module ClassMethods
67
+ # Closes business day
68
+ # should be executed every day ~midnight
69
+ # Like 'ruby script/runner <YourBillingModel>.first_data_close_business_day'
70
+ def first_data_close_business_day
71
+ gateway.close_day
72
+ end
73
+
74
+ def gateway
75
+ @gateway ||= ActiveMerchant::Billing::FirstDataGateway.new(
76
+ pem: File.open(ENV['FIRST_DATA_PEM']).read,
77
+ pem_password: ENV['FIRST_DATA_PASS']
78
+ )
79
+ end
80
+ end
81
+ end
82
+ end
@@ -0,0 +1,8 @@
1
+ module LolitaFirstData
2
+ # custom log formatter for FirstData gateway
3
+ class LogFormatter < Logger::Formatter
4
+ def call(severity, time, program_name, message)
5
+ "%5s [%s] (%s) %s :: %s\n" % [severity, time.strftime('%Y-%m-%d %H:%M:%S'), $$, program_name, message]
6
+ end
7
+ end
8
+ end
@@ -0,0 +1,5 @@
1
+ module LolitaFirstData
2
+ class Engine < ::Rails::Engine
3
+ isolate_namespace LolitaFirstData
4
+ end
5
+ end
@@ -0,0 +1,3 @@
1
+ module LolitaFirstData
2
+ VERSION = "2.0.0"
3
+ end
@@ -0,0 +1,4 @@
1
+ # desc "Explaining what the task does"
2
+ # task :lolita-first-data do
3
+ # # Task goes here
4
+ # end
metadata CHANGED
@@ -1,189 +1,187 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: lolita-first-data
3
3
  version: !ruby/object:Gem::Version
4
- version: 1.0.0
5
- prerelease:
4
+ version: 2.0.0
6
5
  platform: ruby
7
6
  authors:
8
- - ITHouse, Gatis Tomsons
7
+ - Gatis Tomsons, ITHouse
9
8
  autorequire:
10
9
  bindir: bin
11
10
  cert_chain: []
12
- date: 2011-09-07 00:00:00.000000000Z
11
+ date: 2014-04-02 00:00:00.000000000 Z
13
12
  dependencies:
14
13
  - !ruby/object:Gem::Dependency
15
14
  name: rails
16
- requirement: &77854810 !ruby/object:Gem::Requirement
17
- none: false
15
+ requirement: !ruby/object:Gem::Requirement
18
16
  requirements:
19
- - - ! '>='
17
+ - - ">="
20
18
  - !ruby/object:Gem::Version
21
- version: 3.0.0
19
+ version: 3.2.0
22
20
  type: :runtime
23
21
  prerelease: false
24
- version_requirements: *77854810
22
+ version_requirements: !ruby/object:Gem::Requirement
23
+ requirements:
24
+ - - ">="
25
+ - !ruby/object:Gem::Version
26
+ version: 3.2.0
25
27
  - !ruby/object:Gem::Dependency
26
- name: activemerchant
27
- requirement: &77853880 !ruby/object:Gem::Requirement
28
- none: false
28
+ name: active_merchant_first_data
29
+ requirement: !ruby/object:Gem::Requirement
29
30
  requirements:
30
- - - ~>
31
+ - - "~>"
31
32
  - !ruby/object:Gem::Version
32
- version: 1.17.0
33
+ version: 1.1.0
33
34
  type: :runtime
34
35
  prerelease: false
35
- version_requirements: *77853880
36
+ version_requirements: !ruby/object:Gem::Requirement
37
+ requirements:
38
+ - - "~>"
39
+ - !ruby/object:Gem::Version
40
+ version: 1.1.0
36
41
  - !ruby/object:Gem::Dependency
37
42
  name: sqlite3
38
- requirement: &77852240 !ruby/object:Gem::Requirement
39
- none: false
43
+ requirement: !ruby/object:Gem::Requirement
40
44
  requirements:
41
- - - ~>
45
+ - - "~>"
42
46
  - !ruby/object:Gem::Version
43
- version: 1.3.4
47
+ version: '1.3'
44
48
  type: :development
45
49
  prerelease: false
46
- version_requirements: *77852240
50
+ version_requirements: !ruby/object:Gem::Requirement
51
+ requirements:
52
+ - - "~>"
53
+ - !ruby/object:Gem::Version
54
+ version: '1.3'
47
55
  - !ruby/object:Gem::Dependency
48
- name: rspec
49
- requirement: &77851130 !ruby/object:Gem::Requirement
50
- none: false
56
+ name: rspec-rails
57
+ requirement: !ruby/object:Gem::Requirement
51
58
  requirements:
52
- - - ~>
59
+ - - "~>"
53
60
  - !ruby/object:Gem::Version
54
- version: 2.6.0
61
+ version: 2.14.0
55
62
  type: :development
56
63
  prerelease: false
57
- version_requirements: *77851130
64
+ version_requirements: !ruby/object:Gem::Requirement
65
+ requirements:
66
+ - - "~>"
67
+ - !ruby/object:Gem::Version
68
+ version: 2.14.0
58
69
  - !ruby/object:Gem::Dependency
59
70
  name: webmock
60
- requirement: &77850190 !ruby/object:Gem::Requirement
61
- none: false
71
+ requirement: !ruby/object:Gem::Requirement
62
72
  requirements:
63
- - - ~>
73
+ - - "~>"
64
74
  - !ruby/object:Gem::Version
65
- version: 1.7.6
75
+ version: '1'
66
76
  type: :development
67
77
  prerelease: false
68
- version_requirements: *77850190
69
- - !ruby/object:Gem::Dependency
70
- name: ruby-debug19
71
- requirement: &77848880 !ruby/object:Gem::Requirement
72
- none: false
78
+ version_requirements: !ruby/object:Gem::Requirement
73
79
  requirements:
74
- - - ~>
80
+ - - "~>"
75
81
  - !ruby/object:Gem::Version
76
- version: 0.11.6
77
- type: :development
78
- prerelease: false
79
- version_requirements: *77848880
82
+ version: '1'
80
83
  - !ruby/object:Gem::Dependency
81
- name: bundler
82
- requirement: &77840360 !ruby/object:Gem::Requirement
83
- none: false
84
+ name: fabrication
85
+ requirement: !ruby/object:Gem::Requirement
84
86
  requirements:
85
- - - ~>
87
+ - - "~>"
86
88
  - !ruby/object:Gem::Version
87
- version: 1.0.0
89
+ version: '2.1'
88
90
  type: :development
89
91
  prerelease: false
90
- version_requirements: *77840360
92
+ version_requirements: !ruby/object:Gem::Requirement
93
+ requirements:
94
+ - - "~>"
95
+ - !ruby/object:Gem::Version
96
+ version: '2.1'
91
97
  - !ruby/object:Gem::Dependency
92
- name: jeweler
93
- requirement: &77839070 !ruby/object:Gem::Requirement
94
- none: false
98
+ name: database_cleaner
99
+ requirement: !ruby/object:Gem::Requirement
95
100
  requirements:
96
- - - ~>
101
+ - - "~>"
97
102
  - !ruby/object:Gem::Version
98
- version: 1.6.4
103
+ version: 1.2.0
99
104
  type: :development
100
105
  prerelease: false
101
- version_requirements: *77839070
106
+ version_requirements: !ruby/object:Gem::Requirement
107
+ requirements:
108
+ - - "~>"
109
+ - !ruby/object:Gem::Version
110
+ version: 1.2.0
102
111
  - !ruby/object:Gem::Dependency
103
- name: rcov
104
- requirement: &77837580 !ruby/object:Gem::Requirement
105
- none: false
112
+ name: simplecov
113
+ requirement: !ruby/object:Gem::Requirement
106
114
  requirements:
107
- - - ! '>='
115
+ - - "~>"
108
116
  - !ruby/object:Gem::Version
109
- version: '0'
117
+ version: 0.8.2
110
118
  type: :development
111
119
  prerelease: false
112
- version_requirements: *77837580
120
+ version_requirements: !ruby/object:Gem::Requirement
121
+ requirements:
122
+ - - "~>"
123
+ - !ruby/object:Gem::Version
124
+ version: 0.8.2
113
125
  - !ruby/object:Gem::Dependency
114
- name: fabrication
115
- requirement: &77836620 !ruby/object:Gem::Requirement
116
- none: false
126
+ name: pry-byebug
127
+ requirement: !ruby/object:Gem::Requirement
117
128
  requirements:
118
- - - ~>
129
+ - - "~>"
119
130
  - !ruby/object:Gem::Version
120
- version: 1.1.0
131
+ version: 1.3.1
121
132
  type: :development
122
133
  prerelease: false
123
- version_requirements: *77836620
124
- description: FirstData Payment plugin for Lolita using ActiveMerchant
125
- email: gatis@ithouse.cc
134
+ version_requirements: !ruby/object:Gem::Requirement
135
+ requirements:
136
+ - - "~>"
137
+ - !ruby/object:Gem::Version
138
+ version: 1.3.1
139
+ description: FirstData payment plugin using ActiveMerchant for use with Lolita CMS
140
+ email:
141
+ - gatis@ithouse.lv, info@ithouse.lv
126
142
  executables: []
127
143
  extensions: []
128
- extra_rdoc_files:
129
- - LICENSE.txt
130
- - README.md
144
+ extra_rdoc_files: []
131
145
  files:
132
- - .rspec
133
- - Gemfile
134
- - Gemfile.lock
135
- - LICENSE.txt
146
+ - MIT-LICENSE
136
147
  - README.md
137
148
  - Rakefile
138
- - VERSION
139
- - app/controllers/lolita/first_data/common_controller.rb
140
- - app/controllers/lolita/first_data/test_controller.rb
141
- - app/controllers/lolita/first_data/transaction_controller.rb
142
- - app/models/lolita/first_data/transaction.rb
149
+ - app/controllers/lolita_first_data/application_controller.rb
150
+ - app/controllers/lolita_first_data/test_controller.rb
151
+ - app/controllers/lolita_first_data/transactions_controller.rb
152
+ - app/models/lolita_first_data/transaction.rb
143
153
  - config/locales/en.yml
144
154
  - config/locales/lv.yml
145
155
  - config/routes.rb
146
156
  - lib/generators/lolita_first_data/install_generator.rb
147
157
  - lib/generators/lolita_first_data/templates/migration.rb
148
158
  - lib/lolita-first-data.rb
149
- - lib/lolita-first-data/billing.rb
150
- - lib/lolita-first-data/custom_logger.rb
151
- - lib/lolita-first-data/gateway.rb
152
- - lib/lolita-first-data/rails.rb
153
- - lib/tasks/first_data_tasks.rake
154
- - lolita-first-data.gemspec
155
- - spec/cert.pem
156
- - spec/fabricators/reservation_fabricator.rb
157
- - spec/fabricators/transaction_fabricator.rb
158
- - spec/first_data_spec.rb
159
- - spec/spec_helper.rb
160
- - spec/support/rails.rb
159
+ - lib/lolita_first_data/billing.rb
160
+ - lib/lolita_first_data/custom_logger.rb
161
+ - lib/lolita_first_data/engine.rb
162
+ - lib/lolita_first_data/version.rb
163
+ - lib/tasks/lolita_first_data_tasks.rake
161
164
  homepage: http://github.com/ithouse/lolita-first-data
162
- licenses:
163
- - MIT
165
+ licenses: []
166
+ metadata: {}
164
167
  post_install_message:
165
168
  rdoc_options: []
166
169
  require_paths:
167
170
  - lib
168
171
  required_ruby_version: !ruby/object:Gem::Requirement
169
- none: false
170
172
  requirements:
171
- - - ! '>='
173
+ - - ">="
172
174
  - !ruby/object:Gem::Version
173
175
  version: '0'
174
- segments:
175
- - 0
176
- hash: 790109101
177
176
  required_rubygems_version: !ruby/object:Gem::Requirement
178
- none: false
179
177
  requirements:
180
- - - ! '>='
178
+ - - ">="
181
179
  - !ruby/object:Gem::Version
182
180
  version: '0'
183
181
  requirements: []
184
182
  rubyforge_project:
185
- rubygems_version: 1.8.10
183
+ rubygems_version: 2.2.0
186
184
  signing_key:
187
- specification_version: 3
188
- summary: FirstData Payment plugin for Lolita
185
+ specification_version: 4
186
+ summary: FirstData payment plugin for Lolita
189
187
  test_files: []