application: schedule bounded context
This commit is contained in:
23
crates/application/src/schedule/get_active.rs
Normal file
23
crates/application/src/schedule/get_active.rs
Normal file
@@ -0,0 +1,23 @@
|
||||
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;
|
||||
Reference in New Issue
Block a user