first commit
This commit is contained in:
67
app/Filters/AttachmentFilter.php
Normal file
67
app/Filters/AttachmentFilter.php
Normal file
@@ -0,0 +1,67 @@
|
||||
<?php
|
||||
|
||||
namespace App\Filters;
|
||||
|
||||
use App\Enums\AttachmentStatus;
|
||||
use App\Helpers\AttachmentHelper;
|
||||
use App\Models\Attachment;
|
||||
use Illuminate\Http\UploadedFile;
|
||||
use Illuminate\Validation\Rule;
|
||||
|
||||
class AttachmentFilter
|
||||
{
|
||||
public function __construct()
|
||||
{
|
||||
}
|
||||
|
||||
/**
|
||||
* Adds request rules to attachment parent
|
||||
* @param array $rules
|
||||
* @return array
|
||||
*/
|
||||
public static function addRequestRulesForParent(array $rules): array
|
||||
{
|
||||
$rules['attachmentsRelation'] = 'sometimes|required|array';
|
||||
$rules['attachmentsRelation.*'] = [
|
||||
'sometimes',
|
||||
'required',
|
||||
'uuid',
|
||||
Rule::exists(Attachment::class, 'id')
|
||||
];
|
||||
$rules['attachmentsToRemove'] = 'sometimes|required|array';
|
||||
$rules['attachmentsToRemove.*'] = [
|
||||
'sometimes',
|
||||
'required',
|
||||
'uuid',
|
||||
Rule::exists(Attachment::class, 'id')
|
||||
];
|
||||
|
||||
return $rules;
|
||||
}
|
||||
|
||||
public static function prepareAttachmentCreateRequest($request) {
|
||||
/**
|
||||
* @var $file UploadedFile
|
||||
*/
|
||||
$file = $request['attachment'];
|
||||
|
||||
$request['user_id'] = auth()->user()->id;
|
||||
$request['status'] = AttachmentStatus::NOT_ATTACHED;
|
||||
$request['original_name'] = AttachmentHelper::getFileName($file);
|
||||
$request['mime_type'] = $file->getMimeType();
|
||||
$request['extension'] = $file->clientExtension();
|
||||
$request['size'] = $file->getSize();
|
||||
|
||||
return $request;
|
||||
}
|
||||
|
||||
public function subscribe(): array
|
||||
{
|
||||
return array_merge([
|
||||
'filter.request.attachment.create' => [[__CLASS__, 'prepareAttachmentCreateRequest']]
|
||||
], AttachmentHelper::getFilters(
|
||||
addRequestRulesForParent: [[__CLASS__, 'addRequestRulesForParent']]
|
||||
));
|
||||
}
|
||||
|
||||
}
|
||||
Reference in New Issue
Block a user