1
0
mirror of https://github.com/invoiceninja/invoiceninja.git synced 2024-11-14 23:22:52 +01:00
invoiceninja/app/Http/Requests/CreateOnlinePaymentRequest.php
2017-11-27 16:50:06 +02:00

55 lines
1.3 KiB
PHP

<?php
namespace App\Http\Requests;
use App\Models\Invitation;
use App\Models\GatewayType;
class CreateOnlinePaymentRequest extends Request
{
/**
* Determine if the user is authorized to make this request.
*
* @return bool
*/
public function authorize()
{
return true;
}
/**
* Get the validation rules that apply to the request.
*
* @return array
*/
public function rules()
{
$account = $this->invitation->account;
$paymentDriver = $account->paymentDriver($this->invitation, $this->gateway_type);
return $paymentDriver->rules();
}
public function sanitize()
{
$input = $this->all();
$invitation = Invitation::with('invoice.invoice_items', 'invoice.client.currency', 'invoice.client.account.currency', 'invoice.client.account.account_gateways.gateway')
->where('invitation_key', '=', $this->invitation_key)
->firstOrFail();
$input['invitation'] = $invitation;
if ($gatewayTypeAlias = request()->gateway_type) {
$input['gateway_type'] = GatewayType::getIdFromAlias($gatewayTypeAlias);
} else {
$input['gateway_type'] = session($invitation->id . 'gateway_type');
}
$this->replace($input);
return $this->all();
}
}