container->get('domain.bookable.category.repository'); /** @var ServiceRepository $serviceRepository */ $serviceRepository = $this->container->get('domain.bookable.service.repository'); /** * Get services for category */ $services = $serviceRepository->getByCriteria(['categories' => [$command->getArg('id')]]); if (!$services instanceof AbstractCollection) { $result->setResult(CommandResult::RESULT_ERROR); $result->setMessage('Could not get services.'); return $result; } /** * Get category */ $category = $categoryRepository->getById($command->getArg('id')); if (!$category instanceof Category) { $result->setResult(CommandResult::RESULT_ERROR); $result->setMessage('Could not get category.'); return $result; } /** * Add services to category */ $category->setServiceList(new Collection()); /** @var Service $service */ foreach ($services->getItems() as $service) { $category->getServiceList()->addItem($service, $service->getId()->getValue()); } $result->setResult(CommandResult::RESULT_SUCCESS); $result->setMessage('Successfully retrieved category.'); $result->setData([ Entities::CATEGORY => $category->toArray() ]); return $result; } }