/** * Se encarga de actualizar los datos del usuario que recibe, en la * base de datos. */ void Servicio::administrarPerfil() { string nombreUsuario = this->getParametro(keyNombre, keyDefault); string estadoDeConexion = this->getParametro(keyEstadoDeConexion, keyDefault); string fotoDePerfil = this->getParametro(keyFotoDePerfil, keyDefault); bool estado = StringUtil::toBoolean(estadoDeConexion); string localizacion = this->getParametro(keyLocalizacion, keyDefault); string password = this->getParametro(keyPassword, keyDefault); Usuario* user = this->obtenerUsuario(); string token = this->getParametro(keyTokenSesion, keyDefault); if (user->getId() != keyIdUsuarioNoEncontrado) { if (user->getToken() == token) { user->setNombre(nombreUsuario); user->setEstadoConexion(estado); user->setFotoDePerfil(fotoDePerfil); user->setLocalizacion(localizacion); user->setPassword(password); user->persistir(); Loger::getLoger()->info( "Se modificaron los datos del usuario " + user->getNombre() + " correctamente."); this->responder( "Se modificaron los datos del usuario " + user->getNombre() + " correctamente. Token:" + user->getToken(), true); } else { Loger::getLoger()->warn( "El usuario " + user->getNombre() + " no posee un token de session correcto"); this->responder( "El usuario " + user->getNombre() + " no posee un token de session correcto", false); } } else { Loger::getLoger()->warn( "El usuario " + user->getNombre() + " no se encuentra registrado en el sistema"); this->responder( "El usuario " + user->getNombre() + " no se encuentra registrado en el sistema", false); } Loger::getLoger()->guardarEstado(); delete user; }
/** * Se encarga de calcular en que lugar se encuentra el cliente * en base a sus coordenadas geográficas y los lugares precargados. * */ void Servicio::checkIn() { Json::Value coordenadas; string latitud = this->getParametro(keyLatitud, keyDefault); string longitud = this->getParametro(keyLongitud, keyDefault); coordenadas["latitud"] = atof(latitud.c_str()); coordenadas["longitud"] = atof(longitud.c_str()); Usuario* usuario = this->obtenerUsuario(); if (usuario->getId() != keyIdUsuarioNoEncontrado) { string localizacion = Localizacion::calcularUbicacion(coordenadas)+" "+fechaYhoraActual(); usuario->setLocalizacion(localizacion); usuario->persistir(); this->responder(localizacion, true); } else { this->responder("el usuario no existe.", false); } }