summary refs log tree commit diff stats
diff options
context:
space:
mode:
authorBenedikt Peetz <benedikt.peetz@b-peetz.de>2024-12-27 22:44:47 +0100
committerBenedikt Peetz <benedikt.peetz@b-peetz.de>2024-12-27 22:48:44 +0100
commit6788225f0f7be8f35dbcc0fcd498698c49f94326 (patch)
tree9630d55eb0efe9f97127c6b6ff007fc0dfd43035
parentfeat(back): add rss feed (diff)
downloadnixos-server-6788225f0f7be8f35dbcc0fcd498698c49f94326.zip
fix(back): add correct links to rss feed
Co-authored-by: Silas Schöffel <sils@sils.li>
-rw-r--r--pkgs/by-name/ba/back/src/config/mod.rs3
-rw-r--r--pkgs/by-name/ba/back/src/web/mod.rs5
2 files changed, 6 insertions, 2 deletions
diff --git a/pkgs/by-name/ba/back/src/config/mod.rs b/pkgs/by-name/ba/back/src/config/mod.rs
index a680b90..7351ad8 100644
--- a/pkgs/by-name/ba/back/src/config/mod.rs
+++ b/pkgs/by-name/ba/back/src/config/mod.rs
@@ -25,12 +25,14 @@ pub struct BackConfig {
     // `<tags>` of all kinds _should_ be invalid.  <2024-12-26>
     pub source_code_repository_url: Url,
     pub repository: ThreadSafeRepository,
+    pub root: Url,
 }
 
 #[derive(Deserialize)]
 struct RawBackConfig {
     source_code_repository_url: Url,
     repository_path: PathBuf,
+    root_url: Url,
 }
 
 impl BackConfig {
@@ -64,6 +66,7 @@ impl TryFrom<RawBackConfig> for BackConfig {
         Ok(Self {
             repository,
             source_code_repository_url: value.source_code_repository_url,
+            root: value.root_url,
         })
     }
 }
diff --git a/pkgs/by-name/ba/back/src/web/mod.rs b/pkgs/by-name/ba/back/src/web/mod.rs
index c7ba9d9..968c827 100644
--- a/pkgs/by-name/ba/back/src/web/mod.rs
+++ b/pkgs/by-name/ba/back/src/web/mod.rs
@@ -119,14 +119,15 @@ pub fn feed(config: &State<BackConfig>) -> error::Result<RawHtml<String>> {
                 .author(issue.author.to_string())
                 .description(issue.message.to_string())
                 .pub_date(issue.timestamp.to_string())
+                .link(format!("{}/issue/{}", &config.root.to_string(), issue.id))
                 .build()
         })
         .collect();
 
     let channel = ChannelBuilder::default()
         .title("Issues")
-        .link("http://example.com")
-        .description("An RSS feed.")
+        .link(config.root.to_string())
+        .description(format!("The rss feed for issues on {}.", config.root))
         .items(items)
         .build();
     Ok(RawHtml(channel.to_string()))