dscf-banking 0.4.3 → 0.4.5
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.
- checksums.yaml +4 -4
- data/app/services/dscf/banking/voucher_service.rb +6 -16
- data/lib/dscf/banking/version.rb +1 -1
- metadata +2 -2
checksums.yaml
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
---
|
|
2
2
|
SHA256:
|
|
3
|
-
metadata.gz:
|
|
4
|
-
data.tar.gz:
|
|
3
|
+
metadata.gz: f764f4b5e4f7553dc346b1835f96121e002bfa92099433ba364188e143ad9fa1
|
|
4
|
+
data.tar.gz: b36403d3550af4a8a95bb107da9aeab7b5c7b7de91fcc90f6041f9e3bb0027ce
|
|
5
5
|
SHA512:
|
|
6
|
-
metadata.gz:
|
|
7
|
-
data.tar.gz:
|
|
6
|
+
metadata.gz: ee47d83e10b5bb5a69c4ca40e27282e41d0bd8838df800ddd22f019059c1972b0dbc43dd49187b0ee03894d5cc6e2373c7049b83507656ec537b9832e7e13394
|
|
7
|
+
data.tar.gz: 792bd5f2fc5c96a072cca1ee59b3b3a818be47ab5905497448b0c193e4fee8ad4eca86d7ff2c5587d05bd8a07093d23591dee242a26768b0b11e56b5f1e51b60
|
|
@@ -54,7 +54,7 @@ module Dscf
|
|
|
54
54
|
self
|
|
55
55
|
end
|
|
56
56
|
|
|
57
|
-
def redeem_voucher(code:, amount:, recipient_mobile
|
|
57
|
+
def redeem_voucher(code:, amount:, recipient_mobile: nil, destination_account: nil)
|
|
58
58
|
amount = amount.to_f
|
|
59
59
|
code = code.to_s.strip.upcase
|
|
60
60
|
@voucher = Dscf::Banking::Voucher.find_by(code: code)
|
|
@@ -64,8 +64,8 @@ module Dscf
|
|
|
64
64
|
return self
|
|
65
65
|
end
|
|
66
66
|
|
|
67
|
-
return self unless validate_redeem_params(amount
|
|
68
|
-
return self unless validate_voucher_state(@voucher, amount
|
|
67
|
+
return self unless validate_redeem_params(amount)
|
|
68
|
+
return self unless validate_voucher_state(@voucher, amount)
|
|
69
69
|
return self unless ensure_voucher_settlement_funds(@voucher.currency, amount)
|
|
70
70
|
|
|
71
71
|
if destination_account
|
|
@@ -84,7 +84,7 @@ module Dscf
|
|
|
84
84
|
voucher: @voucher,
|
|
85
85
|
amount: amount,
|
|
86
86
|
currency: @voucher.currency,
|
|
87
|
-
recipient_mobile: recipient_mobile,
|
|
87
|
+
recipient_mobile: recipient_mobile.presence || "N/A",
|
|
88
88
|
destination_account: destination_account,
|
|
89
89
|
redeemed_at: Time.current
|
|
90
90
|
)
|
|
@@ -197,21 +197,16 @@ module Dscf
|
|
|
197
197
|
30.days.from_now
|
|
198
198
|
end
|
|
199
199
|
|
|
200
|
-
def validate_redeem_params(amount
|
|
200
|
+
def validate_redeem_params(amount)
|
|
201
201
|
if amount <= 0
|
|
202
202
|
add_error("Redemption amount must be greater than zero")
|
|
203
203
|
return false
|
|
204
204
|
end
|
|
205
205
|
|
|
206
|
-
if recipient_mobile.to_s.strip.empty?
|
|
207
|
-
add_error("Recipient mobile is required")
|
|
208
|
-
return false
|
|
209
|
-
end
|
|
210
|
-
|
|
211
206
|
true
|
|
212
207
|
end
|
|
213
208
|
|
|
214
|
-
def validate_voucher_state(voucher, amount
|
|
209
|
+
def validate_voucher_state(voucher, amount)
|
|
215
210
|
if voucher.cancelled?
|
|
216
211
|
add_error("Voucher is cancelled")
|
|
217
212
|
return false
|
|
@@ -227,11 +222,6 @@ module Dscf
|
|
|
227
222
|
return false
|
|
228
223
|
end
|
|
229
224
|
|
|
230
|
-
if voucher.recipient_mobile != recipient_mobile
|
|
231
|
-
add_error("Recipient mobile does not match")
|
|
232
|
-
return false
|
|
233
|
-
end
|
|
234
|
-
|
|
235
225
|
if voucher.remaining_amount.to_f < amount
|
|
236
226
|
add_error("Insufficient voucher balance")
|
|
237
227
|
return false
|
data/lib/dscf/banking/version.rb
CHANGED
metadata
CHANGED
|
@@ -1,13 +1,13 @@
|
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
|
2
2
|
name: dscf-banking
|
|
3
3
|
version: !ruby/object:Gem::Version
|
|
4
|
-
version: 0.4.
|
|
4
|
+
version: 0.4.5
|
|
5
5
|
platform: ruby
|
|
6
6
|
authors:
|
|
7
7
|
- Asrat Efrem
|
|
8
8
|
bindir: bin
|
|
9
9
|
cert_chain: []
|
|
10
|
-
date: 2026-
|
|
10
|
+
date: 2026-03-05 00:00:00.000000000 Z
|
|
11
11
|
dependencies:
|
|
12
12
|
- !ruby/object:Gem::Dependency
|
|
13
13
|
name: rails
|