#include "MySQLUserDAO.h" #include using namespace std; using namespace string_literals; namespace uad { MySQLUserDAO::MySQLUserDAO(mysqlx::Session& session): session_(session) { } string MySQLUserDAO::Create(const User& created_user) { return ""s; } optional MySQLUserDAO::GetByGUID(string guid) { mysqlx::SqlResult sql_result = session_.sql("SELECT * FROM `up_and_down`.`users` WHERE (guid = '" + guid + "') LIMIT 1;"s).execute(); return GetSingleUserBySQLResult(std::move(sql_result)); } optional MySQLUserDAO::GetByLogin(string login) { mysqlx::SqlResult sql_result = session_.sql("SELECT * FROM `up_and_down`.`users` WHERE (login = '" + login + "') LIMIT 1;"s).execute(); return GetSingleUserBySQLResult(std::move(sql_result)); } vector MySQLUserDAO::GetAll() { vector users {}; return {}; } bool MySQLUserDAO::Update(const User& u) { return false; } bool MySQLUserDAO::Delete(string id) { return false; } std::optional MySQLUserDAO::GetSingleUserBySQLResult(mysqlx::SqlResult&& sql_result) { list rows = sql_result.fetchAll(); if (!rows.size()) { return nullopt; } auto row_data = *rows.begin(); string user_guid = row_data[0].get(); string user_login = row_data[1].get(); string user_hashed_password = row_data[2].get(); User user; user.SetGUID(user_guid); user.SetLogin(user_login); user.SetHashedPassword(user_hashed_password); return optional(std::move(user)); } } // uad