/** * get param type enum by name. * * @param name param type name. * @return param type enum. */ public static ParamTypeEnum getParamTypeEnumByName(final String name) { return Arrays.stream(ParamTypeEnum.values()) .filter(e -> e.getName().equals(name) && e.support).findFirst() .orElseThrow(() -> new SoulException(" this param type can not support!")); } }
.collect(Collectors.toList()); List<EnumVO> paramTypeEnums = ParamTypeEnum.acquireSupport().stream() .map(paramTypeEnum -> new EnumVO(null, paramTypeEnum.getName(), paramTypeEnum.getSupport())).collect(Collectors.toList());
/** * build ruleConditionVO. * * @param ruleConditionDO {@linkplain RuleConditionDO} * @return {@linkplain RuleConditionVO} */ public static RuleConditionVO buildRuleConditionVO(final RuleConditionDO ruleConditionDO) { DateTimeFormatter dateTimeFormatter = DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss"); ParamTypeEnum paramTypeEnum = ParamTypeEnum.getParamTypeEnumByName(ruleConditionDO.getParamType()); OperatorEnum operatorEnum = OperatorEnum.getOperatorEnumByAlias(ruleConditionDO.getOperator()); return new RuleConditionVO(ruleConditionDO.getId(), ruleConditionDO.getRuleId(), ruleConditionDO.getParamType(), paramTypeEnum == null ? null : paramTypeEnum.getName(), ruleConditionDO.getOperator(), operatorEnum == null ? null : operatorEnum.name(), ruleConditionDO.getParamName(), ruleConditionDO.getParamValue(), dateTimeFormatter.format(ruleConditionDO.getDateCreated().toLocalDateTime()), dateTimeFormatter.format(ruleConditionDO.getDateUpdated().toLocalDateTime())); } }
/** * Build real data string. * * @param condition the condition * @param exchange the exchange * @return the string */ String buildRealData(final ConditionZkDTO condition, final ServerWebExchange exchange) { String realData = ""; if (condition.getParamType().equals(ParamTypeEnum.QUERY.getName())) { final MultiValueMap<String, String> queryParams = exchange.getRequest().getQueryParams(); realData = queryParams.getFirst(condition.getParamName()); } else if (Objects.equals(ParamTypeEnum.HOST.getName(), condition.getParamType())) { realData = Objects.requireNonNull(exchange.getRequest().getRemoteAddress()).getHostString(); } else if (Objects.equals(ParamTypeEnum.IP.getName(), condition.getParamType())) { realData = Objects.requireNonNull(exchange.getRequest().getRemoteAddress()).getAddress().getHostAddress(); } else if (Objects.equals(ParamTypeEnum.HEADER.getName(), condition.getParamType())) { final HttpHeaders headers = exchange.getRequest().getHeaders(); final List<String> list = headers.get(condition.getParamName()); if (CollectionUtils.isEmpty(list)) { return realData; } realData = Objects.requireNonNull(headers.get(condition.getParamName())).stream().findFirst().orElse(""); } return realData; }
/** * build selectorConditionVO. * * @param selectorConditionDO {@linkplain SelectorConditionDO} * @return {@linkplain SelectorConditionVO} */ public static SelectorConditionVO buildSelectorConditionVO(final SelectorConditionDO selectorConditionDO) { DateTimeFormatter dateTimeFormatter = DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss"); ParamTypeEnum paramTypeEnum = ParamTypeEnum.getParamTypeEnumByName(selectorConditionDO.getParamType()); OperatorEnum operatorEnum = OperatorEnum.getOperatorEnumByAlias(selectorConditionDO.getOperator()); return new SelectorConditionVO(selectorConditionDO.getId(), selectorConditionDO.getSelectorId(), selectorConditionDO.getParamType(), paramTypeEnum == null ? null : paramTypeEnum.name(), selectorConditionDO.getOperator(), operatorEnum == null ? null : operatorEnum.name(), selectorConditionDO.getParamName(), selectorConditionDO.getParamValue(), dateTimeFormatter.format(selectorConditionDO.getDateCreated().toLocalDateTime()), dateTimeFormatter.format(selectorConditionDO.getDateUpdated().toLocalDateTime())); } }
/** * acquire param type supports. * * @return param type support. */ public static List<ParamTypeEnum> acquireSupport() { return Arrays.stream(ParamTypeEnum.values()) .filter(e -> e.support).collect(Collectors.toList()); }