Beispiel #1
0
 /**
  * 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
         }
     }
 }
Beispiel #2
0
 /**
  * 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);
         }
     }
 }