private Map getBusinessProcessInputParameters()

in src/main/java/com/epam/digital/data/platform/bpwebservice/service/StartBpService.java [149:172]


  private Map<String, Object> getBusinessProcessInputParameters(
      StartBpDto startBpDto,
      BusinessProcessProperties bpProperties) {
    var bpDefinitionKey = startBpDto.getBusinessProcessDefinitionKey();
    log.debug("Getting business process {} input parameters", bpDefinitionKey);
    if (Objects.isNull(bpProperties.getStartVars())) {
      return Collections.emptyMap();
    }

    var bpInputParameters = new HashMap<String, Object>();
    var requestStartVars = startBpDto.getStartVariables();

    bpProperties.getStartVars().forEach(startVar -> {
      if (Objects.isNull(requestStartVars) || !requestStartVars.containsKey(startVar)) {
        var message = String.format("No such input param %s is defined in request for %s", startVar,
            bpDefinitionKey);
        log.info(message);
        throw new MissedRequiredBusinessProcessInputParameterException(message);
      }
      bpInputParameters.put(startVar, startBpDto.getStartVariables().get(startVar));
    });
    log.debug("Founded params for {} - {}", bpDefinitionKey, bpInputParameters);
    return Collections.unmodifiableMap(bpInputParameters);
  }