bnymn-category 0.1.0

This package allows you to manage categories of any kind
Documentation
use crate::CategoryRepository;
use crate::business::reader::CategoryReader;
use crate::business::validator::CategoryValidator;
use crate::business::writer::CategoryWriter;
use crate::dependency::CategoryDependency;

pub struct CategoryFactory<'a> {
    category_dependency: &'a CategoryDependency<'a>,
}

impl<'a> CategoryFactory<'a> {
    pub fn new(category_dependency: &'a CategoryDependency) -> Self {
        CategoryFactory {
            category_dependency
        }
    }

    pub fn create_category_writer(&self) -> CategoryWriter {
        CategoryWriter::new(
            self.get_repository(),
            self.create_category_validator(),
        )
    }

    pub fn create_category_reader(&self) -> CategoryReader {
        CategoryReader::new(self.get_repository())
    }

    fn create_category_validator(&self) -> CategoryValidator {
        CategoryValidator::new()
    }

    fn get_repository(&self) -> &Box<dyn CategoryRepository> {
        self.category_dependency.category_repository
    }
}