@Override public Product findBySlugAndTenant(String slug, String tenantSlug) { Product product = this.marketplaceProductDAO.findBySlugAndTenant(slug, tenantSlug); if (product != null) { List<AddonGroup> addons = this.marketplaceProductDAO.findAddons(product); product.setAddons(asMap(addons)); } return product; }
public Product findById(UUID id) { Product product = this.dao.findById(PRODUCT_TABLE_NAME, id); if (product != null) { List<AddonGroup> addons = this.dao.findAddons(product); product.setAddons(asMap(addons)); } return product; }
public Product findBySlug(String slug) { Product product = this.dao.findBySlug(PRODUCT_TABLE_NAME, slug, getTenant()); if (product != null) { List<AddonGroup> addons = this.dao.findAddons(product); product.setAddons(asMap(addons)); } return product; }
public Product findBySlug(String slug, UUID parentId) { if (parentId == null) { return findBySlug(slug); } Product product = this.dao.findBySlug(PRODUCT_TABLE_NAME, slug, getTenant(), parentId); if (product != null) { List<AddonGroup> addons = this.dao.findAddons(product); product.setAddons(asMap(addons)); } return product; }
public void update(Product product) throws EntityDoesNotExistException, InvalidEntityException { this.dao.begin(); Product originalProduct = this.findBySlug(product.getSlug(), product.getParentId()); if (originalProduct == null) { this.dao.commit(); throw new EntityDoesNotExistException(); } if (!product.getAddons().isLoaded()) { product.setAddons(originalProduct.getAddons().get()); } getObservationManager().notify(new EntityUpdatingEvent(), product); product.setId(originalProduct.getId()); Integer updatedRows = this.dao.updateProduct(product); this.dao.createOrUpdateAddons(product); if (product.getLocalizedVersions() != null && !product.getLocalizedVersions().isEmpty()) { Map<Locale, Map<String, Object>> localizedVersions = product.getLocalizedVersions(); for (Locale locale : localizedVersions.keySet()) { this.dao.createOrUpdateTranslation(product.getId(), locale, localizedVersions.get(locale)); } } this.dao.commit(); if (updatedRows <= 0) { throw new StoreException("No rows was updated when updating product"); } getObservationManager().notify(new EntityUpdatedEvent(), product); }
product.setAddons(new HashMap<String, AddonGroup>());