Files
cssd-back/app/Http/Controllers/CycleController.php
T
2019-08-21 14:29:25 +04:30

88 lines
2.9 KiB
PHP

<?php
namespace App\Http\Controllers;
use Illuminate\Http\Request;
use App\Http\Requests\StoreCycleRequest;
use App\Cycle;
class CycleController extends Controller
{
public function index(Request $request)
{
$Cycles = Cycle::when($request->has('name') && $request->name, function($query) use($request){
$query->where('name', 'LIKE', '%'.$request->name.'%');
})
->when($request->has('result') && $request->result, function($query) use($request){
$query->where('result', $request->result);
})
->when($request->has('unique_id') && $request->unique_id, function($query) use($request){
$query->where('unique_id', $request->unique_id);
})
->with('user')->paginate(10);
return \MessageResponse::data($Cycles);
}
public function create()
{
}
public function show(Cycle $Cycle)
{
$Cycle->load('user', 'packages');
return \MessageResponse::data($Cycle);
}
public function store(StoreCycleRequest $request)
{
$UniqueID = substr(base_convert(sha1(uniqid(mt_rand())), 16, 36), 0, 10);
$CycleData = [
'name' => $request->name,
'unique_id' => $UniqueID,
'result' => $request->result,
'description' => $request->description,
'user_id' => auth('api')->user()->id,
'verified' => 'NotVerified',
];
$CycleObj = Cycle::create($CycleData);
$CycleObj->packages()->attach($request->packages);
return \MessageResponse::success(trans('messages.success'));
}
public function edit(Cycle $Cycle)
{
$Cycle->load('user', 'packages');
return \MessageResponse::data($Cycle);
}
public function update(StoreCycleRequest $request, Cycle $Cycle)
{
$Cycle->update($request->except(['packages']));
$Cycle->packages()->sync($request->packages);
return \MessageResponse::success(trans('messages.success'));
}
public function destroy(Cycle $Cycle)
{
if (auth('api')->user()->cant('delete', $Cycle)) {
return \MessageResponse::error(trans('messages.access_denied'));
}
if(count($Cycle->packages))
{
$Cycle->packages()->detach();
}
$Cycle->delete();
return \MessageResponse::success(trans('messages.success'));
}
public function verifyCycle(Cycle $Cycle)
{
if (auth('api')->user()->cant('verifyCycle', $Cycle)) {
return \MessageResponse::error(trans('You dont have permission'));
}
if ($Cycle->verified == 'Verified') {
$Cycle->verified = 'NotVerified';
} else {
$Cycle->verified = 'Verified';
}
$Cycle->save();
$Cycle = $Cycle->load('user');
return \MessageResponse::success(trans('messages.success'), null, $Cycle);
}
}