diff --git a/src/listmanager_dummy.cc b/src/listmanager_dummy.cc index 1de5ee7..9f14016 100644 --- a/src/listmanager_dummy.cc +++ b/src/listmanager_dummy.cc @@ -3,6 +3,7 @@ #include using namespace std; + namespace pEp { bool ListManagerDummy::log_enabled = false; @@ -21,7 +22,7 @@ namespace pEp { db.create_or_open_db(); } catch (...) { db.close_db(); - runtime_error e("ListManagerDummy - error opening db"); + DBException e{ "ListManagerDummy - error opening db" }; throw_with_nested(e); } } @@ -31,7 +32,7 @@ namespace pEp { create_tables(); } catch (...) { db.close_db(); - runtime_error e("ListManagerDummy - db init failed"); + DBException e{ "ListManagerDummy - db init failed" }; throw_with_nested(e); } is_db_initialized = true; @@ -46,7 +47,7 @@ namespace pEp { sql = "PRAGMA foreign_keys=ON"; db.execute(sql); } catch (...) { - runtime_error e("ListManagerDummy - db config failed"); + DBException e{ "ListManagerDummy - db config failed" }; throw_with_nested(e); } } @@ -70,7 +71,7 @@ namespace pEp { "FOREIGN KEY(list_address) REFERENCES lists(address) ON DELETE CASCADE);"; db.execute(sql); } catch (...) { - runtime_error e("ListManagerDummy - create tables failed"); + DBException e("ListManagerDummy - create tables failed"); throw_with_nested(e); } } @@ -89,7 +90,7 @@ namespace pEp { try { db.delete_db(); } catch (...) { - runtime_error e("ListManagerDummy: delete_db() failed"); + DBException e{ "ListManagerDummy: delete_db() failed" }; throw_with_nested(e); } } @@ -105,9 +106,8 @@ namespace pEp { db.execute(sql); } catch (...) { - runtime_error e( - "ListManagerDummy: list_add(addr_list: \"" + addr_list + "\"\taddr_mgr: \"" + - addr_mgr + "\") - failed with exception"); + DBException e{ "ListManagerDummy: list_add(addr_list: \"" + addr_list + + "\"\taddr_mgr: \"" + addr_mgr + "\") - failed with exception" }; throw_with_nested(e); } } @@ -122,9 +122,8 @@ namespace pEp { sql = "DELETE FROM lists WHERE lists.address = '" + addr_list + "';"; db.execute(sql); } catch (...) { - runtime_error e( - "ListManagerDummy: list_delete(addr_list: \"" + addr_list + - "\") - failed with exception"); + DBException e{ "ListManagerDummy: list_delete(addr_list: \"" + addr_list + + "\") - failed with exception" }; throw_with_nested(e); } } @@ -140,9 +139,8 @@ namespace pEp { "', '" + addr_list + "');"; db.execute(sql); } catch (...) { - runtime_error e( - "ListManagerDummy: member_add(addr_list: \"" + addr_list + "\", addr_member: \"" + - addr_member + "\") - failed with exception"); + DBException e{ "ListManagerDummy: member_add(addr_list: \"" + addr_list + + "\", addr_member: \"" + addr_member + "\") - failed with exception" }; throw_with_nested(e); } } @@ -159,9 +157,8 @@ namespace pEp { "') AND (member_of.list_address = '" + addr_list + "');"; db.execute(sql); } catch (...) { - runtime_error e( - "ListManagerDummy: member_remove(" + addr_list + ", " + addr_member + - ") - failed with exception"); + DBException e{ "ListManagerDummy: member_remove(" + addr_list + ", " + addr_member + + ") - failed with exception" }; throw_with_nested(e); } } @@ -179,7 +176,7 @@ namespace pEp { sql = "SELECT address FROM lists"; rs = db.execute(sql); } catch (...) { - runtime_error e("ListManagerDummy: lists() failed"); + DBException e{ "ListManagerDummy: lists() failed" }; throw_with_nested(e); } @@ -191,9 +188,9 @@ namespace pEp { } // public - std::string ListManagerDummy::moderator(const std::string& list_address) + std::string ListManagerDummy::moderator(const std::string& addr_list) { - pEpLogClass("moderator(list_address:\"" + list_address + "\")"); + pEpLogClass("moderator(list_address:\"" + addr_list + "\")"); ensure_db_initialized(); string ret; ResultSet rs; @@ -202,11 +199,11 @@ namespace pEp { string sql; sql = "SELECT moderator_address FROM lists " "WHERE lists.address = '" + - list_address + "';"; + addr_list + "';"; rs = db.execute(sql); } catch (...) { - runtime_error e( - "ListManagerDummy: moderator(list_address:\"" + list_address + "\") - failed"); + DBException e{ "ListManagerDummy: moderator(list_address:\"" + addr_list + + "\") - failed" }; throw_with_nested(e); } @@ -220,9 +217,9 @@ namespace pEp { } // public - std::vector ListManagerDummy::members(const std::string& list_address) + std::vector ListManagerDummy::members(const std::string& addr_list) { - pEpLogClass("members(list_address:\"" + list_address + "\")"); + pEpLogClass("members(list_address:\"" + addr_list + "\")"); ensure_db_initialized(); vector ret; ResultSet rs; @@ -231,10 +228,10 @@ namespace pEp { string sql; sql = "SELECT address FROM member_of " "WHERE list_address = '" + - list_address + "'"; + addr_list + "'"; rs = db.execute(sql); } catch (...) { - runtime_error e("ListManagerDummy: members(list_address:\"" + list_address + "\")"); + DBException e{ "ListManagerDummy: members(list_address:\"" + addr_list + "\")" }; throw_with_nested(e); } @@ -253,5 +250,4 @@ namespace pEp { pEpLogClass("called"); db.close_db(); } - } // namespace pEp \ No newline at end of file diff --git a/src/listmanager_dummy.hh b/src/listmanager_dummy.hh index 9e2a3de..7e9139d 100644 --- a/src/listmanager_dummy.hh +++ b/src/listmanager_dummy.hh @@ -39,6 +39,19 @@ namespace pEp { void create_tables(); Adapter::pEpLog::pEpLogger& m4gic_logger_n4ame = logger; }; + + class DBException : public std::runtime_error { + public: + DBException(const std::string& string) : runtime_error(string) {} + }; + class DoesNotExistException : public std::runtime_error { + public: + DoesNotExistException(const std::string& string) : runtime_error(string) {} + }; + class AlreadyExistsException : public std::runtime_error { + public: + AlreadyExistsException(const std::string& string) : runtime_error(string) {} + }; } // namespace pEp #endif // LIBPEPADAPTER_LISTMANAGER_DUMMY_HH