Support local db for OCde in geostat_cli

master
Tomasz Golinski 2021-01-03 03:25:46 +01:00
rodzic afdc37aba1
commit d423d58714
1 zmienionych plików z 43 dodań i 6 usunięć

Wyświetl plik

@ -59,7 +59,7 @@ int main(int argc, char** argv) {
bool trail = 0;
bool anim = 0;
bool use_oc = 0;
bool use_ocpl_db = 0;
bool use_ocdb = 0;
bool get_not_found = 0;
bool get_owned = 0;
@ -124,7 +124,7 @@ int main(int argc, char** argv) {
ocuk_user = optarg;
break;
case 'q':
use_ocpl_db = 1;
use_ocdb = 1;
break;
case 'N':
get_not_found = 1;
@ -181,10 +181,10 @@ int main(int argc, char** argv) {
if (get_not_found || get_owned) {
use_oc = 0;
use_ocpl_db = 1;
use_ocdb = 1;
// trail = 0;
if (ocpl_user_uuid.empty() && ocpl_user.empty()) {
std::cout << "Options \"-N\" or \"-O\" work only with OCpl\n";
if (ocpl_user_uuid.empty() && ocpl_user.empty() && ocde_user_uuid.empty() && ocde_user.empty()) {
std::cout << "Options \"-N\" or \"-O\" work only with OCpl or OCde.\n";
std::exit(EXIT_FAILURE);
}
if (get_not_found && get_owned) {
@ -243,7 +243,7 @@ int main(int argc, char** argv) {
std::copy(tmp.begin(), tmp.end(), std::back_inserter(cc));
}
if (use_ocpl_db) {
if (use_ocdb) {
OCdb db(Database);
if (!ocpl_user.empty()) {
Okapi OCpl(ocpl_url, ocpl_key);
@ -261,6 +261,43 @@ int main(int argc, char** argv) {
}
}
if (use_ocdb) {
if (!ocpl_user_uuid.empty() || !ocpl_user.empty()) {
OCdb db(Database);
if (!ocpl_user.empty()) {
Okapi OCpl(ocpl_url, ocpl_key);
ocpl_user_uuid = OCpl.get_uuid(ocpl_user);
}
if (get_not_found) {
Caches tmp = db.get_user_caches_not_found(ocpl_user_uuid);
std::copy(tmp.begin(), tmp.end(), std::back_inserter(cc));
} else if (get_owned) {
Caches tmp = db.get_user_caches_owned(ocpl_user_uuid);
std::copy(tmp.begin(), tmp.end(), std::back_inserter(cc));
} else {
Caches tmp = db.get_user_caches(ocpl_user_uuid, 0);
std::copy(tmp.begin(), tmp.end(), std::back_inserter(cc));
}
}
if (!ocde_user_uuid.empty() || !ocde_user.empty()) {
OCdb db(Database);
if (!ocde_user.empty()) {
Okapi OCde(ocde_url, ocde_key);
ocde_user_uuid = OCde.get_uuid(ocde_user);
}
if (get_not_found) {
Caches tmp = db.get_user_caches_not_found(ocde_user_uuid);
std::copy(tmp.begin(), tmp.end(), std::back_inserter(cc));
} else if (get_owned) {
Caches tmp = db.get_user_caches_owned(ocde_user_uuid);
std::copy(tmp.begin(), tmp.end(), std::back_inserter(cc));
} else {
Caches tmp = db.get_user_caches(ocde_user_uuid, 0);
std::copy(tmp.begin(), tmp.end(), std::back_inserter(cc));
}
}
}
// TODO: some cache deduplication is needed
Debug(2) << "Caches read: " << cc.size() << '\n';