fix media

This commit is contained in:
mahdi purHosseini
2023-12-09 20:57:47 +03:30
parent d3d438f07e
commit a0c0c41404
4 changed files with 67 additions and 78 deletions
+2 -4
View File
@@ -144,6 +144,7 @@ class ItemController extends Controller
$Item = Item::create( [ $Item = Item::create( [
'name' => $request->name , 'name' => $request->name ,
'size' => $request->size , 'size' => $request->size ,
'unique_id' => $request->unique_id ,
'specific' => $request->specific , 'specific' => $request->specific ,
'note' => $request->note , 'note' => $request->note ,
'udi' => $request->udi , 'udi' => $request->udi ,
@@ -163,19 +164,16 @@ class ItemController extends Controller
public function update( StoreItemRequest $request , Item $Item ) public function update( StoreItemRequest $request , Item $Item )
{ {
try {
$Item->update( [ $Item->update( [
'name' => $request->name , 'name' => $request->name ,
'size' => $request->size , 'size' => $request->size ,
'unique_id' => $request->unique_id ,
'specific' => $request->specific , 'specific' => $request->specific ,
'note' => $request->note , 'note' => $request->note ,
'udi' => $request->udi 'udi' => $request->udi
] ); ] );
MediaHelper::moveMediaTo( $Item ); MediaHelper::moveMediaTo( $Item );
return MessageResponse::success( trans( 'messages.success' ) ); return MessageResponse::success( trans( 'messages.success' ) );
} catch ( \Exception $exception ) {
dd( $exception );
}
} }
public function destroy( Item $Item ) public function destroy( Item $Item )
@@ -11,7 +11,6 @@ class StoreMedia extends Controller
{ {
public function __invoke(Request $request) public function __invoke(Request $request)
{ {
try {
$this->validate($request, [ $this->validate($request, [
'batch_id' => 'required|max:40', 'batch_id' => 'required|max:40',
'file' => 'required|mimes:jpeg,jpg,bmp,png,pdf' 'file' => 'required|mimes:jpeg,jpg,bmp,png,pdf'
@@ -30,8 +29,5 @@ class StoreMedia extends Controller
['id' => $media->id, 'url' => $media->getUrl()] ['id' => $media->id, 'url' => $media->getUrl()]
) )
); );
}catch (\Exception $exception){
dd($exception);
}
} }
} }
+1 -1
View File
@@ -27,7 +27,7 @@ class StoreItemRequest extends FormRequest
'size' => 'required', 'size' => 'required',
'specific' => 'required', 'specific' => 'required',
'note' => 'nullable', 'note' => 'nullable',
// 'udi' => 'required|max:100|unique:items', 'udi' => 'required|max:100|unique:items',
]; ];
break; break;
} }
+36 -41
View File
@@ -7,40 +7,37 @@ use Illuminate\Database\Eloquent\Model;
class MediaHelper class MediaHelper
{ {
public static function moveMediaTo( $model ) public static function moveMediaTo($model) {
{
try {
request()->validate( [
'file_batch_id' => 'nullable|string' ,
] );
if ( $fakeModel = FakeModel::where( 'batch_id' , request( 'file_batch_id' ) )->first() ) { request()->validate([
foreach ( $fakeModel->getMedia( 'temp_medias' ) as $media ) { 'file_batch_id' => 'nullable|string',
if ( substr( $media->mime_type , 0 , 5 ) == 'image' ) { ]);
$media->move( $model , 'images' );
if ($fakeModel = FakeModel::where('batch_id', request('file_batch_id'))->first()) {
foreach($fakeModel->getMedia('temp_medias') as $media) {
if(substr($media->mime_type, 0, 5) == 'image') {
$media->move($model, 'images');
} else { } else {
$media->move( $model , 'files' ); $media->move($model, 'files');
} }
} }
$fakeModel->delete(); $fakeModel->delete();
} }
} catch ( \Exception $exception ) {
dd( $exception );
}
} }
public static function storeMediaFor( Model $model , string $batchId = null ) public static function storeMediaFor(Model $model, string $batchId = null)
{ {
if ( is_null( $batchId ) ) { if (is_null($batchId)) {
$batchId = request()->input( 'file_batch_id' ); $batchId = request()->input('file_batch_id');
} }
$modelName = self::getNamespaceMap( $model ); $modelName = self::getNamespaceMap($model);
if ( $fakeModel = FakeModel::where( 'batch_id' , $batchId )->where( 'model_name' , $modelName )->first() ) { if ($fakeModel = FakeModel::where('batch_id', $batchId)->where('model_name', $modelName)->first()) {
foreach ( $fakeModel->media()->get() as $media ) { foreach($fakeModel->media()->get() as $media) {
$media->move( $model , $media->collection_name ); $media->move($model, $media->collection_name);
} }
$fakeModel->delete(); $fakeModel->delete();
@@ -49,24 +46,23 @@ class MediaHelper
} }
private static function getNamespaceMap( Model $model ) private static function getNamespaceMap(Model $model)
{ {
return $model->getMorphClass(); return $model->getMorphClass();
} }
public static function moveTinyMCEMediaTo( $model ) public static function moveTinyMCEMediaTo($model) {
{
request()->validate( [ request()->validate([
'tinymce_batch_id' => 'nullable|string' , 'tinymce_batch_id' => 'nullable|string',
] ); ]);
if ( $fakeModel = FakeModel::where( 'batch_id' , request( 'tinymce_batch_id' ) )->first() ) { if ($fakeModel = FakeModel::where('batch_id', request('tinymce_batch_id'))->first()) {
foreach ( $fakeModel->getMedia( 'temp_medias' ) as $media ) { foreach($fakeModel->getMedia('temp_medias') as $media) {
if ( substr( $media->mime_type , 0 , 5 ) == 'image' ) { if(substr($media->mime_type, 0, 5) == 'image') {
$media->assign( $model , 'tinymce_images' ); $media->assign($model, 'tinymce_images');
} else { } else {
$media->assign( $model , 'temp_medias' ); $media->assign($model, 'temp_medias');
} }
} }
$fakeModel->delete(); $fakeModel->delete();
@@ -74,16 +70,15 @@ class MediaHelper
} }
public static function loadMedia( $model , ...$collections ) public static function loadMedia($model, ...$collections) {
{ $model->loadMissing(['media' => function($query) use ($collections) {
$model->loadMissing( [ 'media' => function ( $query ) use ( $collections ) { $query->select('*');
$query->select( '*' ); if (! empty($collections)) {
if ( ! empty( $collections ) ) { $query->whereIn('collection_name', $collections);
$query->whereIn( 'collection_name' , $collections );
} }
} ] ); }]);
if ( $model->media ) { if ($model->media) {
foreach ( $model->media as $media ) { foreach ($model->media as $media) {
$media->address = $media->getUrl(); $media->address = $media->getUrl();
} }
} }