Exemplo n.º 1
0
/**
 * 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);
}
Exemplo n.º 2
0
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");
	}

}