/** * Estabele a relação de seguir uma empresa * @param String $id Id da empresa a ser seguida * @return JSON Resultado da requisicao */ public function getFollowempresa($id) { //$entidadeAtiva do usuario logado. $entidadeAtiva = Auth::user()->entidadeAtiva; $empresa = Empresa::findOrFail($id); //se ja nao seguir essa empresa if (!$entidadeAtiva->followEmpresa->find($empresa->id)) { $entidadeAtiva->followEmpresa()->attach($empresa->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 $empresa seguido como target $entidadeAtiva->fromNotificacoes()->save($novaNotificacao); $empresa->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; }
/** * Atualiza a Empresa e a prettyUrl da empresa * @param Integer $id Id da Empresa * @param Requests\EditarEmpresaRequest $request Request personalizado da Empresa (trata tamanho do input) * @return View View da Empresa modificada */ public function update($id, Requests\EditarEmpresaRequest $request) { $empresa = Empresa::findOrFail($id); $empresa->update($request->all()); //Salvando foto da empresa; $file = Input::file('image'); if ($file) { $destinationPath = public_path() . '/uploads/'; $filename = self::formatFileNameWithUserAndTimestamps($file->getClientOriginalName()); $upload_success = $file->move($destinationPath, $filename); if ($upload_success) { /* Settando tipo da foto atual para null */ $currentAvatar = $empresa->avatar; $currentAvatar->tipo = null; $currentAvatar->save(); $foto = new Foto(['path' => $destinationPath . $filename, 'tipo' => 'avatar']); $empresa->fotos()->save($foto); } } //Atualiza a url correspondente $empresa->prettyUrl()->update(['url' => $request->url]); return view('empresa.show', compact('empresa')); }