Changeset View
Changeset View
Standalone View
Standalone View
src/app/Http/Controllers/API/V4/PaymentsController.php
Show First 20 Lines • Show All 288 Lines • ▼ Show 20 Lines | class PaymentsController extends Controller | ||||
* Top up a wallet with a "recurring" payment. | * Top up a wallet with a "recurring" payment. | ||||
* | * | ||||
* @param \App\Wallet $wallet The wallet to charge | * @param \App\Wallet $wallet The wallet to charge | ||||
* | * | ||||
* @return bool True if the payment has been initialized | * @return bool True if the payment has been initialized | ||||
*/ | */ | ||||
public static function topUpWallet(Wallet $wallet): bool | public static function topUpWallet(Wallet $wallet): bool | ||||
{ | { | ||||
if ((bool) $wallet->getSetting('mandate_disabled')) { | $settings = $wallet->getSettings(['mandate_disabled', 'mandate_balance', 'mandate_amount']); | ||||
if (!empty($settings['mandate_disabled'])) { | |||||
return false; | return false; | ||||
} | } | ||||
$min_balance = (int) (floatval($wallet->getSetting('mandate_balance')) * 100); | $min_balance = (int) (floatval($settings['mandate_balance']) * 100); | ||||
$amount = (int) (floatval($wallet->getSetting('mandate_amount')) * 100); | $amount = (int) (floatval($settings['mandate_amount']) * 100); | ||||
// The wallet balance is greater than the auto-payment threshold | // The wallet balance is greater than the auto-payment threshold | ||||
if ($wallet->balance >= $min_balance) { | if ($wallet->balance >= $min_balance) { | ||||
// Do nothing | // Do nothing | ||||
return false; | return false; | ||||
} | } | ||||
$provider = PaymentProvider::factory($wallet); | $provider = PaymentProvider::factory($wallet); | ||||
Show All 30 Lines | class PaymentsController extends Controller | ||||
* | * | ||||
* @param \App\Wallet $wallet A wallet object | * @param \App\Wallet $wallet A wallet object | ||||
* | * | ||||
* @return array A mandate metadata | * @return array A mandate metadata | ||||
*/ | */ | ||||
public static function walletMandate(Wallet $wallet): array | public static function walletMandate(Wallet $wallet): array | ||||
{ | { | ||||
$provider = PaymentProvider::factory($wallet); | $provider = PaymentProvider::factory($wallet); | ||||
$settings = $wallet->getSettings(['mandate_disabled', 'mandate_balance', 'mandate_amount']); | |||||
// Get the Mandate info | // Get the Mandate info | ||||
$mandate = (array) $provider->getMandate($wallet); | $mandate = (array) $provider->getMandate($wallet); | ||||
$mandate['amount'] = (int) (PaymentProvider::MIN_AMOUNT / 100); | $mandate['amount'] = (int) (PaymentProvider::MIN_AMOUNT / 100); | ||||
$mandate['balance'] = 0; | $mandate['balance'] = 0; | ||||
$mandate['isDisabled'] = !empty($mandate['id']) && $wallet->getSetting('mandate_disabled'); | $mandate['isDisabled'] = !empty($mandate['id']) && $settings['mandate_disabled']; | ||||
foreach (['amount', 'balance'] as $key) { | foreach (['amount', 'balance'] as $key) { | ||||
if (($value = $wallet->getSetting("mandate_{$key}")) !== null) { | if (($value = $settings["mandate_{$key}"]) !== null) { | ||||
$mandate[$key] = $value; | $mandate[$key] = $value; | ||||
} | } | ||||
} | } | ||||
return $mandate; | return $mandate; | ||||
} | } | ||||
▲ Show 20 Lines • Show All 108 Lines • Show Last 20 Lines |