date
This commit is contained in:
@@ -2,7 +2,7 @@
|
||||
use rocket::{*, fairing::AdHoc};
|
||||
use rocket_dyn_templates::Template;
|
||||
use ::serde::Deserialize;
|
||||
use tools::tera::{static_filter, translate_filter, calculate_age, insert_space_every, lang_entity, gravatar_link};
|
||||
use tools::tera::{static_filter, translate_filter, calculate_age, insert_space_every, lang_entity, gravatar_link, format_date};
|
||||
|
||||
pub mod routes;
|
||||
pub mod services;
|
||||
@@ -36,6 +36,7 @@ pub fn rocket_builder() -> Rocket<Build> {
|
||||
engines.tera.register_filter("gravatar_link", gravatar_link);
|
||||
// filters specific to API
|
||||
engines.tera.register_filter("lang_entity", lang_entity);
|
||||
engines.tera.register_filter("format_date", format_date);
|
||||
Ok(())
|
||||
})
|
||||
).attach(
|
||||
|
||||
@@ -1,6 +1,6 @@
|
||||
use std::{collections::HashMap, str::FromStr};
|
||||
|
||||
use chrono::{Utc, Datelike};
|
||||
use chrono::{Utc, Datelike, NaiveDate};
|
||||
use log::error;
|
||||
use rocket_dyn_templates::tera::{Value, Error};
|
||||
use ovlach_data::cv::chrono::from_string;
|
||||
@@ -56,7 +56,7 @@ pub fn lang_entity(
|
||||
value: &Value,
|
||||
_: &HashMap<String, rocket_dyn_templates::tera::Value>
|
||||
) -> Result<Value, Error> {
|
||||
error!("{:?}", value); // TODO: rewrite me!!!
|
||||
// TODO: rewrite me!
|
||||
return Ok(rocket_dyn_templates::tera::Value::String(format!("{}", value["en"].as_str().unwrap()))); // TODO: fix-me here!
|
||||
}
|
||||
|
||||
@@ -68,6 +68,30 @@ pub fn gravatar_link(
|
||||
return Ok(rocket_dyn_templates::tera::Value::String(format!("https://gravatar.com/avatar/{}", val))); // TODO: fix-me here!
|
||||
}
|
||||
|
||||
pub fn format_date(
|
||||
value: &Value,
|
||||
_: &HashMap<String, rocket_dyn_templates::tera::Value>
|
||||
) -> Result<Value, Error> {
|
||||
|
||||
if value.is_null() {
|
||||
return Ok(rocket_dyn_templates::tera::Value::String("".to_string()))
|
||||
}
|
||||
let val = value.as_str().unwrap();
|
||||
|
||||
if val == "" {
|
||||
return Ok(rocket_dyn_templates::tera::Value::String("".to_string()))
|
||||
}
|
||||
|
||||
let value = from_string(value.as_str().unwrap().into());
|
||||
match value {
|
||||
Ok(date) => Ok(rocket_dyn_templates::tera::Value::String(date.format("%Y").to_string())),
|
||||
Err(e) => {
|
||||
error!("Can't parse date: {}", e);
|
||||
return Ok(rocket_dyn_templates::tera::Value::String("".to_string())) // TOdo: error
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
pub fn insert_space_every(
|
||||
value: &Value,
|
||||
args: &HashMap<String, rocket_dyn_templates::tera::Value>
|
||||
@@ -90,7 +114,6 @@ pub fn calculate_age(
|
||||
value: &Value,
|
||||
_: &HashMap<String, rocket_dyn_templates::tera::Value>
|
||||
) -> Result<Value, Error> {
|
||||
error!("{:?}", value.as_str());
|
||||
//let s = value.to_string().trim_matches('"'); // TODO: unwrap here!
|
||||
let value = from_string(value.as_str().unwrap().into());
|
||||
match value {
|
||||
|
||||
Reference in New Issue
Block a user