/** * Inclui usuário * $request e $response usam interface psr7 * * @param Slim\Http\Request $request * @param Slim\Http\Response $response * @return Slim\Http\Response */ public function set($request, $response) { $vars = $this->getVars(); $validations = $this->validatePostVars($vars); if ($this->validate($validations) === false) { return $response->withStatus(400); } else { $email_existe = Models\Usuario::where('usu_email', $vars['email'])->get()->first(); $cpf_existe = Models\Usuario::where('usu_cpf', $vars['cpf'])->get()->first(); $clube_existe = Models\Clube::where('clb_id', $vars['clube'])->get()->first(); $plano_existe = Models\Plano::where('pln_id', $vars['plano'])->get()->first(); if ($vars['titular']) { $titular_existe = Models\Usuario::where('usu_titular', $vars['titular'])->get()->first(); } if (!$clube_existe || !$plano_existe || $vars['titular'] && !$titular_existe) { return $this->castForbidden($request, $response, 'FK_CONSTRAINT_MISS'); } elseif ($email_existe || $cpf_existe) { return $this->castForbidden($request, $response, 'UNIQUE_FIELDS_ALREADY_TAKEN'); } else { $usuario = new Models\Usuario(); $usuario->usu_nome = $vars['nome']; $usuario->usu_sobrenome = $vars['sobrenome']; $usuario->usu_cpf = $vars['cpf']; $usuario->usu_email = $vars['email']; $usuario->usu_nascimento = $vars['nascimento']; $usuario->usu_telefone = $vars['telefone']; $usuario->usu_endereco = $vars['endereco']; $usuario->usu_clube = $vars['clube']; $usuario->usu_plano = $vars['plano']; if ($vars['titular']) { $usuario->usu_titular = $vars['titular']; // Define o usuário como dependente } $usuario->save(); $path = $request->getUri()->getPath() . '/' . $usuario->usu_id; echo $this->resource($path); // retorna a localização do resource conforme spec para REST return $response->withStatus(201); // retorna status 201 quando resource é criado conforme spec para REST } } }
/** * Deleta o clube * $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 { $clube = Models\Clube::with('relationUsuarios')->find($id); if ($clube) { $usuarios = $clube->relationUsuarios->all(); if ($usuarios) { $status = 403; echo $this->error('delete#clubes{id}', $request->getUri()->getPath(), $status, 'FK_CONSTRAINT_ABORT'); return $response->withStatus($status); } else { $clube->delete(); } } else { $status = 404; echo $this->error('delete#clubes{id}', $request->getUri()->getPath(), $status); return $response->withStatus($status); } } }