Пример #1
0
 private function _salvarNovoCurso()
 {
     if (!$this->form_validation->run()) {
         $json = create_json_feedback(false, validation_errors_json());
     } else {
         try {
             $segmentoDao = WeLearn_DAO_DAOFactory::create('SegmentoDAO');
             $usuarioDao = WeLearn_DAO_DAOFactory::create('UsuarioDAO');
             $dadosNovoCurso = $this->input->post();
             $segmentoId = $dadosNovoCurso['segmento'];
             $dadosNovoCurso['segmento'] = $segmentoDao->recuperar($segmentoId);
             $dadosNovoCurso['criador'] = $usuarioDao->criarGerenciadorPrincipal($this->autenticacao->getUsuarioAutenticado());
             $dadosNovoCurso['configuracao'] = $this->_cursoDao->criarConfiguracao($dadosNovoCurso);
             //Gerando e salvando imagem, caso houver.
             if (isset($dadosNovoCurso['imagem']) && is_array($dadosNovoCurso['imagem'])) {
                 $dadosNovoCurso['imagem'] = $this->_salvarImagem($dadosNovoCurso['imagem']);
             }
             $novoCurso = $this->_cursoDao->criarNovo($dadosNovoCurso);
             $this->_cursoDao->salvar($novoCurso);
             if ($dadosNovoCurso['acao'] == 'criarFromSugestao') {
                 $sugestaoDao = WeLearn_DAO_DAOFactory::create('SugestaoCursoDAO');
                 $sugestao = $sugestaoDao->recuperar($dadosNovoCurso['sugestao']);
                 $sugestao->registrarCriacaoCurso($novoCurso, $sugestaoDao);
                 //Enviar notificação aos usuarios
                 $notificadorBatch = new WeLearn_Notificacoes_NotificadorCassandraBatch();
                 $notificadorTempoReal = new WeLearn_Notificacoes_NotificadorTempoReal();
                 //notificar criador
                 $notificacao = new WeLearn_Notificacoes_NotificacaoSugestaoCursoAceitaCriador();
                 $notificacao->setSugestao($sugestao);
                 $notificacao->setCursoCriado($novoCurso);
                 $notificacao->setDestinatario($sugestao->getCriador());
                 $notificacao->adicionarNotificador($notificadorBatch);
                 $notificacao->adicionarNotificador($notificadorTempoReal);
                 $notificacao->notificar();
                 //Notificar votantes
                 try {
                     $idsVotantes = $sugestaoDao->recuperarTodosIdsVotantes($sugestao);
                 } catch (cassandra_NotFoundException $e) {
                     $idsVotantes = array();
                 }
                 foreach ($idsVotantes as $idVotante) {
                     $votante = new WeLearn_Usuarios_Usuario();
                     $votante->setId($idVotante);
                     $notificacao = new WeLearn_Notificacoes_NotificacaoSugestaoCursoAceitaVotante();
                     $notificacao->setSugestao($sugestao);
                     $notificacao->setCursoCriado($novoCurso);
                     $notificacao->setDestinatario($votante);
                     $notificacao->adicionarNotificador($notificadorBatch);
                     $notificacao->adicionarNotificador($notificadorTempoReal);
                     $notificacao->notificar();
                 }
                 //fim notificação.
             }
             $notificacoesFlash = create_notificacao_json('sucesso', 'O novo curso foi criado com sucesso e você é o Gerenciador Principal!' . '<br /> Comece a Alterar as configurações, editar o conteúdo e convidar alunos em potencial.', 5000);
             $this->session->set_flashdata('notificacoesFlash', $notificacoesFlash);
             $extraJson = Zend_Json::encode(array('idNovoCurso' => $novoCurso->getId()));
             $json = create_json_feedback(true, '', $extraJson);
         } catch (Exception $e) {
             log_message('error', 'Ocorreu um erro ao criar um curso: ' . create_exception_description($e));
             $error = create_json_feedback_error_json('Ocorreu um erro desconhecido, já estamos verificando. Tente novamente mais tarde.');
             $json = create_json_feedback(false, $error);
         }
     }
     return $json;
 }
