first commit

This commit is contained in:
Noor E Ilahi
2026-01-09 12:54:53 +05:30
commit 7ccf44f7da
1070 changed files with 113036 additions and 0 deletions

View 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']]
));
}
}