use crate::diesel::{prelude::*, PgConnection, QueryDsl}; use crate::models::*; use crate::schema::*; use diesel::r2d2::{ConnectionManager, Pool}; use std::error::Error; use tokio_diesel::*; use uuid::Uuid; pub async fn create_user( pool: &Pool>, user: InsertableUser, ) -> Result> { let inserted: User = diesel::insert_into(users::table) .values(user) .get_result_async(pool) .await?; Ok(inserted) } pub async fn update_user( pool: &Pool>, user: User, ) -> Result> { use crate::schema::users::dsl::*; let result = diesel::update(users.filter(id.eq(user.id))) .set((discord_id.eq(user.discord_id),)) .get_result_async(pool) .await?; Ok(result) } pub async fn find_user_by_id( pool: &Pool>, user_id: Uuid, ) -> Result> { use crate::schema::users::dsl::*; let result = users.find(user_id).get_result_async::(pool).await?; log::error!("{:?}", result); Ok(result) } pub async fn delete_user_by_id( pool: &Pool>, user_id: Uuid, ) -> Result> { use crate::schema::users::dsl::*; let result = diesel::delete(users.filter(id.eq(user_id))) .get_result_async(pool) .await?; Ok(result) }