Пример #2
0
 /**
  * @param WeLearn_Usuarios_Usuario $usuario
  * @return array
  */
 private function _extrairDadosUsuarioParaArray(WeLearn_Usuarios_Usuario $usuario)
 {
     $usuarioArray = array('id' => $usuario->getId(), 'nome' => $usuario->getNome(), 'sobrenome' => $usuario->getSobrenome(), 'email' => $usuario->getEmail(), 'nomeUsuario' => $usuario->getNomeUsuario(), 'senha' => $usuario->getSenha(), 'dataCadastro' => $usuario->getDataCadastro(), 'persistido' => $usuario->isPersistido());
     if ($usuario->getImagem()) {
         $usuarioArray['imagem'] = $usuario->getImagem();
     }
     if ($usuario->getDadosPessoais()) {
         $usuarioArray['dadosPessoais'] = $usuario->getDadosPessoais();
     }
     if ($usuario->getDadosProfissionais()) {
         $usuarioArray['dadosProfissionais'] = $usuario->getDadosProfissionais();
     }
     if ($usuario->getSegmentoInteresse()) {
         $usuarioArray['segmentoInteresse'] = $usuario->getSegmentoInteresse();
     }
     if ($usuario->getConfiguracao()) {
         $usuarioArray['configuracao'] = $usuario->getConfiguracao();
     }
     return $usuarioArray;
 }
Пример #3
0
 /**
  * @param WeLearn_Cursos_Conteudo_Pagina $pagina
  * @param WeLearn_Usuarios_Usuario $usuario
  * @return WeLearn_DTO_IDTO
  */
 public function recuperarPorUsuario(WeLearn_Cursos_Conteudo_Pagina $pagina, WeLearn_Usuarios_Usuario $usuario)
 {
     $paginaUUID = UUID::import($pagina->getId());
     $column = $this->_cf->get($paginaUUID->bytes, array($usuario->getId()));
     return $this->_criarFromCassandra($column, $pagina, $usuario);
 }
Пример #4
0
 /**
  * @param WeLearn_Usuarios_Usuario $usuario
  * @param WeLearn_Cursos_Enquetes_Enquete $enquete
  * @return bool
  */
 public function usuarioJaVotouEnquete(WeLearn_Usuarios_Usuario $usuario, WeLearn_Cursos_Enquetes_Enquete $enquete)
 {
     try {
         $enqueteUUID = CassandraUtil::import($enquete->getId());
         $this->_cf->get($enqueteUUID->bytes, array($usuario->getId()));
         return true;
     } catch (cassandra_NotFoundException $e) {
         return false;
     }
 }
Пример #5
0
 private function _criarFromCassandra(array $column, WeLearn_Usuarios_Usuario $remetentePadrao = null, WeLearn_Usuarios_Usuario $destinatariooPadrao = null)
 {
     // verifica qual usuario é o remetente
     if ($column['remetente'] == $remetentePadrao->getId()) {
         $column['remetente'] = $remetentePadrao;
         $column['destinatario'] = $destinatariooPadrao;
     } else {
         $column['remetente'] = $destinatariooPadrao;
         $column['destinatario'] = $remetentePadrao;
     }
     $mensagem = $this->criarNovo();
     $mensagem->fromCassandra($column);
     return $mensagem;
 }
Пример #6
0
 /**
  * @param array|null $dados
  * @return WeLearn_DTO_IDTO
  */
 public function recuperarPendentes(WeLearn_Usuarios_Usuario $usuarioAutenticado, WeLearn_Usuarios_Usuario $usuarioPerfil)
 {
     try {
         $enviado = $this->_convitePorRemetente->get($usuarioAutenticado->getId(), array($usuarioPerfil->getId()));
         $convite = $this->_criarFromCassandra($this->_cf->get($enviado[$usuarioPerfil->getId()]), $usuarioAutenticado, $usuarioPerfil);
         return $convite;
     } catch (cassandra_NotFoundException $e) {
         $recebido = $this->_convitePorDestinatario->get($usuarioAutenticado->getId(), array($usuarioPerfil->getId()));
         $convite = $this->_criarFromCassandra($this->_cf->get($recebido[$usuarioPerfil->getId()]), $usuarioPerfil, $usuarioAutenticado);
         return $convite;
     }
     // funçao sempre retorna um convite
 }
