#include "Group.h" namespace controller { Group::Group(model::table::Group* dbModel) { mDBModel = dbModel; } Group::~Group() { } Poco::AutoPtr Group::create(const std::string& alias, const std::string& name, const std::string& url, const std::string& description) { auto db = new model::table::Group(alias, name, url, description); auto group = new Group(db); return Poco::AutoPtr(group); } std::vector> Group::load(const std::string& alias) { auto db = new model::table::Group(); auto group_list = db->loadFromDB("alias", alias, 1); std::vector> resultVector; resultVector.reserve(group_list.size()); for (auto it = group_list.begin(); it != group_list.end(); it++) { resultVector.push_back(new Group(new model::table::Group(*it))); } return resultVector; } std::vector> Group::listAll() { auto db = new model::table::Group(); std::vector group_list; // throw an unresolved external symbol error //group_list = db->loadAllFromDB(); // work around for not working call to loadAllFromDB auto cm = ConnectionManager::getInstance(); auto session = cm->getConnection(CONNECTION_MYSQL_LOGIN_SERVER); Poco::Data::Statement select(session); select << "SELECT id, alias, name, url, description FROM " << db->getTableName() , Poco::Data::Keywords::into(group_list); size_t resultCount = 0; try { resultCount = select.execute(); } catch (Poco::Exception& ex) { printf("[Group::listAll] poco exception: %s\n", ex.displayText().data()); } // work around end std::vector> resultVector; resultVector.reserve(group_list.size()); for (auto it = group_list.begin(); it != group_list.end(); it++) { Poco::AutoPtr group_ptr(new Group(new model::table::Group(*it))); resultVector.push_back(group_ptr); } return resultVector; } }