feat(search): add search parameter to repository traits
Add `search: Option<&str>` to list methods on RoasterRepository, RoastRepository, BagRepository, GearRepository, and BrewRepository. Default trait methods pass None for backwards compatibility.
This commit is contained in:
parent
18d39d13ef
commit
f616958e3c
1 changed files with 8 additions and 3 deletions
|
|
@ -23,6 +23,7 @@ pub trait RoasterRepository: Send + Sync {
|
||||||
async fn list(
|
async fn list(
|
||||||
&self,
|
&self,
|
||||||
request: &ListRequest<RoasterSortKey>,
|
request: &ListRequest<RoasterSortKey>,
|
||||||
|
search: Option<&str>,
|
||||||
) -> Result<Page<Roaster>, RepositoryError>;
|
) -> Result<Page<Roaster>, RepositoryError>;
|
||||||
async fn update(
|
async fn update(
|
||||||
&self,
|
&self,
|
||||||
|
|
@ -35,7 +36,7 @@ pub trait RoasterRepository: Send + Sync {
|
||||||
let sort_key = <RoasterSortKey as SortKey>::default();
|
let sort_key = <RoasterSortKey as SortKey>::default();
|
||||||
let request =
|
let request =
|
||||||
ListRequest::<RoasterSortKey>::show_all(sort_key, sort_key.default_direction());
|
ListRequest::<RoasterSortKey>::show_all(sort_key, sort_key.default_direction());
|
||||||
let page = self.list(&request).await?;
|
let page = self.list(&request, None).await?;
|
||||||
Ok(page.items)
|
Ok(page.items)
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
@ -45,7 +46,7 @@ pub trait RoasterRepository: Send + Sync {
|
||||||
direction: SortDirection,
|
direction: SortDirection,
|
||||||
) -> Result<Vec<Roaster>, RepositoryError> {
|
) -> Result<Vec<Roaster>, RepositoryError> {
|
||||||
let request = ListRequest::show_all(sort_key, direction);
|
let request = ListRequest::show_all(sort_key, direction);
|
||||||
let page = self.list(&request).await?;
|
let page = self.list(&request, None).await?;
|
||||||
Ok(page.items)
|
Ok(page.items)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
@ -63,6 +64,7 @@ pub trait RoastRepository: Send + Sync {
|
||||||
async fn list(
|
async fn list(
|
||||||
&self,
|
&self,
|
||||||
request: &ListRequest<RoastSortKey>,
|
request: &ListRequest<RoastSortKey>,
|
||||||
|
search: Option<&str>,
|
||||||
) -> Result<Page<RoastWithRoaster>, RepositoryError>;
|
) -> Result<Page<RoastWithRoaster>, RepositoryError>;
|
||||||
async fn list_by_roaster(
|
async fn list_by_roaster(
|
||||||
&self,
|
&self,
|
||||||
|
|
@ -74,7 +76,7 @@ pub trait RoastRepository: Send + Sync {
|
||||||
async fn list_all(&self) -> Result<Vec<RoastWithRoaster>, RepositoryError> {
|
async fn list_all(&self) -> Result<Vec<RoastWithRoaster>, RepositoryError> {
|
||||||
let sort_key = <RoastSortKey as SortKey>::default();
|
let sort_key = <RoastSortKey as SortKey>::default();
|
||||||
let request = ListRequest::<RoastSortKey>::show_all(sort_key, sort_key.default_direction());
|
let request = ListRequest::<RoastSortKey>::show_all(sort_key, sort_key.default_direction());
|
||||||
let page = self.list(&request).await?;
|
let page = self.list(&request, None).await?;
|
||||||
Ok(page.items)
|
Ok(page.items)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
@ -132,6 +134,7 @@ pub trait BagRepository: Send + Sync {
|
||||||
&self,
|
&self,
|
||||||
filter: BagFilter,
|
filter: BagFilter,
|
||||||
request: &ListRequest<BagSortKey>,
|
request: &ListRequest<BagSortKey>,
|
||||||
|
search: Option<&str>,
|
||||||
) -> Result<Page<BagWithRoast>, RepositoryError>;
|
) -> Result<Page<BagWithRoast>, RepositoryError>;
|
||||||
async fn update(&self, id: BagId, changes: UpdateBag) -> Result<Bag, RepositoryError>;
|
async fn update(&self, id: BagId, changes: UpdateBag) -> Result<Bag, RepositoryError>;
|
||||||
async fn delete(&self, id: BagId) -> Result<(), RepositoryError>;
|
async fn delete(&self, id: BagId) -> Result<(), RepositoryError>;
|
||||||
|
|
@ -145,6 +148,7 @@ pub trait GearRepository: Send + Sync {
|
||||||
&self,
|
&self,
|
||||||
filter: GearFilter,
|
filter: GearFilter,
|
||||||
request: &ListRequest<GearSortKey>,
|
request: &ListRequest<GearSortKey>,
|
||||||
|
search: Option<&str>,
|
||||||
) -> Result<Page<Gear>, RepositoryError>;
|
) -> Result<Page<Gear>, RepositoryError>;
|
||||||
async fn update(&self, id: GearId, changes: UpdateGear) -> Result<Gear, RepositoryError>;
|
async fn update(&self, id: GearId, changes: UpdateGear) -> Result<Gear, RepositoryError>;
|
||||||
async fn delete(&self, id: GearId) -> Result<(), RepositoryError>;
|
async fn delete(&self, id: GearId) -> Result<(), RepositoryError>;
|
||||||
|
|
@ -161,6 +165,7 @@ pub trait BrewRepository: Send + Sync {
|
||||||
&self,
|
&self,
|
||||||
filter: BrewFilter,
|
filter: BrewFilter,
|
||||||
request: &ListRequest<BrewSortKey>,
|
request: &ListRequest<BrewSortKey>,
|
||||||
|
search: Option<&str>,
|
||||||
) -> Result<Page<BrewWithDetails>, RepositoryError>;
|
) -> Result<Page<BrewWithDetails>, RepositoryError>;
|
||||||
async fn delete(&self, id: BrewId) -> Result<(), RepositoryError>;
|
async fn delete(&self, id: BrewId) -> Result<(), RepositoryError>;
|
||||||
}
|
}
|
||||||
|
|
|
||||||
Loading…
Reference in a new issue