Files
k-mood/crates/domain/src/ports/push.rs
Gabriel Kaszewski 95739892de
Some checks failed
CI / ci (push) Failing after 1m48s
init
2026-08-25 23:24:36 +02:00

22 lines
839 B
Rust

use crate::errors::DomainError;
use crate::push::{PushSubscription, PushSubscriptionId};
use crate::user::UserId;
#[async_trait::async_trait]
pub trait PushSubscriptionCommandPort: Send + Sync {
async fn save(&self, subscription: &PushSubscription) -> Result<(), DomainError>;
async fn delete(&self, id: &PushSubscriptionId) -> Result<(), DomainError>;
async fn delete_by_endpoint(&self, endpoint: &str) -> Result<(), DomainError>;
async fn delete_all_by_user(&self, user_id: &UserId) -> Result<(), DomainError>;
}
#[async_trait::async_trait]
pub trait PushSubscriptionQueryPort: Send + Sync {
async fn find_by_user(&self, user_id: &UserId) -> Result<Vec<PushSubscription>, DomainError>;
async fn find_by_endpoint(
&self,
endpoint: &str,
) -> Result<Option<PushSubscription>, DomainError>;
}