controller/src/return_models.rs

36 lines
747 B
Rust
Raw Normal View History

2023-11-20 23:44:45 +00:00
use futures::executor;
2022-07-17 18:19:36 +00:00
use serde::Serialize;
use sqlx::pool::PoolConnection;
use sqlx::Sqlite;
2022-04-02 23:35:51 +00:00
use crate::db::models::Schedule;
use crate::db::schedules::get_schedule_tags;
2022-04-02 23:35:51 +00:00
#[derive(Debug, Serialize)]
pub struct ReturnSchedule {
2022-07-19 22:38:09 +00:00
#[serde(flatten)]
pub schedule: Schedule,
pub tags: Vec<String>,
2022-04-02 23:35:51 +00:00
}
2023-11-20 23:44:45 +00:00
impl ReturnSchedule {
pub fn load_tags(&mut self, conn: &mut PoolConnection<Sqlite>) {
self.tags = executor::block_on(get_schedule_tags(conn, &self.schedule)).unwrap();
2023-11-20 23:44:45 +00:00
}
}
2022-04-02 23:35:51 +00:00
impl From<Schedule> for ReturnSchedule {
2022-07-19 22:38:09 +00:00
fn from(schedule: Schedule) -> Self {
ReturnSchedule {
schedule,
tags: vec![],
}
2022-07-19 22:38:09 +00:00
}
2022-07-17 18:19:36 +00:00
}
impl From<&Schedule> for ReturnSchedule {
2022-07-19 22:38:09 +00:00
fn from(schedule: &Schedule) -> Self {
ReturnSchedule::from(schedule.clone())
}
2022-07-17 18:19:36 +00:00
}