/** * 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; }
/** * 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'; }