paginator($metrics, $request); } /** * Get a single metric. * * @param \CachetHQ\Cachet\Models\Metric $metric * * @return \Illuminate\Http\JsonResponse */ public function getMetric(Metric $metric) { return $this->item($metric); } /** * Get all metric points. * * @param \CachetHQ\Cachet\Models\Metric $metric * * @return \Illuminate\Database\Eloquent\Collection */ public function getMetricPoints(Metric $metric) { return $this->collection($metric->points); } /** * Create a new metric. * * @return \Illuminate\Http\JsonResponse */ public function postMetrics() { try { $metric = $this->dispatch(new AddMetricCommand( Binput::get('name'), Binput::get('suffix'), Binput::get('description'), Binput::get('default_value'), Binput::get('calc_type', 0), Binput::get('display_chart'), Binput::get('places') )); } catch (Exception $e) { throw new BadRequestHttpException(); } return $this->item($metric); } /** * Update an existing metric. * * @param \CachetHQ\Cachet\Models\Metric $metric * * @return \Illuminate\Http\JsonResponse */ public function putMetric(Metric $metric) { try { $metric = $this->dispatch(new UpdateMetricCommand( $metric, Binput::get('name'), Binput::get('suffix'), Binput::get('description'), Binput::get('default_value'), Binput::get('calc_type', 0), Binput::get('display_chart'), Binput::get('places') )); } catch (Exception $e) { throw new BadRequestHttpException(); } return $this->item($metric); } /** * Delete an existing metric. * * @param \CachetHQ\Cachet\Models\Metric $metric * * @return \Illuminate\Http\JsonResponse */ public function deleteMetric(Metric $metric) { $this->dispatch(new RemoveMetricCommand($metric)); return $this->noContent(); } }