paginator($metrics, $request); } /** * Get a single metric. * * @param \CachetHQ\Cachet\Models\Metric $metric * * @return \CachetHQ\Cachet\Models\Metric */ 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 \CachetHQ\Cachet\Models\Metric */ public function postMetrics() { try { $metric = Metric::create(Binput::all()); } catch (Exception $e) { throw new BadRequestHttpException(); } if ($metric->isValid()) { return $this->item($metric); } throw new BadRequestHttpException(); } /** * Update an existing metric. * * @param \CachetHQ\Cachet\Models\Metric $metric * * @return \CachetHQ\Cachet\Models\Metric */ public function putMetric(Metric $metric) { $metric->update(Binput::all()); if ($metric->isValid('updating')) { return $this->item($metric); } throw new BadRequestHttpException(); } /** * Delete an existing metric. * * @param \CachetHQ\Cachet\Models\Metric $metric * * @return \Illuminate\Http\JsonResponse */ public function deleteMetric(Metric $metric) { $metric->delete(); return $this->noContent(); } }