]> Untitled Git - lemmy.git/commitdiff
Fixing issue with saving site language. Fixes #2748 (#2749)
authorDessalines <dessalines@users.noreply.github.com>
Wed, 22 Feb 2023 01:22:54 +0000 (20:22 -0500)
committerGitHub <noreply@github.com>
Wed, 22 Feb 2023 01:22:54 +0000 (02:22 +0100)
* Fixing issue with saving site language. Fixes #2748

* Add a warning to Site::read

crates/api_crud/src/site/update.rs
crates/db_schema/src/impls/site.rs

index a169f237d4d9d07358f644dd87f2af79c25f5018..36a09628023f957011f587d88ad915eca8c0f69f 100644 (file)
@@ -44,7 +44,9 @@ impl PerformCrud for EditSite {
     let data: &EditSite = self;
     let local_user_view =
       get_local_user_view_from_jwt(&data.auth, context.pool(), context.secret()).await?;
-    let local_site = LocalSite::read(context.pool()).await?;
+    let site_view = SiteView::read_local(context.pool()).await?;
+    let local_site = site_view.local_site;
+    let site = site_view.site;
 
     // Make sure user is an admin
     is_admin(&local_user_view)?;
@@ -76,9 +78,7 @@ impl PerformCrud for EditSite {
       }
     }
 
-    let site_id = local_site.site_id;
     if let Some(discussion_languages) = data.discussion_languages.clone() {
-      let site = Site::read(context.pool(), site_id).await?;
       SiteLanguage::update(context.pool(), discussion_languages.clone(), &site).await?;
     }
 
@@ -92,7 +92,7 @@ impl PerformCrud for EditSite {
       .updated(Some(Some(naive_now())))
       .build();
 
-    Site::update(context.pool(), site_id, &site_form)
+    Site::update(context.pool(), site.id, &site_form)
       .await
       // Ignore errors for all these, so as to not throw errors if no update occurs
       // Diesel will throw an error for empty update forms
index 96f8a2f0555e7836e77e80ce1a4bdf5fa6f01b2f..7120b8a67c979fa7cb8279292d5c441db3b02ae3 100644 (file)
@@ -18,9 +18,9 @@ impl Crud for Site {
   type UpdateForm = SiteUpdateForm;
   type IdType = SiteId;
 
-  async fn read(pool: &DbPool, _site_id: SiteId) -> Result<Self, Error> {
-    let conn = &mut get_conn(pool).await?;
-    site.first::<Self>(conn).await
+  /// Use SiteView::read_local, or Site::read_from_apub_id instead
+  async fn read(_pool: &DbPool, _site_id: SiteId) -> Result<Self, Error> {
+    unimplemented!()
   }
 
   async fn create(pool: &DbPool, form: &Self::InsertForm) -> Result<Self, Error> {