add first draft of cal

This commit is contained in:
2023-05-24 15:09:38 +02:00
parent 6b0c2059a4
commit aa2d5bc7dd
3 changed files with 50 additions and 3 deletions

33
src/rest/cal.rs Normal file
View File

@@ -0,0 +1,33 @@
use rocket::{get, routes, Route, State};
use sqlx::SqlitePool;
use crate::model::planned_event::PlannedEvent;
#[get("/")]
async fn index(db: &State<SqlitePool>) -> String {
let mut res = String::from(
r#"BEGIN:VCALENDAR
VERSION:2.0
PRODID:-//rudernlinz.at//Trips//DE"#,
);
let events = PlannedEvent::all(db).await;
for event in events {
res.push_str("\nBEGIN:VEVENT");
res.push_str(&format!("\nUID:{}@rudernlinz.at", event.id));
res.push_str(&format!(
"\nDTSTART:{}T{}Z",
event.day, event.planned_starting_time
));
res.push_str(&format!("\nSUMMARY:{}", event.name));
res.push_str("\nEND:VEVENT");
}
res.push_str("\nEND:VCALENDAR");
res
}
pub fn routes() -> Vec<Route> {
routes![index]
}