Files
wticreatorstudio/Modules/MediaManagerPlus/Repositories/MediaManagerRepository.php
T
2024-02-12 22:54:20 -05:00

74 lines
2.8 KiB
PHP

<?php
namespace Modules\MediaManagerPlus\Repositories;
use App\Models\MediaManager;
use Illuminate\Support\Facades\DB;
use Modules\MediaManagerPlus\Traits\MediaStore;
class MediaManagerRepository
{
use MediaStore;
public function getFiles($data){
$query = MediaManager::query();
$seller_id = getParentSellerId();
$query = $query->where('user_id', $seller_id);
if(isset($data['search']) && !empty($data['search'])){
$slugs = explode(' ', $data['search']);
if(isset($data['sort']) && $data['sort'] != 'newest'){
if($data['sort'] == 'oldest'){
$query = $query->orderBy('id','asc')->where(function($q) use($slugs){
foreach($slugs as $slug){
$q = $q->orWhere('orginal_name', 'LIKE', "%{$slug}%");
}
return $q;
});
}elseif($data['sort'] == 'smallest'){
$query = $query->orderBy('size')->where(function($q) use($slugs){
foreach($slugs as $slug){
$q = $q->orWhere('orginal_name', 'LIKE', "%{$slug}%");
}
return $q;
});
}
elseif($data['sort'] == 'bigest'){
$query = $query->orderByDesc('size')->where(function($q) use($slugs){
foreach($slugs as $slug){
$q = $q->orWhere('orginal_name', 'LIKE', "%{$slug}%");
}
return $q;
});
}
}
$query = $query->orderByDesc('id')->where(function($q) use($slugs){
foreach($slugs as $slug){
$q = $q->orWhere('orginal_name', 'LIKE', "%{$slug}%");
}
return $q;
});
}else{
if(isset($data['sort']) && $data['sort'] != 'newest'){
if($data['sort'] == 'oldest'){
$query = $query->orderBy('id');
}elseif($data['sort'] == 'smallest'){
$query = $query->orderBy('size');
}
elseif($data['sort'] == 'bigest'){
$query = $query->orderByDesc('size');
}
}
$query = $query->orderByDesc('id');
}
return $query->paginate(18);
}
public function store($request){
$file_info = $this->mediaUpload($request->file);
$file_info['user_id'] = getParentSellerId();
$data = DB::table('media_managers')->insert($file_info);
return $data;
}
}