本文整理汇总了C++中Usuario::getEstadoConexion方法的典型用法代码示例。如果您正苦于以下问题:C++ Usuario::getEstadoConexion方法的具体用法?C++ Usuario::getEstadoConexion怎么用?C++ Usuario::getEstadoConexion使用的例子?那么恭喜您, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类Usuario
的用法示例。
在下文中一共展示了Usuario::getEstadoConexion方法的3个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的C++代码示例。
示例1: obtenerContactos
/**
* Obtiene los contactos que se encuentran registrados en el sistemas y estan conectados,
* a partir de numeros de telefono que recibe
*
*/
void Servicio::obtenerContactos() {
Json::Value contactosTelefonoValue = this->getParametroArray(
keyContantosTelefono, keyDefault);
vector<string> contactosTelefono = StringUtil::jsonValueToVector(
contactosTelefonoValue);
Json::Value respuesta;
int counter = 0;
for (unsigned i = 0; i < contactosTelefono.size(); i++) {
string telefonoActual = contactosTelefono[i];
Usuario* usuario = Usuario::obtenerPorTelefono(telefonoActual);
//Agrego los usuarios que estan registrados y que se encuentran conectados
if (usuario->getId() != keyIdUsuarioNoEncontrado
&& usuario->getEstadoConexion()) {
respuesta["contactos"][counter][keyNombre] = usuario->getNombre();
respuesta["contactos"][counter][keyTelefono] =
usuario->getTelefono();
respuesta["contactos"][counter][keyFotoDePerfil] =
usuario->getFotoDePerfil();
respuesta["contactos"][counter][keyLocalizacion] = usuario->getLocalizacion();
counter++;
}
}
this->responder(respuesta.toStyledString(), true);
}
示例2: consultarUsuarioOnline
/**
* Devuelve los datos correspondientes al usuario con telefono igual al
* recibido.
*/
void Servicio::consultarUsuarioOnline() {
string telefono = this->getParametroIdMetodoGET(urlBaseUsuario);
Usuario* user = Usuario::obtenerPorTelefono(telefono);
string renovarToken = this->getParametro(keyRenovarToken, keyDefault);
bool renovar = StringUtil::toBoolean(renovarToken);
if (user->getId() != keyIdUsuarioNoEncontrado) {
user->registrarUltimaConexion();
Json::Value respuesta;
respuesta[keyNombre] = user->getNombre();
respuesta[keyPassword] = user->getPassword();
if(renovar){
respuesta[keyTokenSesion] = user->calcularTokenDeSesion();
}else{
respuesta[keyTokenSesion] = user->getToken();
}
respuesta[keyEstadoDeConexion] = StringUtil::toString(
user->getEstadoConexion());
respuesta[keyFotoDePerfil] = user->getFotoDePerfil();
respuesta["idUsuario"] = user->getId();
respuesta[keyLocalizacion] = user->getLocalizacion();
user->persistir();
this->responder(respuesta.toStyledString(), true);
Loger::getLoger()->info(
"Consulta del usuario " + user->getNombre() + " exitosa.");
} else {
string msj = "No se pudo obtener el estado del usuario con numero: "
+ this->getParametro(keyTelefono, keyDefault)
+ " ya que no se encuentra registrado en el sistema.";
Loger::getLoger()->warn(msj);
this->responder(msj, false);
}
Loger::getLoger()->guardarEstado();
delete user;
}
示例3: almacenarListaDifusion
/*
* Agrega el mensaje que envió el cliente a la conversacion correspondiente y luego la almacena en
* la Base de Datos.
*
*/
void Servicio::almacenarListaDifusion() {
string idEmisor = this->getParametro(keyIdUsuarioEmisor, keyDefault);
string token = this->getParametro(keyTokenSesion, keyDefault);
Json::Value contactosTelefonoValue = this->getParametroArray(
keyContantosTelefono, keyDefault);
vector<string> contactosTelefono = StringUtil::jsonValueToVector(
contactosTelefonoValue);
//chequeo que los usuarios existan:
Usuario *emisor = Usuario::obtenerPorTelefono(idEmisor);
if (emisor->getId() == keyIdUsuarioNoEncontrado) {
string msj_warning =
"No se pudo almacenar la lista de difusion porque el emisor no existe";
this->responder(msj_warning, false);
Loger::getLoger()->warn(msj_warning);
Loger::getLoger()->guardarEstado();
} else if (emisor->getToken() != token) {
Loger::getLoger()->warn(
"El usuario " + emisor->getNombre()
+ " no posee un token de session correcto");
this->responder(
"El usuario " + emisor->getNombre()
+ " no posee un token de session correcto", false);
} else {
//Obtengo el mensaje:
string cuerpo = this->getParametro(keyCuerpo, keyDefault);
string fecha = this->getParametro(keyFecha, keyDefault);
Mensaje* mensaje = new Mensaje(cuerpo, emisor->getId(), fecha);
//Recorro los contactos del telefono para verificar cuales estan registrados y conectados
for (unsigned i = 0; i < contactosTelefono.size(); i++) {
string telefonoActual = contactosTelefono[i];
Usuario* usuario = Usuario::obtenerPorTelefono(telefonoActual);
//Envío mensaje a los usuarios que estan registrados y que se encuentran conectados
if (usuario->getId() != keyIdUsuarioNoEncontrado
&& usuario->getEstadoConexion()) {
//almaceno la conversacion (si no existe la creo):
Conversacion *conversacion = Conversacion::obtener(
emisor->getId() + "-" + usuario->getId());
if (conversacion->getId() != keyIdConversacionNoEncontrada) {
conversacion->agregarMensaje(mensaje);
conversacion->persistir();
delete conversacion;
} else {
Conversacion *conversacion = Conversacion::obtener(
usuario->getId() + "-" + emisor->getId());
if (conversacion->getId()
!= keyIdConversacionNoEncontrada) {
conversacion->agregarMensaje(mensaje);
conversacion->persistir();
delete conversacion;
} else {
vector<Usuario*> usuarios;
usuarios.push_back(emisor);
usuarios.push_back(usuario);
vector<Mensaje*> mensajes;
mensajes.push_back(mensaje);
Conversacion *nuevaConversacion = new Conversacion(
usuarios, mensajes);
nuevaConversacion->persistir();
delete nuevaConversacion;
}
}
}
}
this->responder("Lista de difusion enviada correctamente", true);
delete mensaje;
}
}