<?php namespace App\Repositories; abstract class Repository { protected $model; abstract public function get(); /** * Display specified resource. * * @param varchar $with * @param uuid $id * @return \Illuminate\Http\Response */ public function findId($id = null, $with = null) { return $this->model ->when($with, function ($query) use ($with) { return $query->with($with); }) ->when($id, function ($query) use ($id) { return $query->where('id', $id); }) ->first(); } /** * Store a newly created resource in storage. * * @param \Illuminate\Http\Request $request * @return \Illuminate\Http\Response */ public function store($request) { $request['userid_created'] = auth()->user()->id; return $this->model->create($request); } /** * Update the specified resource in storage. * * @param \Illuminate\Http\Request $request * @param Model $model * @return \Illuminate\Http\Response */ public function update($request, $model) { $request['userid_updated'] = auth()->user()->id; return $model->update($request); } /** * Show the specified resource in storage. * * @param uuid $id * @return \Illuminate\Http\Response */ public function show($id) { return $this->model->where('user_id', $id)->first(); } /** * Remove the specified resource from storage. * * @param Model $model * @return \Illuminate\Http\Response */ public function destroy($model) { return $model->delete(); } }