create/get upload request backend

This commit is contained in:
Čarodej
2022-02-17 16:55:35 +01:00
parent 45a3b5415b
commit 6db8b0662a
15 changed files with 273 additions and 28 deletions

View File

@@ -5,13 +5,13 @@ namespace Domain\UploadRequest\Controllers;
use App\Http\Controllers\Controller;
use Auth;
use Domain\UploadRequest\Notifications\UploadRequestNotification;
use Domain\UploadRequest\Requests\StoreUploadRequest;
use Domain\UploadRequest\Resources\UploadRequestResource;
use Illuminate\Http\Request;
use Notification;
class CreateUploadRequestController extends Controller
{
public function __invoke(Request $request)
public function __invoke(StoreUploadRequest $request)
{
$uploadRequest = Auth::user()->uploadRequest()->create([
'folder_id' => $request->input('folder_id'),
@@ -19,8 +19,11 @@ class CreateUploadRequestController extends Controller
'notes' => $request->input('notes'),
]);
Notification::route('mail', $uploadRequest->email)
->notify(new UploadRequestNotification($uploadRequest));
// If user type email, notify by email
if ($uploadRequest->email) {
Notification::route('mail', $uploadRequest->email)
->notify(new UploadRequestNotification($uploadRequest));
}
return response(new UploadRequestResource($uploadRequest), 201);
}

View File

@@ -45,7 +45,7 @@ class UploadRequestNotification extends Notification implements ShouldQueue
->subject("{$this->uploadRequest->user->settings->first_name} Request You for File Upload")
->greeting('Hello')
->line("We are emailing you because {$this->uploadRequest->user->settings->first_name} needs files from you. Please click on the link below and upload your files for {$this->uploadRequest->user->settings->first_name}.")
->action('Upload Files', url('/'))
->action('Upload Files', url("/request/{$this->uploadRequest->id}/upload"))
->line('Thank you for using our application!');
}

View File

@@ -0,0 +1,32 @@
<?php
namespace Domain\UploadRequest\Requests;
use Illuminate\Foundation\Http\FormRequest;
class StoreUploadRequest extends FormRequest
{
/**
* 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()
{
return [
'email' => 'sometimes|string',
'notes' => 'sometimes|string',
'folder_id' => 'required|string',
];
}
}

View File

@@ -1,4 +1,5 @@
<?php
namespace Domain\UploadRequest\Resources;
use Illuminate\Http\Resources\Json\JsonResource;
@@ -12,16 +13,17 @@ class UploadRequestResource extends JsonResource
'id' => $this->id,
'type' => 'upload-request',
'attributes' => [
'folder_id' => $this->folder_id,
'status' => $this->status,
'email' => $this->email,
'notes' => $this->notes,
'folder_id' => $this->folder_id,
'status' => $this->status,
'email' => $this->email,
'notes' => $this->notes,
'url' => url("/request/$this->id/upload"),
],
'relationships' => [
'user' => [
'data' => [
'id' => $this->user->id,
'type' => 'user',
'id' => $this->user->id,
'type' => 'user',
'attributes' => [
'name' => $this->user->settings->name,
'avatar' => $this->user->settings->avatar,