|
|
@ -244,6 +244,76 @@ namespace pEp { |
|
|
|
return ret; |
|
|
|
} |
|
|
|
|
|
|
|
bool ListManagerDummy::list_exists(const std::string& addr_list) |
|
|
|
{ |
|
|
|
pEpLogClass("list_exists(addr_list:\"" + addr_list + "\")"); |
|
|
|
bool ret{ false }; |
|
|
|
ensure_db_initialized(); |
|
|
|
|
|
|
|
ResultSet rs; |
|
|
|
int rescount = 0; |
|
|
|
try { |
|
|
|
string sql; |
|
|
|
sql = "SELECT COUNT(address) AS rescount " |
|
|
|
"FROM lists " |
|
|
|
"WHERE address = '" + |
|
|
|
addr_list + "';"; |
|
|
|
rs = db.execute(sql); |
|
|
|
rescount = pEpSQLite::eval_sql_count(rs, "rescount"); |
|
|
|
} catch (...) { |
|
|
|
DBException e{ "ListManagerDummy: list_exists(addr_list:\"" + addr_list + "\")" }; |
|
|
|
throw_with_nested(e); |
|
|
|
} |
|
|
|
// Check FATAL inconsistency
|
|
|
|
if (rescount > 1) { |
|
|
|
DBException e{ "ListManagerDummy: list_exists(addr_list:\"" + addr_list + |
|
|
|
"\") - FATAL DB CONSTRAINT ERROR: list exists more than once" }; |
|
|
|
throw_with_nested(e); |
|
|
|
} |
|
|
|
|
|
|
|
if (rescount == 1) { |
|
|
|
ret = true; |
|
|
|
} |
|
|
|
return ret; |
|
|
|
} |
|
|
|
|
|
|
|
bool ListManagerDummy::member_exists(const std::string& addr_list, const std::string& addr_member) |
|
|
|
{ |
|
|
|
pEpLogClass( |
|
|
|
"member_exists(addr_list:\"" + addr_list + "\", addr_member:\"" + addr_member + "\")"); |
|
|
|
bool ret{ false }; |
|
|
|
ensure_db_initialized(); |
|
|
|
|
|
|
|
ResultSet rs; |
|
|
|
int rescount = 0; |
|
|
|
try { |
|
|
|
string sql; |
|
|
|
sql = "SELECT COUNT(address) AS rescount " |
|
|
|
"FROM member_of " |
|
|
|
"WHERE (address = '" + |
|
|
|
addr_member + "' AND list_address = '" + addr_list + "');"; |
|
|
|
rs = db.execute(sql); |
|
|
|
rescount = pEpSQLite::eval_sql_count(rs, "rescount"); |
|
|
|
} catch (...) { |
|
|
|
DBException e{ "member_exists(addr_list:\"" + addr_list + "\", addr_member:\"" + |
|
|
|
addr_member + "\")" }; |
|
|
|
throw_with_nested(e); |
|
|
|
} |
|
|
|
// Check FATAL inconsistency
|
|
|
|
if (rescount > 1) { |
|
|
|
DBException e{ "member_exists(addr_list:\"" + addr_list + "\", addr_member:\"" + |
|
|
|
addr_member + |
|
|
|
"\") - FATAL DB CONSTRAINT ERROR: list exists more than once" }; |
|
|
|
throw_with_nested(e); |
|
|
|
} |
|
|
|
|
|
|
|
if (rescount == 1) { |
|
|
|
ret = true; |
|
|
|
} |
|
|
|
return ret; |
|
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
// public
|
|
|
|
ListManagerDummy::~ListManagerDummy() |
|
|
|
{ |
|
|
|