NotificationRepository

Trait NotificationRepository 

Source
pub trait NotificationRepository: Send + Sync {
Show 15 methods // Required methods fn create<'life0, 'life1, 'async_trait>( &'life0 self, notification: &'life1 Notification, ) -> Pin<Box<dyn Future<Output = Result<Notification, String>> + Send + 'async_trait>> where Self: 'async_trait, 'life0: 'async_trait, 'life1: 'async_trait; fn find_by_id<'life0, 'async_trait>( &'life0 self, id: Uuid, ) -> Pin<Box<dyn Future<Output = Result<Option<Notification>, String>> + Send + 'async_trait>> where Self: 'async_trait, 'life0: 'async_trait; fn find_by_user<'life0, 'async_trait>( &'life0 self, user_id: Uuid, ) -> Pin<Box<dyn Future<Output = Result<Vec<Notification>, String>> + Send + 'async_trait>> where Self: 'async_trait, 'life0: 'async_trait; fn find_by_user_and_status<'life0, 'async_trait>( &'life0 self, user_id: Uuid, status: NotificationStatus, ) -> Pin<Box<dyn Future<Output = Result<Vec<Notification>, String>> + Send + 'async_trait>> where Self: 'async_trait, 'life0: 'async_trait; fn find_by_user_and_channel<'life0, 'async_trait>( &'life0 self, user_id: Uuid, channel: NotificationChannel, ) -> Pin<Box<dyn Future<Output = Result<Vec<Notification>, String>> + Send + 'async_trait>> where Self: 'async_trait, 'life0: 'async_trait; fn find_unread_by_user<'life0, 'async_trait>( &'life0 self, user_id: Uuid, ) -> Pin<Box<dyn Future<Output = Result<Vec<Notification>, String>> + Send + 'async_trait>> where Self: 'async_trait, 'life0: 'async_trait; fn find_pending<'life0, 'async_trait>( &'life0 self, ) -> Pin<Box<dyn Future<Output = Result<Vec<Notification>, String>> + Send + 'async_trait>> where Self: 'async_trait, 'life0: 'async_trait; fn find_failed<'life0, 'async_trait>( &'life0 self, ) -> Pin<Box<dyn Future<Output = Result<Vec<Notification>, String>> + Send + 'async_trait>> where Self: 'async_trait, 'life0: 'async_trait; fn find_by_organization<'life0, 'async_trait>( &'life0 self, organization_id: Uuid, ) -> Pin<Box<dyn Future<Output = Result<Vec<Notification>, String>> + Send + 'async_trait>> where Self: 'async_trait, 'life0: 'async_trait; fn update<'life0, 'life1, 'async_trait>( &'life0 self, notification: &'life1 Notification, ) -> Pin<Box<dyn Future<Output = Result<Notification, String>> + Send + 'async_trait>> where Self: 'async_trait, 'life0: 'async_trait, 'life1: 'async_trait; fn delete<'life0, 'async_trait>( &'life0 self, id: Uuid, ) -> Pin<Box<dyn Future<Output = Result<bool, String>> + Send + 'async_trait>> where Self: 'async_trait, 'life0: 'async_trait; fn count_unread_by_user<'life0, 'async_trait>( &'life0 self, user_id: Uuid, ) -> Pin<Box<dyn Future<Output = Result<i64, String>> + Send + 'async_trait>> where Self: 'async_trait, 'life0: 'async_trait; fn count_by_user_and_status<'life0, 'async_trait>( &'life0 self, user_id: Uuid, status: NotificationStatus, ) -> Pin<Box<dyn Future<Output = Result<i64, String>> + Send + 'async_trait>> where Self: 'async_trait, 'life0: 'async_trait; fn mark_all_read_by_user<'life0, 'async_trait>( &'life0 self, user_id: Uuid, ) -> Pin<Box<dyn Future<Output = Result<i64, String>> + Send + 'async_trait>> where Self: 'async_trait, 'life0: 'async_trait; fn delete_older_than<'life0, 'async_trait>( &'life0 self, days: i64, ) -> Pin<Box<dyn Future<Output = Result<i64, String>> + Send + 'async_trait>> where Self: 'async_trait, 'life0: 'async_trait;
}

Required Methods§

Source

fn create<'life0, 'life1, 'async_trait>( &'life0 self, notification: &'life1 Notification, ) -> Pin<Box<dyn Future<Output = Result<Notification, String>> + Send + 'async_trait>>
where Self: 'async_trait, 'life0: 'async_trait, 'life1: 'async_trait,

