mayhem_db/client/
insertion.rs1use crate::models::user;
2use migration::DbErr;
3use sea_orm::{ActiveModelTrait, DbConn, Set};
4use std::sync::Arc;
5
6#[derive(Clone)]
7pub struct InsertionHelper {
8 client: Arc<DbConn>,
9}
10
11unsafe impl Sync for InsertionHelper {}
12unsafe impl Send for InsertionHelper {}
13
14impl InsertionHelper {
15 pub fn create(client: Arc<DbConn>) -> Self {
16 return Self { client };
17 }
18
19 pub async fn create_user(&self, data: user::Model) -> Result<user::ActiveModel, DbErr> {
20 return (user::ActiveModel {
21 first_name: Set(data.first_name),
22 last_name: Set(data.last_name),
23 email: Set(data.email),
24 username: Set(data.username),
25 password: Set(data.password),
26 ..Default::default()
27 })
28 .save(&self.client as &DbConn)
29 .await;
30 }
31}