#include "installcacic.h" InstallCacic::InstallCacic(QObject *parent) : QObject(parent) { } void InstallCacic::run(QStringList argv, int argc) { bool ok; //valida os parametros repassados validaParametros(argv, argc, &ok); //se tiver usuario, senha e url if (ok){ oCacicComm.setUrlGerente(this->argumentos["host"]); oCacicComm.setUsuario(this->argumentos["user"]); oCacicComm.setPassword(this->argumentos["password"]); QJsonObject jsonLogin = oCacicComm.login(&ok); if (ok){ //conectado, grava a chave na classe; oCacic.setChaveCrypt(jsonLogin["reply"].toObject()["chavecrip"].toString()); oCacic.setCacicMainFolder("c:/cacic"); oCacic.createFolder(oCacic.getCacicMainFolder()); //grava chave em arquivo json; QJsonObject configJson = oCacic.getJsonFromFile(oCacic.getCacicMainFolder() + "/cacicTeste.json"); QJsonObject configToSave = configJson["configs"].toObject(); configToSave["chaveCrypt"] = QJsonValue::fromVariant(oCacic.getChaveCrypt()); configJson["configs"] = configToSave; oCacic.setJsonToFile(configJson, oCacic.getCacicMainFolder() + "/cacicTeste.json"); //starta o processo do cacic. #ifdef Q_OS_WIN QString exitStatus = oCacic.startProcess("cacic.exe", true, &ok); if (!ok) std::cout << "Erro ao iniciar o processo: " << exitStatus.toStdString() << "\n"; #else oCacic.startProcess("cacic.exe", true, &ok); if (!ok) qDebug() << "Erro ao iniciar o processo."; #endif } else std::cout << "Nao foi possivel realizar o login.\n " << jsonLogin["error"].toString().toStdString(); } else { std::cout << "\nInstalador do Agente Cacic.\n\n" << "Parametros incorretos. ( [opcional])\n\n" << "<-host=url_gerente> <-user=usuario> <-password=senha> [-help]\n\n" << " <-host=url_gerente> url_gerente: Caminho para a aplicação do gerente.\n" << " <-user=usuario> usuario: usuário de login no gerente.\n" << " <-password=senha> senha: senha de login no gerente\n" << " [-help] Lista todos comandos.\n"; } emit finished(); } QMap InstallCacic::validaParametros(QStringList argv, int argc, bool *ok) { QMap map; for (int i = 0; i 1)) map[auxList.at(0).mid(1)] = auxList.at(1); } *ok = (bool) map.contains("host") && map.contains("user") && map.contains("password"); if (*ok){ this->argumentos = map; } return map; } QMap InstallCacic::getArgumentos() { return argumentos; } void InstallCacic::setArgumentos(QMap value) { this->argumentos = value; }