Пример #7
0
 /**
  * @param WeLearn_Cursos_SugestaoCurso $sugestao
  * @param WeLearn_Usuarios_Usuario $votante
  * @return array
  * @throws WeLearn_Cursos_UsuarioJaVotouException
  */
 public function votar(WeLearn_Cursos_SugestaoCurso &$sugestao, WeLearn_Usuarios_Usuario $votante)
 {
     $sugestaoUUID = CassandraUtil::import($sugestao->getId());
     try {
         $this->_sugestaoUsuariosVotantesCF->get($sugestaoUUID->bytes, array($votante->getId()));
         throw new WeLearn_Cursos_UsuarioJaVotouException();
     } catch (cassandra_NotFoundException $e) {
         $this->_contadorCF->add($this->_keyContador, $sugestaoUUID->bytes);
         $votos = array_values($this->_contadorCF->get($this->_keyContador, array($sugestaoUUID->bytes)));
         $votos = $votos[0];
         get_instance()->db->where('id', $sugestaoUUID->string)->update($this->_mysql_tbl_name, array('votos' => $votos));
         $sugestao->setVotos($votos);
         $this->salvar($sugestao);
         $this->_sugestaoUsuariosVotantesCF->insert($sugestaoUUID->bytes, array($votante->getId() => ''));
         return $votos;
     }
 }
Пример #8
0
 /**
  * @param WeLearn_Usuarios_Usuario $usuarioParaComparar
  * @param WeLearn_Usuarios_Usuario $oCriador
  * @return bool
  */
 public function isAutor(WeLearn_Usuarios_Usuario $usuarioParaComparar, WeLearn_Usuarios_Usuario $oCriador)
 {
     return $usuarioParaComparar->getId() === $oCriador->getId();
 }
Пример #9
0
 /**
  * @param WeLearn_Usuarios_Usuario $usuario
  * @param WeLearn_Cursos_Curso $doCurso
  */
 public function removerConviteGerenciador(WeLearn_Usuarios_Usuario $usuario, WeLearn_Cursos_Curso $doCurso)
 {
     $cursoUUID = UUID::import($doCurso->getId());
     $this->_usuariosPorCursoCF->remove($cursoUUID->bytes, array($usuario->getId()));
     $this->_cursosPorConviteGerenciadorCF->remove($usuario->getId(), array($cursoUUID->bytes));
 }
Пример #10
0
 /**
  * @param WeLearn_Usuarios_Usuario $usuario
  * @return void
  */
 public function limparNovas(WeLearn_Usuarios_Usuario $usuario)
 {
     try {
         $cfKeys = array_keys($this->_notificacoesNovasPorUsuarioCF->get($usuario->getId(), null, '', '', false, 1000000));
     } catch (cassandra_NotFoundException $e) {
         return;
     }
     $batchAtualizacao = array();
     for ($i = 0; $i < count($cfKeys); $i++) {
         $batchAtualizacao[$cfKeys[$i]] = array('status' => WeLearn_Notificacoes_StatusNotificacao::LIDO);
     }
     $this->_cf->batch_insert($batchAtualizacao);
     $this->_notificacoesNovasPorUsuarioCF->remove($usuario->getId());
 }
Пример #11
0
 /**
  * @param $idAmizade
  * @param null|WeLearn_Usuarios_Usuario $usuarioAtual
  * @param WeLearn_Usuarios_Usuario $amigoAtual
  * @return array
  */
 private function _recuperarUsuariosDeIdAmizade($idAmizade, WeLearn_Usuarios_Usuario $usuarioAtual = null, WeLearn_Usuarios_Usuario $amigoAtual = null)
 {
     $arrayIdUsuarios = explode('::', $idAmizade);
     $arrayRetorno = array();
     if ($usuarioAtual instanceof WeLearn_Usuarios_Usuario) {
         $arrayRetorno['usuario'] = $usuarioAtual;
         if ($usuarioAtual instanceof WeLearn_Usuarios_Usuario) {
             $arrayRetorno['amigo'] = $amigoAtual;
             return $arrayRetorno;
         } elseif ($arrayIdUsuarios[0] == $usuarioAtual->getId()) {
             $arrayRetorno['amigo'] = $this->_usuarioDao->recuperar($arrayIdUsuarios[1]);
             return $arrayRetorno;
         } elseif ($arrayRetorno[1] == $usuarioAtual->getId()) {
             $arrayRetorno['amigo'] = $this->_usuarioDao->recuperar($arrayIdUsuarios[0]);
             return $arrayRetorno;
         }
     }
     $arrayRetorno['usuario'] = $this->_usuarioDao->recuperar($arrayIdUsuarios[0]);
     $arrayRetorno['amigo'] = $this->_usuarioDao->recuperar($arrayIdUsuarios[1]);
     return $arrayRetorno;
 }