Skip to main content

bnymn_category/
lib.rs

1mod business;
2mod dependency;
3mod entity;
4mod error;
5mod factory;
6
7pub use dependency::CategoryDependency;
8pub use dependency::repository::CategoryRepository;
9pub use entity::CategoryEntity;
10pub use entity::CategorySaveEntity;
11use error::Error as CategoryError;
12use factory::CategoryFactory;
13
14pub struct CategoryFacade<'a> {
15    category_factory: CategoryFactory<'a>,
16}
17
18impl<'a> CategoryFacade<'a> {
19    pub fn new(category_dependency: &'a CategoryDependency) -> Self {
20        Self {
21            category_factory: CategoryFactory::new(category_dependency)
22        }
23    }
24
25    /**
26     * Saves the given category
27     */
28    pub fn save(&self, category: CategorySaveEntity) -> Result<CategoryEntity, CategoryError> {
29        self.category_factory.create_category_writer().save(category)
30    }
31
32    /**
33     * Returns a CategoryEntity if found without children
34     */
35    pub fn find_by_id(&self, category_id: u64) -> Option<CategoryEntity> {
36        self.category_factory.create_category_reader().find_by_id(category_id)
37    }
38
39    /**
40     * Deletes the CategoryEntity with the given category_id
41     */
42    pub fn delete_by_id(&self, category_id: u64) -> () {
43        self.category_factory.create_category_writer().delete_by_id(category_id)
44    }
45}