/** * 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); }
void Servicio::obtenerConversaciones() { Json::Value idsConversacionesValue = this->getParametroArray( keyIdConversaciones, keyDefault); vector<string> idsConversaciones = StringUtil::jsonValueToVector( idsConversacionesValue); string idUsuario = this->getParametroIdMetodoGET( urlBaseUsuarioConversaciones); Usuario* usuario = Usuario::obtenerPorTelefono(idUsuario); if (usuario->getId() != keyIdUsuarioNoEncontrado) { vector<string> idsConversacionesActuales = usuario->obtnerIdsConversaciones(); vector<Conversacion*> nuevasConversaciones; for (unsigned i = 0; i < idsConversacionesActuales.size(); i++) { string idActual = idsConversacionesActuales[i]; //Si no esta en las conversaciones que me llegan, quiere decir que es una nueva conversacion. //Tengo que enviarla al cliente if (!StringUtil::vectorContiene(idsConversaciones, idActual)) { Conversacion* nuevaConversacion = Conversacion::obtener( idActual); if (nuevaConversacion->getId() != keyIdConversacionNoEncontrada) { nuevasConversaciones.push_back(nuevaConversacion); } else { Loger::getLoger()->warn( "La conversacion " + idActual + " no se encuentra en el sistema"); } } } Json::Value respuesta; for (unsigned i = 0; i < nuevasConversaciones.size(); i++) { Conversacion* conv = nuevasConversaciones[i]; vector<Mensaje*> mens = conv->getMensajes(); Mensaje* ultimoMensj = mens[mens.size() - 1]; Usuario* usuarioContacto = conv->getUsuarios().at(0); if (usuarioContacto->getId() == usuario->getId()) { usuarioContacto = conv->getUsuarios().at(1); } respuesta["conversaciones"][i]["id"] = conv->getId(); respuesta["conversaciones"][i]["ultimoMensaje"] = ultimoMensj->getCuerpo(); respuesta["conversaciones"][i]["usuarioNombre"] = usuarioContacto->getNombre(); respuesta["conversaciones"][i]["usuarioTelefono"] = usuarioContacto->getTelefono(); respuesta["conversaciones"][i]["usuarioFotoDePerfil"] = usuarioContacto->getFotoDePerfil(); } this->responder(respuesta.toStyledString(), true); } else { Loger::getLoger()->warn( "El usuario " + idUsuario + " no se encuentra en el sistema"); } }