Skip to main content

systemprompt_agent/repository/task/
task_messages.rs

1//! Task message-history persistence.
2//!
3//! Copyright (c) systemprompt.io — Business Source License 1.1.
4//! See <https://systemprompt.io> for licensing details.
5
6use super::TaskRepository;
7use crate::models::a2a::{Message, Part};
8use crate::repository::context::message::{
9    get_message_parts, get_messages_by_context, get_messages_by_task, message_exists,
10};
11use systemprompt_traits::RepositoryError;
12
13impl TaskRepository {
14    pub async fn message_exists(
15        &self,
16        message_id: &systemprompt_identifiers::MessageId,
17    ) -> Result<bool, RepositoryError> {
18        message_exists(&self.pool, message_id).await
19    }
20
21    pub async fn get_messages_by_task(
22        &self,
23        task_id: &systemprompt_identifiers::TaskId,
24    ) -> Result<Vec<Message>, RepositoryError> {
25        get_messages_by_task(&self.pool, task_id).await
26    }
27
28    pub async fn get_message_parts(
29        &self,
30        message_id: &systemprompt_identifiers::MessageId,
31    ) -> Result<Vec<Part>, RepositoryError> {
32        get_message_parts(&self.pool, message_id).await
33    }
34
35    pub async fn get_messages_by_context(
36        &self,
37        context_id: &systemprompt_identifiers::ContextId,
38    ) -> Result<Vec<Message>, RepositoryError> {
39        get_messages_by_context(&self.pool, context_id).await
40    }
41}