/home/mip/mip/app/Modules/Client/Repositories/Pages/PagesRepository.php
<?php
namespace QxCMS\Modules\Client\Repositories\Pages;
use Illuminate\Support\Str;
use QxCMS\Modules\AbstractRepository;
use QxCMS\Modules\Client\Models\Posts\Posts;
use QxCMS\Modules\Client\Models\Settings\UserLogs\UserLogs as Log;
use Illuminate\Http\Request;
class PagesRepository extends AbstractRepository implements PagesRepositoryInterface
{
protected $model;
protected $log;
protected $module_id = 12;
function __construct(Posts $model, Log $log)
{
$this->model = $model;
$this->log = $log;
}
public function create(Request $request)
{
$user = auth()->user();
$model = $this->model->fill($request->all());
$model->author_id = $user->id;
$model->slug = Str::slug($request['title']);
$model->post_type = 'Page';
$model->save();
$this->log->saveLog(['action' => 'Create', 'module_id' => $this->module_id, 'user_id' => $user->id, 'data_id' => $model->id]);
return $model;
}
public function update($id, Request $request)
{
$model = $this->findById($id);
$user = auth()->user();
$model->fill($request->all());
$model->slug = Str::slug($request['title']);
if(count($model->getDirty()) > 0) {
$model->save();
session()->flash('success', 'Successfully edited.');
$this->log->saveLog(['action' => 'Update', 'module_id' => $this->module_id, 'user_id' => $user->id, 'data_id' => $model->id]);
}
return $model;
}
public function delete($id)
{
$model = $this->findById($id);
$user = auth()->user();
$model->delete();
$this->log->saveLog(['action' => 'Delete', 'module_id' => $this->module_id, 'user_id' => $user->id, 'data_id' => $model->id]);
return $this->getAjaxResponse('success', 'Successfully deleted.');
}
public function pagesList($id)
{
return
$this
->model
->where('post_type', '=', 'Page')
->where('id', '<>', $id)
->orderBy('title','asc')
->pluck('title', 'id')
->toArray();
}
}