*/ class ScheduleController extends AbstractApiController { /** * Return all schedules. * * @return \Illuminate\Http\JsonResponse */ public function index() { $schedule = Schedule::whereRaw('1 = 1'); if ($sortBy = Binput::get('sort')) { $direction = Binput::has('order') && Binput::get('order') == 'desc'; $schedule->sort($sortBy, $direction); } $schedule = $schedule->paginate(Binput::get('per_page', 20)); return $this->paginator($schedule, Request::instance()); } /** * Return a single schedule. * * @param \CachetHQ\Cachet\Models\Schedule $schedule * * @return \Illuminate\Http\JsonResponse */ public function show(Schedule $schedule) { return $this->item($schedule); } /** * Create a new schedule. * * @return \Illuminate\Http\JsonResponse */ public function store() { try { $schedule = dispatch(new CreateScheduleCommand( Binput::get('name'), Binput::get('message', null, false, false), Binput::get('status'), Binput::get('scheduled_at'), Binput::get('completed_at'), Binput::get('components', []) )); } catch (QueryException $e) { throw new BadRequestHttpException(); } return $this->item($schedule); } /** * Update a schedule. * * @param \CachetHQ\Cachet\Models\Schedule $schedule * * @return \Illuminate\Http\JsonResponse */ public function update(Schedule $schedule) { try { $schedule = dispatch(new UpdateScheduleCommand( $schedule, Binput::get('name'), Binput::get('message'), Binput::get('status'), Binput::get('scheduled_at'), Binput::get('completed_at'), Binput::get('components', []) )); } catch (QueryException $e) { throw new BadRequestHttpException(); } return $this->item($schedule); } /** * Delete a schedule. * * @param \CachetHQ\Cachet\Models\Schedule $schedule * * @return \Illuminate\Http\JsonResponse */ public function destroy(Schedule $schedule) { try { dispatch(new DeleteScheduleCommand($schedule)); } catch (QueryException $e) { throw new BadRequestHttpException(); } return $this->noContent(); } }