/**
  * seta o like da entidadeAtiva atual pra um comentario específico
  *
  * @param  [integer] id do comentario
  * @return
  */
 public function getLikecomentario($id)
 {
     //Verifica se o comentario existe
     $comentario = Comentario::findOrFail($id);
     //Testo se o usuário está logado
     $user = Auth::user();
     $entidadeAtiva = $user->entidadeAtiva;
     //Se já tiver dado like no comentario com esse id,
     //consigo encontralo pelo Collention->find()
     $alreadyLiked = $entidadeAtiva->likeComentario->find($comentario->id);
     if (!$alreadyLiked) {
         //Salvando relação (Dando o like finalmente!)
         $entidadeAtiva->likeComentario()->attach($comentario->id);
         // Aumenta a relevancia do post
         $comentario->post->relevancia += $comentario->post->relevancia_rate;
         $comentario->post->push();
         //Só levantar uma notificacao se o like for em um
         //comentario que nao seja seu ou de alguma de suas entidades
         if ($entidadeAtiva->user->id != $comentario->author->user->id) {
             //Criando nova notificacao
             $novaNotificacao = Notificacao::create(['titulo' => 'Curtiram seu comentario', 'mensagem' => $entidadeAtiva->apelido . ' curtiu seu comentario', 'tipo_notificacao' => 'like_comentario', 'url' => $comentario->post->url]);
             //associando a entidadeAtiva com o from e o autor do comentario likeado como target
             $entidadeAtiva->fromNotificacoes()->save($novaNotificacao);
             $comentario->author->notificacoes()->save($novaNotificacao);
             $novaNotificacao->push();
         }
     } else {
         //se ja estiver dando like, remover like
         $entidadeAtiva->likeComentario()->detach($comentario->id);
     }
     // Retorna a quantidade de likes para utilizar na view
     return $comentario->getQuantidadeLikes();
 }
 public function destroy($id)
 {
     $comentario = Comentario::findOrFail($id);
     if ($comentario->delete()) {
         return redirect()->action('BackendController@index')->with('statusComentario', 'Comentário exlcuído');
     }
 }
예제 #3
0
 public function save(Request $request)
 {
     $obra = Obra::findOrFail($request->input('obra'));
     $denuncia = new Denuncia();
     $denuncia->user()->associate(Auth::user());
     $denuncia->obra()->associate($obra);
     $denuncia->name = $request->input('denuncia');
     if ($request->input('comentario')) {
         $comentario = Comentario::findOrFail($request->input('comentario'));
         $denuncia->comentario()->associate($comentario);
     }
     $denuncia->save();
     return Redirect::to("/view/{$obra->id}")->withMessage('mensagem', 'Sua denúncia será analisada!');
 }