first commit to move to svelte

This commit is contained in:
2025-11-21 16:47:50 +01:00
parent d1c95d2b8b
commit e4289ee1ac
31 changed files with 2155 additions and 46 deletions

View File

@@ -2,9 +2,11 @@
#include <format>
#include <functional>
#include <map>
#include <optional>
#include "database.hpp"
#include "databasepool.h"
#include "crow.h"
#include "utils.hpp"
#include "sqlite_orm.h"
using namespace std;
@@ -12,7 +14,10 @@ using namespace sqlite_orm;
namespace shadowrun {
int64_t getKeyOfCharacter(const string& name){
int64_t createCharacter(const string& name){
if (name.empty())
return -1;
auto db = dbpool.acquire();
auto character = db->get_all<ShadowrunCharacter>(
@@ -23,13 +28,15 @@ int64_t getKeyOfCharacter(const string& name){
if (!character.empty()) {
return character[0].id;
} else {
return db->insert(ShadowrunCharacter{-1, name, Database::currentTime()});
auto c = createShadowrunCharacter(name);
return db->insert(c);
}
}
/*
bool storeCharacterData(int64_t characterKey, vector<pair<const string, const string>>& idValues){
auto characterData = getCharacterData(characterKey);
std::map<string, ShadowrunData*> dataMap;
std::map<string, ShadowrunCharacterData*> dataMap;
for(auto& data : characterData) {
dataMap[data.name] = &data;
}
@@ -45,7 +52,7 @@ bool storeCharacterData(int64_t characterKey, vector<pair<const string, const st
db->update_all(
sqlite_orm::set(
assign(&ShadowrunData::value, idValue.second),
assign(&ShadowrunData::updated_at, Database::currentTime())
assign(&ShadowrunData::updated_at, utils::currentTime())
),
where(
c(&ShadowrunData::name) == name and
@@ -58,7 +65,7 @@ bool storeCharacterData(int64_t characterKey, vector<pair<const string, const st
.character_id = static_cast<int>(characterKey),
.name = name,
.value = value,
.created_at = Database::currentTime(),
.created_at = utils::currentTime(),
.updated_at = "",
};
db->insert(entry);
@@ -66,26 +73,59 @@ bool storeCharacterData(int64_t characterKey, vector<pair<const string, const st
}
return true;
}
*/
std::vector<ShadowrunCharacter> getCharacters(){
auto db = dbpool.acquire();
return db->get_all<ShadowrunCharacter>();
}
std::map<string, string> getCharacterDataMap(int64_t characterKey){
auto characterData = getCharacterData(characterKey);
std::map<string, string> dataMap;
for(auto& data : characterData) {
dataMap[data.name] = data.value;
optional<ShadowrunCharacter> getChracter(int id)
{
auto db = dbpool.acquire();
auto character = db->get_all<ShadowrunCharacter>(
where(c(&ShadowrunCharacter::id) == id),
limit(1)
);
if (character.empty())
{
return {};
}
else {
return character[0];
}
return dataMap;
}
vector<ShadowrunCharacterData> getChracterData(int character_id)
{
auto db = dbpool.acquire();
auto characterData = db->get_all<ShadowrunCharacterData>(
where(c(&ShadowrunCharacterData::character_id) == character_id)
);
return characterData;
}
int storeCharacterData(const ShadowrunCharacterData& data)
{
auto db = dbpool.acquire();
auto characterData = db->get_optional<ShadowrunCharacterData>(data.id);
if(!characterData.has_value()){
return db->insert(data);
}
else {
db->update(data);
return data.id;
}
}
/*
vector<ShadowrunData> getCharacterData(int64_t characterKey) {
auto db = dbpool.acquire();
return db->get_all<ShadowrunData>(
where(c(&ShadowrunData::character_id) == characterKey)
);
}
*/
}