Changeset View
Changeset View
Standalone View
Standalone View
src/app/Mail/PaymentFailure.php
- This file was copied from src/app/Mail/SuspendedDebtor.php.
<?php | <?php | ||||
namespace App\Mail; | namespace App\Mail; | ||||
use App\Payment; | |||||
use App\User; | use App\User; | ||||
use App\Utils; | use App\Utils; | ||||
use Illuminate\Bus\Queueable; | use Illuminate\Bus\Queueable; | ||||
use Illuminate\Mail\Mailable; | use Illuminate\Mail\Mailable; | ||||
use Illuminate\Queue\SerializesModels; | use Illuminate\Queue\SerializesModels; | ||||
class SuspendedDebtor extends Mailable | class PaymentFailure extends Mailable | ||||
{ | { | ||||
use Queueable; | use Queueable; | ||||
use SerializesModels; | use SerializesModels; | ||||
/** @var \App\User A suspended user (account) */ | /** @var \App\Payment A payment operation */ | ||||
protected $account; | protected $payment; | ||||
/** @var \App\User A wallet controller to whom the email is being send */ | |||||
protected $user; | |||||
/** | /** | ||||
* Create a new message instance. | * Create a new message instance. | ||||
* | * | ||||
* @param \App\User $account A suspended user (account) | * @param \App\Payment $payment A payment operation | ||||
* @param \App\User $user An email recipient | |||||
* | * | ||||
* @return void | * @return void | ||||
*/ | */ | ||||
public function __construct(User $account) | public function __construct(Payment $payment, User $user) | ||||
{ | { | ||||
$this->account = $account; | $this->payment = $payment; | ||||
$this->user = $user; | |||||
} | } | ||||
/** | /** | ||||
* Build the message. | * Build the message. | ||||
* | * | ||||
* @return $this | * @return $this | ||||
*/ | */ | ||||
public function build() | public function build() | ||||
{ | { | ||||
$user = $this->account; | $user = $this->user; | ||||
$subject = \trans('mail.suspendeddebtor-subject', ['site' => \config('app.name')]); | |||||
$moreInfo = null; | $subject = \trans('mail.paymentfailure-subject', ['site' => \config('app.name')]); | ||||
if ($moreInfoUrl = \config('app.kb.account_suspended')) { | |||||
$moreInfo = \trans('mail.more-info-html', ['href' => $moreInfoUrl]); | |||||
} | |||||
$this->view('emails.suspended_debtor') | $this->view('emails.payment_failure') | ||||
->subject($subject) | ->subject($subject) | ||||
->with([ | ->with([ | ||||
'site' => \config('app.name'), | 'site' => \config('app.name'), | ||||
'subject' => $subject, | 'subject' => $subject, | ||||
'username' => $user->name(true), | 'username' => $user->name(true), | ||||
'cancelUrl' => \config('app.kb.account_delete'), | |||||
'supportUrl' => \config('app.support_url'), | |||||
'walletUrl' => Utils::serviceUrl('/wallet'), | 'walletUrl' => Utils::serviceUrl('/wallet'), | ||||
'moreInfo' => $moreInfo, | 'supportUrl' => \config('app.support_url'), | ||||
'days' => 14 // TODO: Configurable | |||||
]); | ]); | ||||
return $this; | return $this; | ||||
} | } | ||||
/** | /** | ||||
* Render the mail template with fake data | * Render the mail template with fake data | ||||
* | * | ||||
* @return string HTML output | * @return string HTML output | ||||
*/ | */ | ||||
public static function fakeRender(): string | public static function fakeRender(): string | ||||
{ | { | ||||
$user = new User(); | $payment = new Payment(); | ||||
$user = new User([ | |||||
'email' => 'test@' . \config('app.domain'), | |||||
]); | |||||
if (!\config('app.support_url')) { | |||||
\config(['app.support_url' => 'https://not-configured-support.url']); | |||||
} | |||||
$mail = new self($user); | $mail = new self($payment, $user); | ||||
return $mail->build()->render(); | return $mail->build()->render(); | ||||
} | } | ||||
} | } |