- send notification to native user when file request was sent via email

- updated mysql dump
This commit is contained in:
Čarodej
2022-05-18 09:50:21 +02:00
parent 3c28da2613
commit aa30b519fa
9 changed files with 84 additions and 12 deletions
@@ -1,7 +1,7 @@
<?php
namespace Domain\UploadRequest\Controllers;
use Auth;
use App\Users\Models\User;
use Gate;
use Notification;
use Domain\Folders\Models\Folder;
@@ -28,7 +28,7 @@ class CreateUploadRequestController extends Controller
}
// Create upload request
$uploadRequest = Auth::user()->uploadRequest()->create([
$uploadRequest = auth()->user()->uploadRequest()->create([
'folder_id' => $request->input('folder_id'),
'email' => $request->input('email'),
'notes' => $request->input('notes'),
@@ -37,8 +37,16 @@ class CreateUploadRequestController extends Controller
// If user type email, notify by email
if ($request->has('email')) {
Notification::route('mail', $uploadRequest->email)
->notify(new UploadRequestNotification($uploadRequest));
// Check if user exists
$user = User::where('email', $uploadRequest->email)
->first();
if ($user) {
$user->notify(new UploadRequestNotification($uploadRequest));
} else {
Notification::route('mail', $uploadRequest->email)
->notify(new UploadRequestNotification($uploadRequest));
}
}
return response()->json(new UploadRequestResource($uploadRequest), 201);
@@ -29,7 +29,7 @@ class UploadRequestNotification extends Notification implements ShouldQueue
*/
public function via($notifiable)
{
return ['mail'];
return ['mail', 'database', 'broadcast'];
}
/**
@@ -56,13 +56,21 @@ class UploadRequestNotification extends Notification implements ShouldQueue
/**
* Get the array representation of the notification.
*
* @param mixed $notifiable
* @return array
*/
public function toArray($notifiable)
public function toArray(mixed $notifiable): array
{
return [
'category' => 'file-request',
'title' => __t('file_request_notify_title', ['name' => $this->uploadRequest->user->settings->first_name]),
'description' => __t('file_request_notify_center_description', ['name' => $this->uploadRequest->user->settings->first_name]),
'action' => [
'type' => 'url',
'params' => [
'target' => 'blank',
'url' => url("/request/{$this->uploadRequest->id}/upload"),
'button' => __t('upload_files'),
],
],
];
}
}