SharedObjectRepository

Trait SharedObjectRepository 

Source
pub trait SharedObjectRepository: Send + Sync {
Show 17 methods // Required methods fn create<'life0, 'life1, 'async_trait>( &'life0 self, object: &'life1 SharedObject, ) -> Pin<Box<dyn Future<Output = Result<SharedObject, 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<SharedObject>, String>> + Send + 'async_trait>> where Self: 'async_trait, 'life0: 'async_trait; fn find_by_building<'life0, 'async_trait>( &'life0 self, building_id: Uuid, ) -> Pin<Box<dyn Future<Output = Result<Vec<SharedObject>, String>> + Send + 'async_trait>> where Self: 'async_trait, 'life0: 'async_trait; fn find_available_by_building<'life0, 'async_trait>( &'life0 self, building_id: Uuid, ) -> Pin<Box<dyn Future<Output = Result<Vec<SharedObject>, String>> + Send + 'async_trait>> where Self: 'async_trait, 'life0: 'async_trait; fn find_borrowed_by_building<'life0, 'async_trait>( &'life0 self, building_id: Uuid, ) -> Pin<Box<dyn Future<Output = Result<Vec<SharedObject>, String>> + Send + 'async_trait>> where Self: 'async_trait, 'life0: 'async_trait; fn find_overdue_by_building<'life0, 'async_trait>( &'life0 self, building_id: Uuid, ) -> Pin<Box<dyn Future<Output = Result<Vec<SharedObject>, String>> + Send + 'async_trait>> where Self: 'async_trait, 'life0: 'async_trait; fn find_by_owner<'life0, 'async_trait>( &'life0 self, owner_id: Uuid, ) -> Pin<Box<dyn Future<Output = Result<Vec<SharedObject>, String>> + Send + 'async_trait>> where Self: 'async_trait, 'life0: 'async_trait; fn find_borrowed_by_user<'life0, 'async_trait>( &'life0 self, borrower_id: Uuid, ) -> Pin<Box<dyn Future<Output = Result<Vec<SharedObject>, String>> + Send + 'async_trait>> where Self: 'async_trait, 'life0: 'async_trait; fn find_by_category<'life0, 'async_trait>( &'life0 self, building_id: Uuid, category: SharedObjectCategory, ) -> Pin<Box<dyn Future<Output = Result<Vec<SharedObject>, String>> + Send + 'async_trait>> where Self: 'async_trait, 'life0: 'async_trait; fn find_free_by_building<'life0, 'async_trait>( &'life0 self, building_id: Uuid, ) -> Pin<Box<dyn Future<Output = Result<Vec<SharedObject>, String>> + Send + 'async_trait>> where Self: 'async_trait, 'life0: 'async_trait; fn update<'life0, 'life1, 'async_trait>( &'life0 self, object: &'life1 SharedObject, ) -> Pin<Box<dyn Future<Output = Result<SharedObject, 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<(), String>> + Send + 'async_trait>> where Self: 'async_trait, 'life0: 'async_trait; fn count_by_building<'life0, 'async_trait>( &'life0 self, building_id: Uuid, ) -> Pin<Box<dyn Future<Output = Result<i64, String>> + Send + 'async_trait>> where Self: 'async_trait, 'life0: 'async_trait; fn count_available_by_building<'life0, 'async_trait>( &'life0 self, building_id: Uuid, ) -> Pin<Box<dyn Future<Output = Result<i64, String>> + Send + 'async_trait>> where Self: 'async_trait, 'life0: 'async_trait; fn count_borrowed_by_building<'life0, 'async_trait>( &'life0 self, building_id: Uuid, ) -> Pin<Box<dyn Future<Output = Result<i64, String>> + Send + 'async_trait>> where Self: 'async_trait, 'life0: 'async_trait; fn count_overdue_by_building<'life0, 'async_trait>( &'life0 self, building_id: Uuid, ) -> Pin<Box<dyn Future<Output = Result<i64, String>> + Send + 'async_trait>> where Self: 'async_trait, 'life0: 'async_trait; fn count_by_category<'life0, 'async_trait>( &'life0 self, building_id: Uuid, category: SharedObjectCategory, ) -> Pin<Box<dyn Future<Output = Result<i64, String>> + Send + 'async_trait>> where Self: 'async_trait, 'life0: 'async_trait;
}
Expand description

Repository port for SharedObject aggregate

Required Methods§

Source

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

Create a new shared object

Source

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

Find shared object by ID

Source

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

Find all shared objects for a building

Source

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

Find all available shared objects for a building (not currently borrowed)

Source

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

Find all borrowed shared objects for a building

Source

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

Find all overdue shared objects for a building

Source

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

Find all shared objects by owner

Source

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

Find all shared objects borrowed by a specific user

Source

fn find_by_category<'life0, 'async_trait>( &'life0 self, building_id: Uuid, category: SharedObjectCategory, ) -> Pin<Box<dyn Future<Output = Result<Vec<SharedObject>, String>> + Send + 'async_trait>>
where Self: 'async_trait, 'life0: 'async_trait,

Find shared objects by category (Tools, Books, Electronics, etc.)

Source

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

Find free/volunteer shared objects for a building (rental_credits_per_day IS NULL OR = 0)

Source

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

Update an existing shared object

Source

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

Delete a shared object

Source

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

Count total shared objects for a building

Source

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

Count available shared objects for a building

Source

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

Count borrowed shared objects for a building

Source

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

Count overdue shared objects for a building

Source

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

Count shared objects by category (for statistics)

Implementors§