/** * Deleta o plano * $request e $response usam interface psr7 * $args contém os argumentos informados na rota * * @param Slim\Http\Request $request * @param Slim\Http\Response $response * @param array $args * @return void|Slim\Http\Response */ public function delete($request, $response, $args) { $id = $args['id']; $validations = [v::intVal()->validate($id)]; if ($this->validate($validations) === false) { return $response->withStatus(400); } else { $plano = Models\Plano::with('relationUsuarios')->find($id); if ($plano) { $usuarios = $plano->relationUsuarios->all(); if ($usuarios) { $status = 403; echo $this->error('delete#planos{id}', $request->getUri()->getPath(), $status, 'FK_CONSTRAINT_ABORT'); return $response->withStatus($status); } else { $plano->delete(); } } else { $status = 404; echo $this->error('delete#planos{id}', $request->getUri()->getPath(), $status); return $response->withStatus($status); } } }