Added expire to the new session.
Some checks failed
Gitea Actions Demo / Explore-Gitea-Actions (push) Has been cancelled

This commit is contained in:
2026-04-23 13:11:15 -04:00
parent 160de994bb
commit 7afa49a7ba

View File

@@ -1,4 +1,5 @@
use super::SenderID; use super::SenderID;
use chrono::{DateTime, Utc};
use crate::{ use crate::{
action::{Action, Field, MsgAction}, action::{Action, Field, MsgAction},
message::{Message, MessageAction, MessageID}, message::{Message, MessageAction, MessageID},
@@ -487,23 +488,30 @@ mod route_storeage {
#[derive(Clone, Debug)] #[derive(Clone, Debug)]
struct SessionEntry { struct SessionEntry {
id: Field, id: Field,
expire_time: DateTime<Utc>,
} }
impl SessionEntry { impl SessionEntry {
fn id(&self) -> &Field { fn id(&self) -> &Field {
&self.id &self.id
} }
fn is_expired(&self) -> bool {
Utc::now() > self.expire_time
}
} }
impl SessionEntry { impl SessionEntry {
fn new(id: Field) -> Self { fn new(id: Field) -> Self {
Self { id: id } Self { id: id, expire_time: Utc::now(), }
} }
} }
#[cfg(test)] #[cfg(test)]
mod session_entries { mod session_entries {
use super::*; use super::*;
use chrono::Utc;
use std::time::Duration;
#[test] #[test]
fn does_entry_return_id() { fn does_entry_return_id() {
@@ -513,7 +521,14 @@ mod session_entries {
} }
#[test] #[test]
fn can_determine_if_entry_expired() {} fn can_determine_if_entry_expired() {
let mut entry = SessionEntry::new(Uuid::nil().into());
let data = Utc::now();
entry.expire_time = data + Duration::from_secs(1);
assert!(!entry.is_expired(), "entry should not be expired");
entry.expire_time = data - Duration::from_secs(1);
assert!(entry.is_expired(), "entry should be expired");
}
} }
struct Session { struct Session {
@@ -543,7 +558,7 @@ impl Session {
while self.entries.contains_key(&new_id) { while self.entries.contains_key(&new_id) {
new_id = Uuid::new_v4().into(); new_id = Uuid::new_v4().into();
} }
let output = SessionEntry { id: new_id.clone() }; let output = SessionEntry::new(new_id.clone());
self.entries.insert(new_id, output.clone()); self.entries.insert(new_id, output.clone());
output output
} }