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 pub fn save(&self, category: CategorySaveEntity) -> Result<CategoryEntity, CategoryError> {
29 self.category_factory.create_category_writer().save(category)
30 }
31
32 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 pub fn delete_by_id(&self, category_id: u64) -> () {
43 self.category_factory.create_category_writer().delete_by_id(category_id)
44 }
45}