aboutsummaryrefslogtreecommitdiff
path: root/src/pages/repo.rs
diff options
context:
space:
mode:
Diffstat (limited to 'src/pages/repo.rs')
-rw-r--r--src/pages/repo.rs36
1 files changed, 36 insertions, 0 deletions
diff --git a/src/pages/repo.rs b/src/pages/repo.rs
new file mode 100644
index 0000000..aa66839
--- /dev/null
+++ b/src/pages/repo.rs
@@ -0,0 +1,36 @@
+//! The view that renders a repository
+
+use actix_web::{web, HttpRequest, HttpResponse, Result};
+use askama::Template;
+
+#[derive(Template)]
+#[template(path = "repo.html")]
+struct Repo<'a> {
+ project_owner: &'a str,
+ project_summary: &'a str,
+ project_name: &'a str,
+ project_logo: &'a str,
+ project_logo_alt_text: &'a str,
+ first_commit: &'a str,
+ num_commits: usize,
+ num_contributors: usize,
+}
+
+pub fn render(req: HttpRequest, path: web::Path<(String)>) -> Result<HttpResponse> {
+ println!("Rendering path: {:#?}", path);
+ dbg!(req);
+
+ let repo = Repo {
+ project_owner: "spacekookie",
+ project_summary: "A lightweight web frontend for git repositories",
+ project_name: "webgit",
+ project_logo: "rust.png",
+ project_logo_alt_text: "Rust logo",
+ first_commit: "f6ca929",
+ num_commits: 123,
+ num_contributors: 3,
+ }
+ .render()
+ .unwrap();
+ Ok(HttpResponse::Ok().content_type("text/html").body(repo))
+}