]> Untitled Git - lemmy.git/commitdiff
Adding taglines to SiteResponse. Fixes #2925 (#2926)
authorDessalines <dessalines@users.noreply.github.com>
Tue, 6 Jun 2023 12:59:34 +0000 (08:59 -0400)
committerGitHub <noreply@github.com>
Tue, 6 Jun 2023 12:59:34 +0000 (08:59 -0400)
* Adding taglines to SiteResponse. Fixes #2925

* Fixing CI line.

.woodpecker.yml
crates/api_common/src/site.rs
crates/api_crud/src/site/create.rs
crates/api_crud/src/site/update.rs
crates/db_schema/src/impls/tagline.rs

index c9a1f3d71cbaaa26f474004abfd194f404841ad5..918a26affb4eb3431974ff0ce6f3d428a0252fb7 100644 (file)
@@ -263,7 +263,7 @@ pipeline:
     image: alpine:3
     commands:
       - apk add curl
-      - "curl -d'Drone build failed: ${CI_BUILD_LINK}' ntfy.sh/lemmy_drone_ci"
+      - "curl -d'Lemmy CI build failed: ${CI_BUILD_LINK}' ntfy.sh/lemmy_drone_ci"
     when:
       status: [failure]
 
index 2d3ebbe0b0d1a74ec7020824c1c81c2da7191ff8..2ba6611c9a5c0feb8fd1d0b22c2aa142d1ea137c 100644 (file)
@@ -283,6 +283,7 @@ pub struct GetSite {
 /// The response for a site.
 pub struct SiteResponse {
   pub site_view: SiteView,
+  pub taglines: Vec<Tagline>,
 }
 
 #[skip_serializing_none]
index 0f3e8c56a7141feaf1b411a5f02e5381333c2e20..05b41e35a4dea510f04548fb464275c9450da5b3 100644 (file)
@@ -19,6 +19,7 @@ use lemmy_db_schema::{
     local_site::{LocalSite, LocalSiteUpdateForm},
     local_site_rate_limit::{LocalSiteRateLimit, LocalSiteRateLimitUpdateForm},
     site::{Site, SiteUpdateForm},
+    tagline::Tagline,
   },
   traits::Crud,
   utils::{diesel_option_overwrite, diesel_option_overwrite_to_url, naive_now},
@@ -146,6 +147,9 @@ impl PerformCrud for CreateSite {
 
     let site_view = SiteView::read_local(context.pool()).await?;
 
+    let new_taglines = data.taglines.clone();
+    let taglines = Tagline::replace(context.pool(), local_site.id, new_taglines).await?;
+
     let rate_limit_config =
       local_site_rate_limit_to_rate_limit_config(&site_view.local_site_rate_limit);
     context
@@ -153,6 +157,9 @@ impl PerformCrud for CreateSite {
       .send(rate_limit_config)
       .await?;
 
-    Ok(SiteResponse { site_view })
+    Ok(SiteResponse {
+      site_view,
+      taglines,
+    })
   }
 }
index 693be6904627ec5a796e9d84656b08714d727f88..31c4e4838748769768fe3b18d8410b347d802860 100644 (file)
@@ -182,8 +182,8 @@ impl PerformCrud for EditSite {
         .map_err(|e| LemmyError::from_error_message(e, "couldnt_set_all_email_verified"))?;
     }
 
-    let taglines = data.taglines.clone();
-    Tagline::replace(context.pool(), local_site.id, taglines).await?;
+    let new_taglines = data.taglines.clone();
+    let taglines = Tagline::replace(context.pool(), local_site.id, new_taglines).await?;
 
     let site_view = SiteView::read_local(context.pool()).await?;
 
@@ -194,7 +194,10 @@ impl PerformCrud for EditSite {
       .send(rate_limit_config)
       .await?;
 
-    let res = SiteResponse { site_view };
+    let res = SiteResponse {
+      site_view,
+      taglines,
+    };
 
     context.send_all_ws_message(&UserOperationCrud::EditSite, &res, websocket_id)?;
 
index a41005239f93659144a1f9a69049b8f1fd1753e8..ec985a3c8397629a1b142f69daa045bc741e0d7c 100644 (file)
@@ -12,9 +12,9 @@ impl Tagline {
     pool: &DbPool,
     for_local_site_id: LocalSiteId,
     list_content: Option<Vec<String>>,
-  ) -> Result<(), Error> {
+  ) -> Result<Vec<Self>, Error> {
+    let conn = &mut get_conn(pool).await?;
     if let Some(list) = list_content {
-      let conn = &mut get_conn(pool).await?;
       conn
         .build_transaction()
         .run(|conn| {
@@ -32,23 +32,30 @@ impl Tagline {
                 .get_result::<Self>(conn)
                 .await?;
             }
-            Ok(())
+            Self::get_all_conn(conn, for_local_site_id).await
           }) as _
         })
         .await
     } else {
-      Ok(())
+      Self::get_all_conn(conn, for_local_site_id).await
     }
   }
 
   async fn clear(conn: &mut AsyncPgConnection) -> Result<usize, Error> {
     diesel::delete(tagline).execute(conn).await
   }
-  pub async fn get_all(pool: &DbPool, for_local_site_id: LocalSiteId) -> Result<Vec<Self>, Error> {
-    let conn = &mut get_conn(pool).await?;
+
+  async fn get_all_conn(
+    conn: &mut AsyncPgConnection,
+    for_local_site_id: LocalSiteId,
+  ) -> Result<Vec<Self>, Error> {
     tagline
       .filter(local_site_id.eq(for_local_site_id))
       .get_results::<Self>(conn)
       .await
   }
+  pub async fn get_all(pool: &DbPool, for_local_site_id: LocalSiteId) -> Result<Vec<Self>, Error> {
+    let conn = &mut get_conn(pool).await?;
+    Self::get_all_conn(conn, for_local_site_id).await
+  }
 }