Storylines: the same site told several ways, one per visitor, counted
Any text a person reads may be a list, one entry per storyline, every list the same length. A visitor is given one storyline for the whole site and reads it on every page and in every mail about their case. Records and events carry the storyline; GET /report gives counts per bucket, storyline and state, and nothing else. Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01GT37Z1Xtfd9pUuQtMTg6Yt
This commit is contained in:
co-authored by
Claude Fable 5.1
parent
cc3107e502
commit
f395ace556
+3
-1
@@ -226,6 +226,7 @@ async fn move_to(state: &crate::server::AppState, store: &async_nats::jetstream:
|
||||
alternative: target.to_string(),
|
||||
responses: payload,
|
||||
timestamp_ms: now_ms,
|
||||
storyline: answer.storyline,
|
||||
};
|
||||
let _ = crate::events::emit_answer_submitted(&state.nats, &event).await;
|
||||
Ok(answer)
|
||||
@@ -266,7 +267,7 @@ pub async fn grant(state: &crate::server::AppState, group: &str, name: &str, who
|
||||
"name": name, "group": group, "by": by,
|
||||
"phone": who.phone, "email": who.email, "sub": who.sub,
|
||||
});
|
||||
crate::answers::store_answer(&state.jetstream, &state.aggregates.load(), BUCKET, id, "/", "Membership", &responses, now_ms).await?;
|
||||
crate::answers::store_answer(&state.jetstream, &state.aggregates.load(), BUCKET, id, "/", "Membership", &responses, now_ms, 0).await?;
|
||||
Ok(invited(true))
|
||||
}
|
||||
}
|
||||
@@ -346,6 +347,7 @@ mod tests {
|
||||
responses: serde_json::json!({ "group": group, "phone": phone, "email": email, "sub": sub, "name": "X" }),
|
||||
state: state.into(),
|
||||
submitted_ms: 0,
|
||||
storyline: 0,
|
||||
decided_ms: None,
|
||||
decided_by: None,
|
||||
notes: Vec::new(),
|
||||
|
||||
Reference in New Issue
Block a user