From 8237715066fd92943cd7e73de15290bb7ae2e490 Mon Sep 17 00:00:00 2001 From: Joe Ardent Date: Mon, 22 May 2023 17:18:13 -0700 Subject: [PATCH] simplify uuid/db handling --- src/lib.rs | 10 ++++++++++ src/users.rs | 9 +++------ 2 files changed, 13 insertions(+), 6 deletions(-) diff --git a/src/lib.rs b/src/lib.rs index bf90918..1f45553 100644 --- a/src/lib.rs +++ b/src/lib.rs @@ -5,3 +5,13 @@ pub mod db; pub mod generic_handlers; pub(crate) mod templates; pub mod users; + +pub trait ToBlob { + fn blob(&self) -> &[u8]; +} + +impl ToBlob for uuid::Uuid { + fn blob(&self) -> &[u8] { + self.as_bytes().as_slice() + } +} diff --git a/src/users.rs b/src/users.rs index e6f067d..fa6fed1 100644 --- a/src/users.rs +++ b/src/users.rs @@ -14,7 +14,7 @@ use sqlx::{sqlite::SqliteRow, Row, SqlitePool}; use unicode_segmentation::UnicodeSegmentation; use uuid::Uuid; -use crate::templates::CreateUser; +use crate::{templates::CreateUser, ToBlob}; const CREATE_QUERY: &str = "insert into witches (id, username, displayname, email, pwhash) values ($1, $2, $3, $4, $5)"; @@ -147,9 +147,8 @@ pub async fn handle_signup_success( let user: User = { let id = id.trim(); let id = Uuid::try_parse(id).unwrap_or_default(); - let id_bytes = id.to_bytes_le(); sqlx::query_as(ID_QUERY) - .bind(id_bytes.as_slice()) + .bind(id.blob()) .fetch_one(&pool) .await .unwrap_or_default() @@ -181,10 +180,8 @@ async fn create_user( .to_string(); let id = Uuid::new_v4(); - let id_bytes = id.to_bytes_le(); - let id_bytes = id_bytes.as_slice(); let res = sqlx::query(CREATE_QUERY) - .bind(id_bytes) + .bind(id.blob()) .bind(username) .bind(displayname) .bind(email)