]> Untitled Git - lemmy.git/blobdiff - crates/db_schema/src/impls/local_user.rs
Moving settings to Database. (#2492)
[lemmy.git] / crates / db_schema / src / impls / local_user.rs
index 31eded1a4ce659669f38e441b2759243d7cb1634..9f2c1c3c5fc221adee78246648712ab6a6e220bc 100644 (file)
@@ -3,7 +3,7 @@ use crate::{
   schema::local_user::dsl::*,
   source::{
     actor_language::{LocalUserLanguage, SiteLanguage},
-    local_user::{LocalUser, LocalUserForm},
+    local_user::{LocalUser, LocalUserInsertForm, LocalUserUpdateForm},
   },
   traits::Crud,
   utils::naive_now,
@@ -67,17 +67,6 @@ mod safe_settings_type {
 }
 
 impl LocalUser {
-  pub fn register(conn: &mut PgConnection, form: &LocalUserForm) -> Result<Self, Error> {
-    let mut edited_user = form.clone();
-    let password_hash = form
-      .password_encrypted
-      .as_ref()
-      .map(|p| hash(p, DEFAULT_COST).expect("Couldn't hash password"));
-    edited_user.password_encrypted = password_hash;
-
-    Self::create(conn, &edited_user)
-  }
-
   pub fn update_password(
     conn: &mut PgConnection,
     local_user_id: LocalUserId,
@@ -109,7 +98,8 @@ impl LocalUser {
 }
 
 impl Crud for LocalUser {
-  type Form = LocalUserForm;
+  type InsertForm = LocalUserInsertForm;
+  type UpdateForm = LocalUserUpdateForm;
   type IdType = LocalUserId;
   fn read(conn: &mut PgConnection, local_user_id: LocalUserId) -> Result<Self, Error> {
     local_user.find(local_user_id).first::<Self>(conn)
@@ -117,9 +107,14 @@ impl Crud for LocalUser {
   fn delete(conn: &mut PgConnection, local_user_id: LocalUserId) -> Result<usize, Error> {
     diesel::delete(local_user.find(local_user_id)).execute(conn)
   }
-  fn create(conn: &mut PgConnection, form: &LocalUserForm) -> Result<Self, Error> {
+  fn create(conn: &mut PgConnection, form: &Self::InsertForm) -> Result<Self, Error> {
+    let mut form_with_encrypted_password = form.clone();
+    let password_hash =
+      hash(&form.password_encrypted, DEFAULT_COST).expect("Couldn't hash password");
+    form_with_encrypted_password.password_encrypted = password_hash;
+
     let local_user_ = insert_into(local_user)
-      .values(form)
+      .values(form_with_encrypted_password)
       .get_result::<Self>(conn)?;
 
     let site_languages = SiteLanguage::read_local(conn);
@@ -137,7 +132,7 @@ impl Crud for LocalUser {
   fn update(
     conn: &mut PgConnection,
     local_user_id: LocalUserId,
-    form: &LocalUserForm,
+    form: &Self::UpdateForm,
   ) -> Result<Self, Error> {
     diesel::update(local_user.find(local_user_id))
       .set(form)