mayhem_db/client/
insertion.rs

1use 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}