diff --git a/app/config/service/manager.yml b/app/config/service/manager.yml index 152fe18..9e4a3f5 100644 --- a/app/config/service/manager.yml +++ b/app/config/service/manager.yml @@ -1,32 +1 @@ -services: - local.manager.base: - abstract: true - class: AppBundle\Manager\BaseManager - calls: - - [setEntityManager, ['@doctrine.orm.entity_manager']] - - local.manager.rebrickable: - class: AppBundle\Manager\RebrickableManager - parent: local.manager.base - - manager.ldraw.keyword: - class: AppBundle\Manager\LDraw\KeywordManager - arguments: - - "@repository.ldraw.keyword" - manager.ldraw.category: - class: AppBundle\Manager\LDraw\CategoryManager - arguments: - - "@repository.ldraw.category" - manager.ldraw.subpart: - class: AppBundle\Manager\LDraw\SubpartManager - arguments: - - "@repository.ldraw.subpart" - manager.ldraw.model: - class: AppBundle\Manager\LDraw\ModelManager - arguments: - - "@repository.ldraw.model" - manager.ldraw.alias: - class: AppBundle\Manager\LDraw\AliasManager - arguments: - - "@repository.ldraw.alias" - +services: \ No newline at end of file diff --git a/app/config/service/service.yml b/app/config/service/service.yml index e33fd1b..88c5c8b 100644 --- a/app/config/service/service.yml +++ b/app/config/service/service.yml @@ -1,13 +1,4 @@ services: - manager.ldraw: - class: AppBundle\Manager\LDrawManager - arguments: - - '@manager.ldraw.category' - - '@manager.ldraw.keyword' - - '@manager.ldraw.subpart' - - '@manager.ldraw.model' - - '@manager.ldraw.alias' - app.twig_extension: class: AppBundle\Twig\AppExtension public: false diff --git a/src/AppBundle/Manager/BaseManager.php b/src/AppBundle/Manager/BaseManager.php deleted file mode 100644 index df466fe..0000000 --- a/src/AppBundle/Manager/BaseManager.php +++ /dev/null @@ -1,27 +0,0 @@ -repository; - } - - public function setEntityManager(EntityManager $entityManager) - { - $this->em = $entityManager; - } -} diff --git a/src/AppBundle/Manager/LDraw/AliasManager.php b/src/AppBundle/Manager/LDraw/AliasManager.php deleted file mode 100644 index fa50d6d..0000000 --- a/src/AppBundle/Manager/LDraw/AliasManager.php +++ /dev/null @@ -1,40 +0,0 @@ -repository = $repository; - } - - /** - * Create new Alias entity. - * - * @param $number - * @param Model $model - * - * @return Alias - */ - public function create($number, $model) - { - if (($alias = $this->repository->findOneBy(['number' => $number, 'model' => $model])) == null) { - $alias = new Alias(); - $alias->setModel($model); - $alias->setNumber($number); - } - - return $alias; - } -} diff --git a/src/AppBundle/Manager/LDraw/CategoryManager.php b/src/AppBundle/Manager/LDraw/CategoryManager.php deleted file mode 100644 index 7df6d71..0000000 --- a/src/AppBundle/Manager/LDraw/CategoryManager.php +++ /dev/null @@ -1,42 +0,0 @@ -repository = $repository; - } - - public function findAll() - { - return $this->repository->findAll(); - } - - /** - * Create new Category entity with $name or retrieve one. - * - * @param $name - * - * @return Category - */ - public function create($name) - { - if (($category = $this->repository->findByName($name)) == null) { - $category = new Category(); - $category->setName($name); - } - - return $category; - } -} diff --git a/src/AppBundle/Manager/LDraw/KeywordManager.php b/src/AppBundle/Manager/LDraw/KeywordManager.php deleted file mode 100644 index a321708..0000000 --- a/src/AppBundle/Manager/LDraw/KeywordManager.php +++ /dev/null @@ -1,37 +0,0 @@ -repository = $repository; - } - - /** - * Create new Keyword entity with $name or retrieve one. - * - * @param $name - * - * @return Keyword - */ - public function create($name) - { - if (($keyword = $this->repository->findByName($name)) == null) { - $keyword = new Keyword(); - $keyword->setName($name); - } - - return $keyword; - } -} diff --git a/src/AppBundle/Manager/LDraw/ModelManager.php b/src/AppBundle/Manager/LDraw/ModelManager.php deleted file mode 100644 index 3c3f8fd..0000000 --- a/src/AppBundle/Manager/LDraw/ModelManager.php +++ /dev/null @@ -1,47 +0,0 @@ -repository = $repository; - } - - /** - * Create new Model entity with $number or retrieve one. - * - * @param $number - * - * @return Model - */ - public function create($number) - { - if (($model = $this->repository->findOneBy(['number' => $number])) == null) { - $model = new Model(); - $model->setNumber($number); - } - - return $model; - } - - public function findByNumber($number) - { - return $this->repository->findOneByNumber($number); - } - - public function findByName($name) - { - return $this->repository->findOneBy(['name' => $name]); - } -} diff --git a/src/AppBundle/Manager/LDraw/SubpartManager.php b/src/AppBundle/Manager/LDraw/SubpartManager.php deleted file mode 100644 index d037780..0000000 --- a/src/AppBundle/Manager/LDraw/SubpartManager.php +++ /dev/null @@ -1,42 +0,0 @@ -repository = $repository; - } - - /** - * Create new Subpart relation entity or retrieve one by foreign keys. - * - * @param $name - * - * @return Subpart - */ - public function create($parent, $child, $count) - { -// if (($subpart = $this->repository->findOneByKeys($parent, $child))) { -// $subpart->setCount($count); -// } else { - $subpart = new Subpart(); - $subpart - ->setParent($parent) - ->setSubpart($child) - ->setCount($count); -// } - - return $subpart; - } -} diff --git a/src/AppBundle/Manager/LDrawManager.php b/src/AppBundle/Manager/LDrawManager.php deleted file mode 100644 index 84fb05b..0000000 --- a/src/AppBundle/Manager/LDrawManager.php +++ /dev/null @@ -1,86 +0,0 @@ -categoryManager = $categoryManager; - $this->keywordManager = $keywordManager; - $this->subpartManager = $subpartManager; - $this->modelManager = $modelManager; - $this->aliasManager = $aliasManager; - } - - /** - * @return mixed - */ - public function getCategoryManager() - { - return $this->categoryManager; - } - - /** - * @return mixed - */ - public function getKeywordManager() - { - return $this->keywordManager; - } - - /** - * @return SubpartManager - */ - public function getSubpartManager() - { - return $this->subpartManager; - } - - /** - * @return ModelManager - */ - public function getModelManager() - { - return $this->modelManager; - } - - /** - * @return AliasManager - */ - public function getAliasManager() - { - return $this->aliasManager; - } -} diff --git a/src/AppBundle/Manager/RebrickableManager.php b/src/AppBundle/Manager/RebrickableManager.php deleted file mode 100644 index 38e2fc6..0000000 --- a/src/AppBundle/Manager/RebrickableManager.php +++ /dev/null @@ -1,12 +0,0 @@ -em->getRepository(Theme::class)->findAll(); - } -} diff --git a/src/AppBundle/Repository/LDraw/AliasRepository.php b/src/AppBundle/Repository/LDraw/AliasRepository.php index 18497f4..3af7989 100644 --- a/src/AppBundle/Repository/LDraw/AliasRepository.php +++ b/src/AppBundle/Repository/LDraw/AliasRepository.php @@ -2,8 +2,28 @@ namespace AppBundle\Repository\LDraw; +use AppBundle\Entity\LDraw\Alias; +use AppBundle\Entity\LDraw\Model; use AppBundle\Repository\BaseRepository; class AliasRepository extends BaseRepository { + /** + * Get existing entity or create new. + * + * @param $number + * @param Model $model + * + * @return Alias + */ + public function getOrCreate($number, $model) + { + if (($alias = $this->findOneBy(['number' => $number, 'model' => $model])) == null) { + $alias = new Alias(); + $alias->setModel($model); + $alias->setNumber($number); + } + + return $alias; + } } diff --git a/src/AppBundle/Repository/LDraw/CategoryRepository.php b/src/AppBundle/Repository/LDraw/CategoryRepository.php index 4b0e43a..54e893e 100644 --- a/src/AppBundle/Repository/LDraw/CategoryRepository.php +++ b/src/AppBundle/Repository/LDraw/CategoryRepository.php @@ -2,6 +2,7 @@ namespace AppBundle\Repository\LDraw; +use AppBundle\Entity\LDraw\Category; use AppBundle\Repository\BaseRepository; class CategoryRepository extends BaseRepository @@ -10,4 +11,21 @@ class CategoryRepository extends BaseRepository { return $this->findOneBy(['name' => $name]); } + + /** + * Get existing entity or create new. + * + * @param $name + * + * @return Category + */ + public function getOrCreate($name) + { + if (($category = $this->findByName($name)) == null) { + $category = new Category(); + $category->setName($name); + } + + return $category; + } } diff --git a/src/AppBundle/Repository/LDraw/KeywordRepository.php b/src/AppBundle/Repository/LDraw/KeywordRepository.php index 43e8a67..019b81a 100644 --- a/src/AppBundle/Repository/LDraw/KeywordRepository.php +++ b/src/AppBundle/Repository/LDraw/KeywordRepository.php @@ -2,6 +2,7 @@ namespace AppBundle\Repository\LDraw; +use AppBundle\Entity\LDraw\Keyword; use AppBundle\Repository\BaseRepository; class KeywordRepository extends BaseRepository @@ -10,4 +11,21 @@ class KeywordRepository extends BaseRepository { return $this->findOneBy(['name' => $name]); } + + /** + * Create new Keyword entity with $name or retrieve one. + * + * @param $name + * + * @return Keyword + */ + public function getOrCreate($name) + { + if (($keyword = $this->findByName($name)) == null) { + $keyword = new Keyword(); + $keyword->setName($name); + } + + return $keyword; + } } diff --git a/src/AppBundle/Repository/LDraw/ModelRepository.php b/src/AppBundle/Repository/LDraw/ModelRepository.php index 433e8d1..27f6c2a 100644 --- a/src/AppBundle/Repository/LDraw/ModelRepository.php +++ b/src/AppBundle/Repository/LDraw/ModelRepository.php @@ -2,19 +2,29 @@ namespace AppBundle\Repository\LDraw; +use AppBundle\Entity\LDraw\Alias; use AppBundle\Entity\LDraw\Category; use AppBundle\Entity\LDraw\Model; use AppBundle\Entity\LDraw\Subpart; -use AppBundle\Entity\Rebrickable\Set; -use AppBundle\Entity\Rebrickable\Part; -use AppBundle\Entity\LDraw\Alias; use AppBundle\Entity\Rebrickable\Inventory; use AppBundle\Entity\Rebrickable\Inventory_Part; +use AppBundle\Entity\Rebrickable\Part; +use AppBundle\Entity\Rebrickable\Set; use AppBundle\Repository\BaseRepository; use Doctrine\ORM\Query\Expr\Join; class ModelRepository extends BaseRepository { + public function getFilteredQueryBuilder() + { + $queryBuilder = $this->createQueryBuilder('model') +// ->where('model.name NOT LIKE :obsolete') +// ->setParameter('obsolete','~%') +; + + return $queryBuilder; + } + public function findAllByCategory($category) { $queryBuilder = $this->createQueryBuilder('model') @@ -42,6 +52,11 @@ class ModelRepository extends BaseRepository return $model; } + public function findOneByName($name) + { + return $this->findOneBy(['name' => $name]); + } + public function findAllBySetNumber($number) { $queryBuilder = $this->createQueryBuilder('model'); @@ -74,4 +89,21 @@ class ModelRepository extends BaseRepository return $queryBuilder->getQuery()->getResult(); } + + /** + * Create new Model entity with $number or retrieve one. + * + * @param $number + * + * @return Model + */ + public function getOrCreate($number) + { + if (($model = $this->findOneBy(['number' => $number])) == null) { + $model = new Model(); + $model->setNumber($number); + } + + return $model; + } } diff --git a/src/AppBundle/Repository/LDraw/SubpartRepository.php b/src/AppBundle/Repository/LDraw/SubpartRepository.php index 3674f50..25fa871 100644 --- a/src/AppBundle/Repository/LDraw/SubpartRepository.php +++ b/src/AppBundle/Repository/LDraw/SubpartRepository.php @@ -2,6 +2,7 @@ namespace AppBundle\Repository\LDraw; +use AppBundle\Entity\LDraw\Subpart; use AppBundle\Repository\BaseRepository; class SubpartRepository extends BaseRepository @@ -10,4 +11,26 @@ class SubpartRepository extends BaseRepository { return $this->find(['parent' => $parent, 'subpart' => $child]); } + + /** + * Create new Subpart relation entity or retrieve one by foreign keys. + * + * @param $name + * + * @return Subpart + */ + public function getOrCreate($parent, $child, $count) + { + if (($subpart = $this->findOneByKeys($parent, $child))) { + $subpart->setCount($count); + } else { + $subpart = new Subpart(); + $subpart + ->setParent($parent) + ->setSubpart($child) + ->setCount($count); + } + + return $subpart; + } }