Skip to main content

ErugoOSS/Erugo

738 stars
3 code files
View ErugoOSS/Erugo on GitHub

app/Mail/reverseShareInviteMail.php

Open in GitHub
use Illuminate\Bus\Queueable;
use Illuminate\Contracts\Queue\ShouldQueue;
use Illuminate\Mail\Mailable;
use Illuminate\Mail\Mailables\Content;
use Illuminate\Mail\Mailables\Envelope;
use Illuminate\Queue\SerializesModels;
use App\Models\User;
use App\Models\ReverseShareInvite;
use App\Models\Setting;
 
class reverseShareInviteMail extends Mailable
{
use Queueable, SerializesModels;
 
public $share;
public $recipient;
public $user;
public $recipient_name;
public $sender_name;
public $token;
public $invite;
 
public function __construct(User $user, ReverseShareInvite $invite, $token)
{
$this->user = $user;
$this->invite = $invite;
$this->token = $token;
$this->recipient_name = explode(' ', $invite->recipient_name)[0];
$this->sender_name = explode(' ', $user->name)[0];
}
 
public function envelope(): Envelope
{
return new Envelope(
subject: Setting::where('key', 'email_subject_reverseShareInviteMail.twig')->first()->value,
);
}
 
public function content(): Content
{
return new Content(
view: 'emails.reverseShareInviteMail',
);
}
}

resources/views/emails/reverseShareInviteMail.twig

Open in GitHub
{% extends 'emails/layout' %}
 
{% block header %} You have a new reverse share request
{% endblock %}
 
{% block content %}
<h2>Hi {{ recipient_name }},</h2>
 
<p>{{ sender_name }} is requesting files from you.</p>
<p>Click the button below to accept the request and upload files for {{ sender_name }}.</p>
 
{% if invite.message %}
<hr>
<p>Message: {{ invite.message }}</p>
<hr>
{% endif %}
 
{% endblock %}
 
{% block action_url %}{{ settings.application_url }}/?invite_token={{ token }}{% endblock %}
{% block action_text %}
Accept Request
{% endblock %}

app/Http/Controllers/ReverseSharesController.php

Open in GitHub
use App\Jobs\sendEmail;
use Illuminate\Http\Request;
use App\Mail\reverseShareInviteMail;
 
class ReverseSharesController extends Controller
{
public function createInvite(Request $request)
{
 
// ...
 
sendEmail::dispatch($request->recipient_email, reverseShareInviteMail::class, [
'user' => $user,
'invite' => $invite,
'token' => $encryptedToken
]);
 
return response()->json([
'status' => 'success',
'data' => [
'invite' => $invite
]
]);
}
}

We'd Love Your Feedback

Tell us what you like or what we can improve

Feel free to share anything you like or dislike about this page or the platform in general.