Convert character db methods to compile-checked queries

This commit is contained in:
jeff 2020-12-30 15:46:44 +00:00
parent 7f4efb8122
commit 769512f357
2 changed files with 19 additions and 9 deletions

2
.env
View File

@ -1 +1 @@
DATABASE_URL="./tenebrous.sqlite"
DATABASE_URL="sqlite://./tenebrous.sqlite"

View File

@ -69,22 +69,32 @@ impl Dao for SqlitePool {
}
async fn load_character_list(&self, for_user_id: i32) -> Result<Vec<StrippedCharacter>, Error> {
sqlx::query_as::<_, StrippedCharacter>(
"SELECT id, user_id, viewable, character_name, data_type, data_version
FROM characters WHERE user_id = ?",
sqlx::query_as!(
StrippedCharacter,
r#"SELECT id as "id: _",
user_id as "user_id: _",
data_type as "data_type: _",
data_version as "data_version: _",
viewable, character_name
FROM characters WHERE user_id = ?"#,
for_user_id
)
.bind(for_user_id)
.fetch_all(self)
.await
.map_err(|e| e.into())
}
async fn load_character(&self, character_id: i32) -> Result<Option<Character>, Error> {
sqlx::query_as::<_, Character>(
"SELECT id, user_id, viewable, character_name, data_type, data_version, data
FROM characters WHERE id = ?",
sqlx::query_as!(
Character,
r#"SELECT id as "id: _",
user_id as "user_id: _",
viewable, character_name, data,
data_type as "data_type: _",
data_version as "data_version: _"
FROM characters WHERE id = ?"#,
character_id
)
.bind(character_id)
.fetch_optional(self)
.await
.map_err(|e| e.into())