Пример #1
0
  @Override
  public void removeShippingQuoteModuleConfiguration(String moduleCode, MerchantStore store)
      throws ServiceException {

    try {
      Map<String, IntegrationConfiguration> modules =
          new HashMap<String, IntegrationConfiguration>();
      MerchantConfiguration merchantConfiguration =
          merchantConfigurationService.getMerchantConfiguration(SHIPPING_MODULES, store);
      if (merchantConfiguration != null) {
        if (!StringUtils.isBlank(merchantConfiguration.getValue())) {
          String decrypted = encryption.decrypt(merchantConfiguration.getValue());
          modules = ConfigurationModulesLoader.loadIntegrationConfigurations(decrypted);
        }

        modules.remove(moduleCode);
        String configs = ConfigurationModulesLoader.toJSONString(modules);
        String encrypted = encryption.encrypt(configs);
        merchantConfiguration.setValue(encrypted);
        merchantConfigurationService.saveOrUpdate(merchantConfiguration);
      }

      MerchantConfiguration configuration =
          merchantConfigurationService.getMerchantConfiguration(moduleCode, store);

      if (configuration != null) { // custom module

        merchantConfigurationService.delete(configuration);
      }

    } catch (Exception e) {
      throw new ServiceException(e);
    }
  }
 @PreAuthorize("hasRole('AUTH')")
 @RequestMapping(
     value = "/admin/configuration/saveConfiguration.html",
     method = RequestMethod.POST)
 public String saveConfigurations(
     @ModelAttribute("configuration") ConfigListWrapper configWrapper,
     BindingResult result,
     Model model,
     HttpServletRequest request,
     Locale locale)
     throws Exception {
   setConfigurationMenu(model, request);
   List<MerchantConfiguration> configs = configWrapper.getMerchantConfigs();
   MerchantStore store = (MerchantStore) request.getAttribute(Constants.ADMIN_STORE);
   for (MerchantConfiguration mConfigs : configs) {
     mConfigs.setMerchantStore(store);
     if (!StringUtils.isBlank(mConfigs.getValue())) {
       mConfigs.setMerchantConfigurationType(MerchantConfigurationType.CONFIG);
       merchantConfigurationService.saveOrUpdate(mConfigs);
     } else { // remove if submited blank and exists
       MerchantConfiguration config =
           merchantConfigurationService.getMerchantConfiguration(mConfigs.getKey(), store);
       if (config != null) {
         merchantConfigurationService.delete(config);
       }
     }
   }
   model.addAttribute("success", "success");
   model.addAttribute("configuration", configWrapper);
   return com.salesmanager.web.admin.controller.ControllerConstants.Tiles.Configuration.accounts;
 }
Пример #3
0
  @Override
  public void saveShippingQuoteModuleConfiguration(
      IntegrationConfiguration configuration, MerchantStore store) throws ServiceException {

    // validate entries
    try {

      String moduleCode = configuration.getModuleCode();
      ShippingQuoteModule quoteModule = (ShippingQuoteModule) shippingModules.get(moduleCode);
      if (quoteModule == null) {
        throw new ServiceException("Shipping quote module " + moduleCode + " does not exist");
      }
      quoteModule.validateModuleConfiguration(configuration, store);

    } catch (IntegrationException ie) {
      throw ie;
    }

    try {
      Map<String, IntegrationConfiguration> modules =
          new HashMap<String, IntegrationConfiguration>();
      MerchantConfiguration merchantConfiguration =
          merchantConfigurationService.getMerchantConfiguration(SHIPPING_MODULES, store);
      if (merchantConfiguration != null) {
        if (!StringUtils.isBlank(merchantConfiguration.getValue())) {

          String decrypted = encryption.decrypt(merchantConfiguration.getValue());
          modules = ConfigurationModulesLoader.loadIntegrationConfigurations(decrypted);
        }
      } else {
        merchantConfiguration = new MerchantConfiguration();
        merchantConfiguration.setMerchantStore(store);
        merchantConfiguration.setKey(SHIPPING_MODULES);
      }
      modules.put(configuration.getModuleCode(), configuration);

      String configs = ConfigurationModulesLoader.toJSONString(modules);

      String encrypted = encryption.encrypt(configs);
      merchantConfiguration.setValue(encrypted);
      merchantConfigurationService.saveOrUpdate(merchantConfiguration);

    } catch (Exception e) {
      throw new ServiceException(e);
    }
  }
