Example #1
0
 /**
  * Estabele a relação de seguir uma ong
  * @param  String 	    $id 		Id da ong a ser seguida
  * @return JSON     	Resultado da requisicao
  */
 public function getFollowong($id)
 {
     //$entidadeAtiva do usuario logado.
     $entidadeAtiva = Auth::user()->entidadeAtiva;
     $ong = Ong::findOrFail($id);
     //se ja nao seguir essa ong
     if (!$entidadeAtiva->followOng->find($ong->id)) {
         $entidadeAtiva->followOng()->attach($ong->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 $ong seguido como target
         $entidadeAtiva->fromNotificacoes()->save($novaNotificacao);
         $ong->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;
 }
 /**
  * Metodo para filtrar Vagas por POST,
  * @param categoriaOng  -> id da categoria a ser usada no filtro
  * @param nome          -> nome a ser usado no filtro
  * @param cidade_id      -> id da cidade a ser usado no filtro
  */
 public function postFiltrarvagas()
 {
     $categoriaVaga = Request::get('filtro_categoria');
     $cidade_id = Request::get('filtro_cidade');
     $filtro_ong = Request::get('filtro_ong');
     $categorias = Vaga::getCategoriasComVagas();
     $cidades = Vaga::getCidadesComVagas();
     $ongs = Vaga::getOngsComVagas();
     $causas = new Collection();
     //Montando array de ongs para select
     $ongsArray = array(null => 'Projeto');
     foreach ($ongs as $ong) {
         $ongsArray[$ong->id] = $ong->nome;
     }
     $ongs = $ongsArray;
     //Montando array de cidades para select
     $cidadesArray = array(null => 'Cidade');
     foreach ($cidades as $cidade) {
         $cidadesArray[$cidade->id] = $cidade->nome;
     }
     $cidades = $cidadesArray;
     //Montando array de categorias para select
     $categoriasArray = array(null => 'Categoria');
     foreach ($categorias as $categoria) {
         $categoriasArray[$categoria->id] = $categoria->nomeTraduzido;
     }
     $categorias = $categoriasArray;
     //Filtrando resultados pelas categorias
     if ($categoriaVaga && $categoriaVaga != "null") {
         $vagasByCategoria = CategoriaVaga::findOrFail($categoriaVaga)->vagas;
         $causas = $causas->merge($vagasByCategoria);
     }
     //Filtrando resultados por Cidade
     if ($cidade_id) {
         $vagasByCidade = Cidade::findOrFail($cidade_id)->vagas;
         //Se ja tiver filtrado, entao interseccionar os
         //resultados para maior relevancia
         if (count($causas)) {
             $causas = $causas->intersect($vagasByCidade);
         } else {
             $causas = $causas->merge($vagasByCidade);
         }
     }
     if ($filtro_ong) {
         $causasByOng = Ong::findOrFail($filtro_ong)->vagas;
         if (count($causas)) {
             $causas = $causas->intersect($causasByOng);
         } else {
             $causas = $causas->merge($causasByOng);
         }
     }
     if (!$cidade_id && (!$categoriaVaga || $categoriaVaga == "null") && !$filtro_ong) {
         $causas = Vaga::all();
     }
     return view('cuidar.vagas', compact('causas', 'categorias', 'cidades', 'ongs'));
 }
Example #4
0
 /**
  * Deleta a Ong.
  * @param $id -> id da ong a ser deletada
  */
 public function destroy($id)
 {
     $ong = Ong::findOrFail($id);
     $user = Auth::user();
     //Se a Ong a ser deletada pertencer ao usuario logado.
     if ($user->id == $ong->user->id) {
         $ong->delete();
     } else {
         App::abort(403, 'Voce nao tem permissão para deletar uma vaga que não te pertence.');
     }
     return view('home');
 }