Watch
0
0
Fork
You've already forked hyperhive
0

notify router: read custom flows and disabled built-ins from a stored document

This commit is contained in:
atlas 2026-10-24 03:44:00 +02:00 • committed by mara
commit bb08fac33c
11 changed files with 1418 additions and 342 deletions

View file

@ -6,7 +6,9 @@ use std::collections::BTreeSet;
use swarm_wire::router_todo::Op;
use crate::event::{Delivery, Snapshot, fields, is_assign};
use crate::flow::{Action, Flow};
use swarm_wire::notify_flows::Flow;
use crate::flow::{Action, evaluate};
/// What one event comes to.
#[derive(Debug, PartialEq, Eq)]
@ -30,7 +32,7 @@ pub fn route(
let fields = fields(event_type, delivery, snapshot);
let mut actions = Vec::new();
let mut skipped = Vec::new();
for action in flows.iter().flat_map(|f| f.evaluate(event_type, &fields)) {
for action in flows.iter().flat_map(|f| evaluate(f, event_type, &fields)) {
if is_agent(&action.agent) {
actions.push(action);
} else if !skipped.contains(&action.agent) {
@ -68,7 +70,7 @@ pub fn route(
#[cfg(test)]
mod tests {
use super::*;
use crate::flow::builtins;
use swarm_wire::notify_flows::builtins;
fn delivery(action: &str, assignees: &[&str]) -> Delivery {
Delivery {