Пример #4
0
  @Override
  public Map<String, IntegrationConfiguration> getShippingModulesConfigured(MerchantStore store)
      throws ServiceException {
    try {

      Map<String, IntegrationConfiguration> modules =
          new HashMap<String, IntegrationConfiguration>();
      MerchantConfiguration merchantConfiguration =
          merchantConfigurationService.getMerchantConfiguration(SHIPPING_MODULES, store);
      if (merchantConfiguration != null) {
        if (!StringUtils.isBlank(merchantConfiguration.getValue())) {
          String decrypted = encryption.decrypt(merchantConfiguration.getValue());
          modules = ConfigurationModulesLoader.loadIntegrationConfigurations(decrypted);
        }
      }
      return modules;

    } catch (Exception e) {
      throw new ServiceException(e);
    }
  }
Пример #5
0
  @Override
  public List<Country> getShipToCountryList(MerchantStore store, Language language)
      throws ServiceException {

    ShippingConfiguration shippingConfiguration = getShippingConfiguration(store);
    ShippingType shippingType = ShippingType.INTERNATIONAL;
    List<String> supportedCountries = new ArrayList<String>();
    if (shippingConfiguration == null) {
      shippingConfiguration = new ShippingConfiguration();
    }

    if (shippingConfiguration.getShippingType() != null) {
      shippingType = shippingConfiguration.getShippingType();
    }

    if (shippingType.name().equals(ShippingType.NATIONAL.name())) {

      supportedCountries.add(store.getCountry().getIsoCode());

    } else {

      MerchantConfiguration configuration =
          merchantConfigurationService.getMerchantConfiguration(SUPPORTED_COUNTRIES, store);

      if (configuration != null) {

        String countries = configuration.getValue();
        if (!StringUtils.isBlank(countries)) {

          Object objRegions = JSONValue.parse(countries);
          JSONArray arrayRegions = (JSONArray) objRegions;
          @SuppressWarnings("rawtypes")
          Iterator i = arrayRegions.iterator();
          while (i.hasNext()) {
            supportedCountries.add((String) i.next());
          }
        }
      }
    }

    return countryService.getCountries(supportedCountries, language);
  }
Пример #6
0
  @Override
  public ShippingConfiguration getShippingConfiguration(MerchantStore store)
      throws ServiceException {

    MerchantConfiguration configuration =
        merchantConfigurationService.getMerchantConfiguration(
            ShippingConstants.SHIPPING_CONFIGURATION, store);

    ShippingConfiguration shippingConfiguration = null;

    if (configuration != null) {
      String value = configuration.getValue();

      ObjectMapper mapper = new ObjectMapper();
      try {
        shippingConfiguration = mapper.readValue(value, ShippingConfiguration.class);
      } catch (Exception e) {
        throw new ServiceException("Cannot parse json string " + value);
      }
    }
    return shippingConfiguration;
  }
Пример #7
0
  @Override
  public List<String> getSupportedCountries(MerchantStore store) throws ServiceException {

    List<String> supportedCountries = new ArrayList<String>();
    MerchantConfiguration configuration =
        merchantConfigurationService.getMerchantConfiguration(SUPPORTED_COUNTRIES, store);

    if (configuration != null) {

      String countries = configuration.getValue();
      if (!StringUtils.isBlank(countries)) {

        Object objRegions = JSONValue.parse(countries);
        JSONArray arrayRegions = (JSONArray) objRegions;
        @SuppressWarnings("rawtypes")
        Iterator i = arrayRegions.iterator();
        while (i.hasNext()) {
          supportedCountries.add((String) i.next());
        }
      }
    }

    return supportedCountries;
  }