<?php namespace App\Modules\Service\Permission; use App\Modules\Models\Permission\Permission; use App\Modules\Service\Service; use Carbon\Carbon; use Illuminate\Support\Facades\Auth; use Illuminate\Support\Facades\DB; use Yajra\DataTables\Facades\DataTables; use Spatie\Permission\Models\Permission as SepPermission; class PermissionService extends Service { protected $Permission; public function __construct(Permission $Permission) { $this->Permission = $Permission; } /*For DataTable*/ public function getAllData() { $query = $this->Permission->whereIsDeleted('no'); return DataTables::of($query) ->addIndexColumn() // ->editColumn('brand',function(Permission $Permission) { // if($Permission->brand->name) { // return $Permission->brand->name; // } // }) // ->editColumn('category',function(Permission $Permission) { // if($Permission->category->name) { // return $Permission->category->name; // } // }) ->editColumn('visibility',function(Permission $Permission) { if($Permission->visibility == 'visible'){ return '<span class="badge text-bg-info">Visible</span>'; } else { return '<span class="badge text-bg-danger">In-Visible</span>'; } }) ->editColumn('availability',function(Permission $Permission) { if($Permission->availability == 'available'){ return '<span class="badge text-bg-info">Available</span>'; } else { return '<span class="badge text-bg-danger">Un-Available</span>'; } }) ->editColumn('status',function(Permission $Permission) { if($Permission->status == 'active'){ return '<span class="badge text-bg-info">Active</span>'; } else { return '<span class="badge text-bg-danger">In-Active</span>'; } }) ->editColumn('image',function(Permission $Permission) { if(isset($Permission->image_path)){ return '<img src="http://127.0.0.1:8000/'.($Permission->image_path).'" width="100px">'; } else { ; } }) ->editcolumn('actions',function(Permission $Permission) { $editRoute = route('permission.edit',$Permission->id); $deleteRoute = route('permission.destroy',$Permission->id); return getTableHtml($Permission,'actions',$editRoute,$deleteRoute); return getTableHtml($Permission,'image'); })->rawColumns(['visibility','availability','status','image'])->make(true); } public function create(array $data) { try { /* $data['keywords'] = '"'.$data['keywords'].'"';*/ //dd($data); // DB::table('permissions')->insert(['guard_name' => 'web']); $Permission = SepPermission::create($data); return $Permission; } catch (Exception $e) { return null; } } /** * Paginate all Permission * * @param array $filter * @return Collection */ public function paginate(array $filter = []) { $filter['limit'] = 25; return $this->Permission->orderBy('id','DESC')->whereIsDeleted('no')->paginate($filter['limit']); } /** * Get all Permission * * @return Collection */ public function all() { return $this->Permission->whereIsDeleted('no')->all(); } /** * Get all Permissions with supervisor type * * @return Collection */ public function find($PermissionId) { try { return $this->Permission->whereIsDeleted('no')->find($PermissionId); } catch (Exception $e) { return null; } } public function update($PermissionId, array $data) { try { $data['last_updated_by']= Auth::user()->id; $Permission= $this->Permission->find($PermissionId); $Permission = $Permission->update($data); //$this->logger->info(' created successfully', $data); return $Permission; } catch (Exception $e) { //$this->logger->error($e->getMessage()); return false; } } /** * Delete a Permission * * @param Id * @return bool */ public function delete($PermissionId) { try { $data['last_deleted_by']= Auth::Permission()->id; $data['deleted_at']= Carbon::now(); $Permission = $this->Permission->find($PermissionId); $data['is_deleted']='yes'; return $Permission = $Permission->update($data); } catch (Exception $e) { return false; } } /** * write brief description * @param $name * @return mixed */ public function getByName($name){ return $this->Permission->whereIsDeleted('no')->whereName($name); } public function getBySlug($slug){ return $this->Permission->whereIsDeleted('no')->whereSlug($slug)->first(); } function uploadFile($file) { if (!empty($file)) { $this->uploadPath = 'uploads/Permission'; return $fileName = $this->uploadFromAjax($file); } } public function __deleteImages($subCat) { try { if (is_file($subCat->image_path)) unlink($subCat->image_path); if (is_file($subCat->thumbnail_path)) unlink($subCat->thumbnail_path); } catch (\Exception $e) { } } public function updateImage($PermissionId, array $data) { try { $Permission = $this->Permission->find($PermissionId); $Permission = $Permission->update($data); return $Permission; } catch (Exception $e) { //$this->logger->error($e->getMessage()); return false; } } public function getPermissionByGroupWise() { $groupPermissions = $this->Permission->all(); return $groupPermissions; } }