fixed bug where lock was never released, attributes look better now, can be accees on other devices
This commit is contained in:
@@ -12,40 +12,36 @@ int64_t createCharacter(const string& name){
|
||||
if (name.empty())
|
||||
return -1;
|
||||
|
||||
int64_t id;
|
||||
auto db = dbpool.acquire();
|
||||
|
||||
auto character = db->get_all<ShadowrunCharacter>(
|
||||
where(c(&ShadowrunCharacter::name) == name),
|
||||
limit(1)
|
||||
auto character = db->get_optional<ShadowrunCharacter>(
|
||||
where(c(&ShadowrunCharacter::name) == name)
|
||||
);
|
||||
|
||||
if (!character.empty()) {
|
||||
return character[0].id;
|
||||
if (character.has_value()) {
|
||||
id = character.value().id;
|
||||
} else {
|
||||
auto c = newShadowrunCharacter(name);
|
||||
return db->insert(c);
|
||||
id = db->insert(c);
|
||||
}
|
||||
dbpool.release(db);
|
||||
return id;
|
||||
}
|
||||
|
||||
std::vector<ShadowrunCharacter> getCharacters(){
|
||||
auto db = dbpool.acquire();
|
||||
return db->get_all<ShadowrunCharacter>();
|
||||
auto characters = db->get_all<ShadowrunCharacter>();
|
||||
dbpool.release(db);
|
||||
return characters;
|
||||
}
|
||||
|
||||
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];
|
||||
}
|
||||
optional<ShadowrunCharacter> character = db->get_optional<ShadowrunCharacter>(id);
|
||||
dbpool.release(db);
|
||||
return character;
|
||||
}
|
||||
|
||||
vector<ShadowrunCharacterData> getChracterData(int character_id)
|
||||
@@ -54,10 +50,12 @@ vector<ShadowrunCharacterData> getChracterData(int character_id)
|
||||
auto characterData = db->get_all<ShadowrunCharacterData>(
|
||||
where(c(&ShadowrunCharacterData::character_id) == character_id)
|
||||
);
|
||||
dbpool.release(db);
|
||||
return characterData;
|
||||
}
|
||||
|
||||
int storeCharacterData(int characterId, const Type type, const string& json){
|
||||
int id;
|
||||
auto db = dbpool.acquire();
|
||||
auto characterData = db->get_all<ShadowrunCharacterData>(
|
||||
where(
|
||||
@@ -67,7 +65,7 @@ int storeCharacterData(int characterId, const Type type, const string& json){
|
||||
|
||||
if(characterData.empty()){
|
||||
ShadowrunCharacterData character = newShadowrunCharacterData(characterId, type, json);
|
||||
return db->insert(character);
|
||||
id = db->insert(character);
|
||||
}
|
||||
else {
|
||||
if (characterData.size() > 1){
|
||||
@@ -77,21 +75,26 @@ int storeCharacterData(int characterId, const Type type, const string& json){
|
||||
character.json = json;
|
||||
character.updated_at = utils::currentTime();
|
||||
db->update(character);
|
||||
return character.id;
|
||||
id = character.id;
|
||||
}
|
||||
dbpool.release(db);
|
||||
return id;
|
||||
}
|
||||
|
||||
int storeCharacterData(const ShadowrunCharacterData& data){
|
||||
int id;
|
||||
auto db = dbpool.acquire();
|
||||
auto characterData = db->get_optional<ShadowrunCharacterData>(data.id);
|
||||
|
||||
if(!characterData.has_value()){
|
||||
return db->insert(data);
|
||||
id = db->insert(data);
|
||||
}
|
||||
else {
|
||||
db->update(data);
|
||||
return data.id;
|
||||
id = data.id;
|
||||
}
|
||||
dbpool.release(db);
|
||||
return id;
|
||||
}
|
||||
|
||||
}
|
||||
Reference in New Issue
Block a user