added login logic

This commit is contained in:
2026-01-22 23:09:34 +01:00
parent 400954babc
commit 16a8b446ed
30 changed files with 354 additions and 775 deletions

38
src/login/loginDb.cpp Normal file
View File

@@ -0,0 +1,38 @@
#include "loginDb.hpp"
#include "databasepool.h"
#include <optional>
using namespace sqlite_orm;
namespace login {
int createUser(const std::string& username, const std::string& password_hash){
if (username.empty() || password_hash.empty())
return -1;
int64_t id;
auto db = dbpool.acquire();
auto user = db->get_optional<User>(
where(c(&User::username) == username)
);
if (user.has_value()) {
id = user.value().id;
} else {
auto c = newUser(username, password_hash);
id = db->insert(c);
}
dbpool.release(db);
return id;
}
std::optional<User> getUser(const std::string& username){
auto db = dbpool.acquire();
auto user = db->get_optional<User>(
where(c(&User::username) == username)
);
dbpool.release(db);
return user;
}
}