24 lines
623 B
Rust
24 lines
623 B
Rust
use chrono::Utc;
|
|
|
|
use domain::models::GeneratedSchedule;
|
|
use domain::value_objects::ChannelId;
|
|
use domain::DomainResult;
|
|
|
|
use super::deps::ScheduleDeps;
|
|
use super::queries::GetActiveScheduleQuery;
|
|
|
|
/// Fetch the schedule currently active at `now`.
|
|
///
|
|
/// Returns `None` when no schedule covers the current time.
|
|
pub async fn execute(
|
|
deps: &ScheduleDeps,
|
|
query: GetActiveScheduleQuery,
|
|
) -> DomainResult<Option<GeneratedSchedule>> {
|
|
let channel_id = ChannelId::from(query.channel_id);
|
|
deps.schedule_query.find_active(channel_id, Utc::now()).await
|
|
}
|
|
|
|
#[cfg(test)]
|
|
#[path = "tests/get_active.rs"]
|
|
mod tests;
|