summaryrefslogtreecommitdiffstats
path: root/src/api
diff options
context:
space:
mode:
Diffstat (limited to '')
-rw-r--r--src/api/mod.rs56
1 files changed, 54 insertions, 2 deletions
diff --git a/src/api/mod.rs b/src/api/mod.rs
index 8b9e77d..3879223 100644
--- a/src/api/mod.rs
+++ b/src/api/mod.rs
@@ -6,10 +6,16 @@ use reactive_stores::Store;
use rocie_client::{
apis::{
api_get_inventory_api::amount_by_id,
- api_get_product_api::{product_by_id, products},
+ api_get_product_api::{
+ product_by_id, product_by_name, product_suggestion_by_name, products,
+ },
api_get_unit_api::unit_by_id,
+ api_get_unit_property_api::unit_property_by_id,
+ api_set_barcode_api::buy_barcode, configuration::Configuration,
+ },
+ models::{
+ BarcodeId, Product, ProductAmount, ProductId, Unit, UnitId, UnitProperty, UnitPropertyId,
},
- models::{Product, ProductAmount, ProductId, Unit, UnitId},
};
use crate::{ConfigState, ConfigStateStoreFields};
@@ -26,12 +32,36 @@ pub(crate) async fn get_product_by_id(product_id: ProductId) -> Result<Product,
.await
.map_err(Into::<Error>::into)
}
+pub(crate) async fn get_product_by_name(
+ name: String,
+) -> Result<
+ Product,
+ rocie_client::apis::Error<rocie_client::apis::api_get_product_api::ProductByNameError>,
+> {
+ let config = expect_context::<Store<ConfigState>>();
+ product_by_name(&config.config().read(), &name).await
+}
+pub(crate) async fn get_products_by_part_name(part_name: String) -> Result<Vec<Product>, Error> {
+ let config = expect_context::<Store<ConfigState>>();
+ product_suggestion_by_name(&config.config().read(), &part_name)
+ .await
+ .map_err(Into::<Error>::into)
+}
pub(crate) async fn get_unit_by_id(unit_id: UnitId) -> Result<Unit, Error> {
let config = expect_context::<Store<ConfigState>>();
unit_by_id(&config.config().read(), unit_id)
.await
.map_err(Into::<Error>::into)
}
+pub(crate) async fn get_unit_property_by_id(
+ unit_id: UnitPropertyId,
+) -> Result<UnitProperty, Error> {
+ let config = expect_context::<Store<ConfigState>>();
+ unit_property_by_id(&config.config().read(), unit_id)
+ .await
+ .map_err(Into::<Error>::into)
+}
+
pub(crate) async fn get_full_product_by_id(
id: ProductId,
) -> Result<(Product, ProductAmount, Unit), Error> {
@@ -41,6 +71,14 @@ pub(crate) async fn get_full_product_by_id(
Ok::<_, Error>((product, amount, unit))
}
+pub(crate) async fn get_product_unit_by_id(
+ id: ProductId,
+) -> Result<(Product, UnitProperty), Error> {
+ let product = get_product_by_id(id).await?;
+ let unit = get_unit_property_by_id(product.unit_property).await?;
+
+ Ok::<_, Error>((product, unit))
+}
pub(crate) async fn get_products() -> Result<Vec<Product>, Error> {
let config = expect_context::<Store<ConfigState>>();
@@ -48,3 +86,17 @@ pub(crate) async fn get_products() -> Result<Vec<Product>, Error> {
.await
.map_err(Into::<Error>::into)
}
+
+pub(crate) async fn buy_barcode_wrapper(
+ config: &Configuration,
+ barcode_number: u32,
+) -> Result<(), Error> {
+ buy_barcode(
+ config,
+ BarcodeId {
+ value: barcode_number,
+ },
+ )
+ .await
+ .map_err(Into::<Error>::into)
+}