/**
  * Estabele a relação de seguir um perfil
  * @param  String 	    $id 		Id do perfil a ser seguido
  * @return JSON     	Resultado da requisicao
  */
 public function getFollowperfil($id)
 {
     //$entidadeAtiva do usuario logado.
     $entidadeAtiva = Auth::user()->entidadeAtiva;
     $perfil = Perfil::findOrFail($id);
     //se ja nao seguir esse perfil
     if (!$entidadeAtiva->followPerfil->find($perfil->id)) {
         $entidadeAtiva->followPerfil()->attach($perfil->id);
         $entidadeAtiva->push();
         //Criando nova notificacao
         $novaNotificacao = Notificacao::create(['titulo' => 'Voce tem um novo seguidor', 'mensagem' => $entidadeAtiva->apelido . ' agora está te seguindo e vai receber seus posts', 'tipo_notificacao' => 'seguidor', 'url' => $entidadeAtiva->getUrl()]);
         //associando a entidadeAtiva com o from e o $perfil seguido como target
         $entidadeAtiva->fromNotificacoes()->save($novaNotificacao);
         $perfil->notificacoes()->save($novaNotificacao);
         $novaNotificacao->push();
     }
     $return['success'] = true;
     return json_encode($return);
 }
 /**
  * Metodo para se recuperar a entidade que tem o $id passado por parametro
  * OBS: necessita do input hidden tipoEntidade;
  */
 public function getEntidade($id)
 {
     $tipoEntidade = Input::get('tipoEntidade', '');
     switch ($tipoEntidade) {
         case 'App\\Perfil':
             $entidade = Perfil::findOrFail($id);
             break;
         case 'App\\Ong':
             $entidade = Ong::findOrFail($id);
             break;
         case 'App\\Empresa':
             $entidade = Empresa::findOrFail($id);
             break;
         case 'App\\Post':
             $entidade = Post::findOrFail($id);
             break;
         default:
             $entidade = '';
             // Se nao encontrar nenhuma entidade, quebrar?
             // App::abort(500, 'Entidade nao identificada');
             break;
     }
     return $entidade ? $entidade : false;
 }
Exemple #3
0
 /**
  * Retorna uma Collection de Perfil amigos em comum se existirem
  * @param  $id              Id do perfil em questao
  * @return  Collection de Perfil
  */
 public function getAmigosEmComum($id)
 {
     $perfil = Perfil::findOrFail($id);
     $amigos = $this->amigos;
     $amigosDessePerfil = $perfil->amigos;
     if ($amigos && $amigosDessePerfil) {
         $amigosEmComum = $amigosDessePerfil->intersect($amigos);
     }
     return $amigosEmComum;
 }
 /**
  * Recebe por POST o $id do Perfil e faz update das informações do perfil
  */
 public function postContemais($id, QuizConteMaisRequest $request)
 {
     $perfil = Perfil::findOrFail($id);
     $perfil->update($request->all());
     $perfil->push();
 }
 /**
  * Seta o like da entidadeAtiva atual para um post específico
  *
  * @param  [integer] id do post
  * @return
  */
 public function getSetapoiador($id)
 {
     $perfil = Perfil::findOrFail($id);
     if (Auth::user()->isAdmin()) {
         if ($perfil->apoiador == 'B') {
             $perfil->apoiador = null;
         } else {
             $perfil->apoiador = 'B';
         }
         $perfil->push();
     }
     return 'success';
 }