Skip to main content

dejavu/store/
session.rs

1//! Session lifecycle helpers.
2
3use super::Db;
4use crate::error::StoreError;
5use rusqlite::params;
6
7impl Db {
8    /// Mark a session ended (idempotent — only sets `ended_at` once).
9    pub fn end_session(&self, session_id: &str, ended_at: &str) -> Result<(), StoreError> {
10        self.conn.execute(
11            "UPDATE sessions SET ended_at = ?2 WHERE id = ?1 AND ended_at IS NULL",
12            params![session_id, ended_at],
13        )?;
14        Ok(())
15    }
16}