Create a new notification

Source

fn find_by_id<'life0, 'async_trait>( &'life0 self, id: Uuid, ) -> Pin<Box<dyn Future<Output = Result<Option<Notification>, String>> + Send + 'async_trait>>
where Self: 'async_trait, 'life0: 'async_trait,

Find notification by ID

Source

fn find_by_user<'life0, 'async_trait>( &'life0 self, user_id: Uuid, ) -> Pin<Box<dyn Future<Output = Result<Vec<Notification>, String>> + Send + 'async_trait>>
where Self: 'async_trait, 'life0: 'async_trait,

Find notifications by user

Source

fn find_by_user_and_status<'life0, 'async_trait>( &'life0 self, user_id: Uuid, status: NotificationStatus, ) -> Pin<Box<dyn Future<Output = Result<Vec<Notification>, String>> + Send + 'async_trait>>
where Self: 'async_trait, 'life0: 'async_trait,

Find notifications by user and status

Source

fn find_by_user_and_channel<'life0, 'async_trait>( &'life0 self, user_id: Uuid, channel: NotificationChannel, ) -> Pin<Box<dyn Future<Output = Result<Vec<Notification>, String>> + Send + 'async_trait>>
where Self: 'async_trait, 'life0: 'async_trait,

Find notifications by user and channel

Source

fn find_unread_by_user<'life0, 'async_trait>( &'life0 self, user_id: Uuid, ) -> Pin<Box<dyn Future<Output = Result<Vec<Notification>, String>> + Send + 'async_trait>>
where Self: 'async_trait, 'life0: 'async_trait,

Find unread in-app notifications for user

Source

fn find_pending<'life0, 'async_trait>( &'life0 self, ) -> Pin<Box<dyn Future<Output = Result<Vec<Notification>, String>> + Send + 'async_trait>>
where Self: 'async_trait, 'life0: 'async_trait,

Find pending notifications (to be sent)

Source

fn find_failed<'life0, 'async_trait>( &'life0 self, ) -> Pin<Box<dyn Future<Output = Result<Vec<Notification>, String>> + Send + 'async_trait>>
where Self: 'async_trait, 'life0: 'async_trait,

Find failed notifications (for retry)

Source

fn find_by_organization<'life0, 'async_trait>( &'life0 self, organization_id: Uuid, ) -> Pin<Box<dyn Future<Output = Result<Vec<Notification>, String>> + Send + 'async_trait>>
where Self: 'async_trait, 'life0: 'async_trait,

Find notifications by organization

Source

fn update<'life0, 'life1, 'async_trait>( &'life0 self, notification: &'life1 Notification, ) -> Pin<Box<dyn Future<Output = Result<Notification, String>> + Send + 'async_trait>>
where Self: 'async_trait, 'life0: 'async_trait, 'life1: 'async_trait,

Update notification

Source

fn delete<'life0, 'async_trait>( &'life0 self, id: Uuid, ) -> Pin<Box<dyn Future<Output = Result<bool, String>> + Send + 'async_trait>>
where Self: 'async_trait, 'life0: 'async_trait,

Delete notification

Source

fn count_unread_by_user<'life0, 'async_trait>( &'life0 self, user_id: Uuid, ) -> Pin<Box<dyn Future<Output = Result<i64, String>> + Send + 'async_trait>>
where Self: 'async_trait, 'life0: 'async_trait,

Count unread notifications for user

Source

fn count_by_user_and_status<'life0, 'async_trait>( &'life0 self, user_id: Uuid, status: NotificationStatus, ) -> Pin<Box<dyn Future<Output = Result<i64, String>> + Send + 'async_trait>>
where Self: 'async_trait, 'life0: 'async_trait,

Count notifications by user and status

Source

fn mark_all_read_by_user<'life0, 'async_trait>( &'life0 self, user_id: Uuid, ) -> Pin<Box<dyn Future<Output = Result<i64, String>> + Send + 'async_trait>>
where Self: 'async_trait, 'life0: 'async_trait,

Mark all in-app notifications as read for user

Source

fn delete_older_than<'life0, 'async_trait>( &'life0 self, days: i64, ) -> Pin<Box<dyn Future<Output = Result<i64, String>> + Send + 'async_trait>>
where Self: 'async_trait, 'life0: 'async_trait,

Delete old notifications (cleanup)

Implementors§