From c7adc5f014d4635c8468a863a124ddce4a9fe0e7 Mon Sep 17 00:00:00 2001 From: Fuwn Date: Sun, 16 Apr 2023 21:15:12 -0700 Subject: refactor(response): rewrite unnecessary macro to function --- src/response.rs | 54 ++++++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 54 insertions(+) create mode 100644 src/response.rs (limited to 'src/response.rs') diff --git a/src/response.rs b/src/response.rs new file mode 100644 index 0000000..5661938 --- /dev/null +++ b/src/response.rs @@ -0,0 +1,54 @@ +// This file is part of Locus . +// +// This program is free software: you can redistribute it and/or modify +// it under the terms of the GNU General Public License as published by +// the Free Software Foundation, version 3. +// +// This program is distributed in the hope that it will be useful, but +// WITHOUT ANY WARRANTY; without even the implied warranty of +// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU +// General Public License for more details. +// +// You should have received a copy of the GNU General Public License +// along with this program. If not, see . +// +// Copyright (C) 2022-2023 Fuwn +// SPDX-License-Identifier: GPL-3.0-only + +use once_cell::sync::Lazy; + +static QUOTES: Lazy> = Lazy::new(|| { + serde_json::from_str(include_str!("../content/json/quotes.json")).unwrap() +}); + +#[derive(yarte::Template)] +#[template(path = "main")] +struct Main<'a> { + pub body: &'a str, + pub hits: &'a i32, + pub quote: &'a str, + pub commit: &'a str, + pub mini_commit: &'a str, +} + +pub fn success( + body: &impl ToString, + context: &windmark::context::RouteContext, +) -> windmark::Response { + crate::route::cache(context, &body.to_string()); + + windmark::Response::success( + Main { + body: &body.to_string(), + hits: &crate::route::hits_from(context.url.path()), + quote: { + use rand::prelude::SliceRandom; + + "ES.choose(&mut rand::thread_rng()).unwrap().to_string() + }, + commit: &format!("/tree/{}", env!("VERGEN_GIT_SHA")), + mini_commit: env!("VERGEN_GIT_SHA").get(0..5).unwrap_or("UNKNOWN"), + } + .to_string(), + ) +} -- cgit v1.2.3