pub struct SqliteRepository { /* private fields */ }Expand description
Access point of the repository using a SQLite connection pool.
Implementations§
Source§impl SqliteRepository
impl SqliteRepository
Sourcepub fn new(pool: SqlitePool) -> Self
pub fn new(pool: SqlitePool) -> Self
Creates a new SqliteRepository from a SqlitePool.
Sourcepub fn get_pool(&self) -> &SqlitePool
pub fn get_pool(&self) -> &SqlitePool
Returns the stored SqlitePool.
Trait Implementations§
Source§impl BranchRepository for SqliteRepository
impl BranchRepository for SqliteRepository
Source§fn get_all<'life0, 'async_trait>(
&'life0 self,
) -> Pin<Box<dyn Future<Output = Result<Vec<Branch>, RepositoryError>> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
fn get_all<'life0, 'async_trait>(
&'life0 self,
) -> Pin<Box<dyn Future<Output = Result<Vec<Branch>, RepositoryError>> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
Returns all branches.
Source§fn find_by_id<'life0, 'async_trait>(
&'life0 self,
id: i64,
) -> Pin<Box<dyn Future<Output = Result<Option<Branch>, RepositoryError>> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
fn find_by_id<'life0, 'async_trait>(
&'life0 self,
id: i64,
) -> Pin<Box<dyn Future<Output = Result<Option<Branch>, RepositoryError>> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
Returns the branch with the given
id.Source§fn delete_by_id<'life0, 'async_trait>(
&'life0 self,
id: i64,
) -> Pin<Box<dyn Future<Output = Result<(), RepositoryError>> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
fn delete_by_id<'life0, 'async_trait>(
&'life0 self,
id: i64,
) -> Pin<Box<dyn Future<Output = Result<(), RepositoryError>> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
Deletes the branch with the given
id.Source§fn update_last_commit_hash<'life0, 'life1, 'async_trait>(
&'life0 self,
id: i64,
hash: &'life1 CommitHash,
) -> Pin<Box<dyn Future<Output = Result<(), RepositoryError>> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
'life1: 'async_trait,
fn update_last_commit_hash<'life0, 'life1, 'async_trait>(
&'life0 self,
id: i64,
hash: &'life1 CommitHash,
) -> Pin<Box<dyn Future<Output = Result<(), RepositoryError>> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
'life1: 'async_trait,
Updates the last commit hash of the branch.
Source§fn update_last_commit_hash_in_tx<'life0, 'life1, 'life2, 'async_trait>(
&'life0 self,
id: i64,
hash: &'life1 CommitHash,
tx: &'life2 mut SqliteConnection,
) -> Pin<Box<dyn Future<Output = Result<(), RepositoryError>> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
'life1: 'async_trait,
'life2: 'async_trait,
fn update_last_commit_hash_in_tx<'life0, 'life1, 'life2, 'async_trait>(
&'life0 self,
id: i64,
hash: &'life1 CommitHash,
tx: &'life2 mut SqliteConnection,
) -> Pin<Box<dyn Future<Output = Result<(), RepositoryError>> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
'life1: 'async_trait,
'life2: 'async_trait,
Updates the last commit hash of the branch within a transaction.
Source§impl Debug for SqliteRepository
impl Debug for SqliteRepository
Source§impl SubscriptionRepository for SqliteRepository
impl SubscriptionRepository for SqliteRepository
Source§fn create<'life0, 'life1, 'async_trait>(
&'life0 self,
subscription_payload: &'life1 CreateSubscription,
) -> Pin<Box<dyn Future<Output = Result<SubscriptionWithBranch, RepositoryError>> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
'life1: 'async_trait,
fn create<'life0, 'life1, 'async_trait>(
&'life0 self,
subscription_payload: &'life1 CreateSubscription,
) -> Pin<Box<dyn Future<Output = Result<SubscriptionWithBranch, RepositoryError>> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
'life1: 'async_trait,
Creates a new subscription and returns it.
Source§fn get_by_id<'life0, 'async_trait>(
&'life0 self,
id: i64,
) -> Pin<Box<dyn Future<Output = Result<Option<Subscription>, RepositoryError>> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
fn get_by_id<'life0, 'async_trait>(
&'life0 self,
id: i64,
) -> Pin<Box<dyn Future<Output = Result<Option<Subscription>, RepositoryError>> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
Returns the subscription with the given id.
Source§fn get_by_id_with_branch<'life0, 'async_trait>(
&'life0 self,
id: i64,
) -> Pin<Box<dyn Future<Output = Result<Option<SubscriptionWithBranch>, RepositoryError>> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
fn get_by_id_with_branch<'life0, 'async_trait>(
&'life0 self,
id: i64,
) -> Pin<Box<dyn Future<Output = Result<Option<SubscriptionWithBranch>, RepositoryError>> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
Returns the subscription with the given id with its branch information.
Source§fn get_by_keys_with_branch<'life0, 'life1, 'life2, 'async_trait>(
&'life0 self,
branch_id: i64,
target_repo: &'life1 TargetRepo,
event_type: &'life2 EventType,
) -> Pin<Box<dyn Future<Output = Result<Option<SubscriptionWithBranch>, RepositoryError>> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
'life1: 'async_trait,
'life2: 'async_trait,
fn get_by_keys_with_branch<'life0, 'life1, 'life2, 'async_trait>(
&'life0 self,
branch_id: i64,
target_repo: &'life1 TargetRepo,
event_type: &'life2 EventType,
) -> Pin<Box<dyn Future<Output = Result<Option<SubscriptionWithBranch>, RepositoryError>> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
'life1: 'async_trait,
'life2: 'async_trait,
Returns the subscription with the given keys with its branch information.
Source§fn list_paginated<'life0, 'async_trait>(
&'life0 self,
last_id: i64,
limit: i64,
) -> Pin<Box<dyn Future<Output = Result<Vec<Subscription>, RepositoryError>> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
fn list_paginated<'life0, 'async_trait>(
&'life0 self,
last_id: i64,
limit: i64,
) -> Pin<Box<dyn Future<Output = Result<Vec<Subscription>, RepositoryError>> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
Lists some subscriptions. Read more
Source§fn list_paginated_with_branches<'life0, 'async_trait>(
&'life0 self,
last_id: i64,
limit: i64,
) -> Pin<Box<dyn Future<Output = Result<Vec<SubscriptionWithBranch>, RepositoryError>> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
fn list_paginated_with_branches<'life0, 'async_trait>(
&'life0 self,
last_id: i64,
limit: i64,
) -> Pin<Box<dyn Future<Output = Result<Vec<SubscriptionWithBranch>, RepositoryError>> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
Lists some subscriptions with their branch information.
Source§fn count_remaining<'life0, 'async_trait>(
&'life0 self,
last_id: i64,
) -> Pin<Box<dyn Future<Output = Result<i64, RepositoryError>> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
fn count_remaining<'life0, 'async_trait>(
&'life0 self,
last_id: i64,
) -> Pin<Box<dyn Future<Output = Result<i64, RepositoryError>> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
Counts the remaining subscriptions after
last_id.Source§fn update<'life0, 'life1, 'async_trait>(
&'life0 self,
id: i64,
subscription: &'life1 UpdateSubscription,
) -> Pin<Box<dyn Future<Output = Result<Subscription, RepositoryError>> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
'life1: 'async_trait,
fn update<'life0, 'life1, 'async_trait>(
&'life0 self,
id: i64,
subscription: &'life1 UpdateSubscription,
) -> Pin<Box<dyn Future<Output = Result<Subscription, RepositoryError>> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
'life1: 'async_trait,
Updates the subscription with the given id.
Source§fn delete<'life0, 'async_trait>(
&'life0 self,
id: i64,
) -> Pin<Box<dyn Future<Output = Result<(), RepositoryError>> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
fn delete<'life0, 'async_trait>(
&'life0 self,
id: i64,
) -> Pin<Box<dyn Future<Output = Result<(), RepositoryError>> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
Deletes the subscription with the given id.
Source§fn get_branch_id_by_subscription_id<'life0, 'async_trait>(
&'life0 self,
id: i64,
) -> Pin<Box<dyn Future<Output = Result<Option<i64>, RepositoryError>> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
fn get_branch_id_by_subscription_id<'life0, 'async_trait>(
&'life0 self,
id: i64,
) -> Pin<Box<dyn Future<Output = Result<Option<i64>, RepositoryError>> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
Returns the branch ID associated to the given subscription’s
id.Source§fn count_subscriptions_by_branch_id<'life0, 'async_trait>(
&'life0 self,
branch_id: i64,
) -> Pin<Box<dyn Future<Output = Result<i64, RepositoryError>> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
fn count_subscriptions_by_branch_id<'life0, 'async_trait>(
&'life0 self,
branch_id: i64,
) -> Pin<Box<dyn Future<Output = Result<i64, RepositoryError>> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
Counts the number of subscriptions associated to the given
branch_id.Source§fn delete_subscription_and_cascade<'life0, 'async_trait>(
&'life0 self,
id: i64,
) -> Pin<Box<dyn Future<Output = Result<(), RepositoryError>> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
fn delete_subscription_and_cascade<'life0, 'async_trait>(
&'life0 self,
id: i64,
) -> Pin<Box<dyn Future<Output = Result<(), RepositoryError>> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
Deletes a subscription and cascades deletion to the associated branch if no other subscriptions exist.
Source§impl TriggerRepository for SqliteRepository
impl TriggerRepository for SqliteRepository
Source§fn get_all<'life0, 'async_trait>(
&'life0 self,
) -> Pin<Box<dyn Future<Output = Result<Vec<TriggerQueueItem>, RepositoryError>> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
fn get_all<'life0, 'async_trait>(
&'life0 self,
) -> Pin<Box<dyn Future<Output = Result<Vec<TriggerQueueItem>, RepositoryError>> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
Returns all the trigger queue items.
Source§fn delete_by_id<'life0, 'async_trait>(
&'life0 self,
id: i64,
) -> Pin<Box<dyn Future<Output = Result<(), RepositoryError>> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
fn delete_by_id<'life0, 'async_trait>(
&'life0 self,
id: i64,
) -> Pin<Box<dyn Future<Output = Result<(), RepositoryError>> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
Deletes the trigger queue item with the given
id.Source§fn find_oldest_pending_and_mark_processing<'life0, 'async_trait>(
&'life0 self,
) -> Pin<Box<dyn Future<Output = Result<Option<TriggerQueueItem>, RepositoryError>> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
fn find_oldest_pending_and_mark_processing<'life0, 'async_trait>(
&'life0 self,
) -> Pin<Box<dyn Future<Output = Result<Option<TriggerQueueItem>, RepositoryError>> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
Finds the oldest pending trigger queue item and marks it as processing in a transaction.
Source§fn update_retry_status<'life0, 'async_trait>(
&'life0 self,
params: UpdateRetryStatus,
) -> Pin<Box<dyn Future<Output = Result<(), RepositoryError>> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
fn update_retry_status<'life0, 'async_trait>(
&'life0 self,
params: UpdateRetryStatus,
) -> Pin<Box<dyn Future<Output = Result<(), RepositoryError>> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
Schedules a retry or marks the trigger as failed if max attempts is reached.
Source§fn recover_stuck_tasks<'life0, 'async_trait>(
&'life0 self,
threshold_seconds: u64,
) -> Pin<Box<dyn Future<Output = Result<(), RepositoryError>> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
fn recover_stuck_tasks<'life0, 'async_trait>(
&'life0 self,
threshold_seconds: u64,
) -> Pin<Box<dyn Future<Output = Result<(), RepositoryError>> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
Recovers tasks that have been stuck in
PROCESSING for too long.Source§fn queue_triggers_for_branch<'life0, 'life1, 'life2, 'async_trait>(
&'life0 self,
branch_id: i64,
new_hash: &'life1 CommitHash,
executor: &'life2 mut SqliteConnection,
) -> Pin<Box<dyn Future<Output = Result<(), RepositoryError>> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
'life1: 'async_trait,
'life2: 'async_trait,
fn queue_triggers_for_branch<'life0, 'life1, 'life2, 'async_trait>(
&'life0 self,
branch_id: i64,
new_hash: &'life1 CommitHash,
executor: &'life2 mut SqliteConnection,
) -> Pin<Box<dyn Future<Output = Result<(), RepositoryError>> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
'life1: 'async_trait,
'life2: 'async_trait,
Queues trigger events for all subscriptions of a branch.
Auto Trait Implementations§
impl !RefUnwindSafe for SqliteRepository
impl !UnwindSafe for SqliteRepository
impl Freeze for SqliteRepository
impl Send for SqliteRepository
impl Sync for SqliteRepository
impl Unpin for SqliteRepository
impl UnsafeUnpin for SqliteRepository
Blanket Implementations§
Source§impl<T> BorrowMut<T> for Twhere
T: ?Sized,
impl<T> BorrowMut<T> for Twhere
T: ?Sized,
Source§fn borrow_mut(&mut self) -> &mut T
fn borrow_mut(&mut self) -> &mut T
Mutably borrows from an owned value. Read more
Source§impl<T> Instrument for T
impl<T> Instrument for T
Source§fn instrument(self, span: Span) -> Instrumented<Self>
fn instrument(self, span: Span) -> Instrumented<Self>
Source§fn in_current_span(self) -> Instrumented<Self>
fn in_current_span(self) -> Instrumented<Self>
Source§impl<T> IntoEither for T
impl<T> IntoEither for T
Source§fn into_either(self, into_left: bool) -> Either<Self, Self>
fn into_either(self, into_left: bool) -> Either<Self, Self>
Converts
self into a Left variant of Either<Self, Self>
if into_left is true.
Converts self into a Right variant of Either<Self, Self>
otherwise. Read moreSource§fn into_either_with<F>(self, into_left: F) -> Either<Self, Self>
fn into_either_with<F>(self, into_left: F) -> Either<Self, Self>
Converts
self into a Left variant of Either<Self, Self>
if into_left(&self) returns true.
Converts self into a Right variant of Either<Self, Self>
otherwise. Read more