//package com.alibaba.csp.sentinel.dashboard.rule.gateway;
//
//import com.alibaba.csp.sentinel.dashboard.datasource.entity.gateway.GatewayFlowRuleEntity;
//import com.alibaba.csp.sentinel.dashboard.rule.DynamicRulePublisher;
//import com.alibaba.csp.sentinel.dashboard.rule.nacos.NacosConfigUtil;
//import com.alibaba.csp.sentinel.datasource.Converter;
//import com.alibaba.csp.sentinel.util.AssertUtil;
//import com.alibaba.nacos.api.config.ConfigService;
//import org.springframework.beans.factory.annotation.Autowired;
//import org.springframework.stereotype.Component;
//
//import java.util.List;
//
///**
// * @author lfdc
// * @version 1.0
// * @className GatewayFlowRuleNacosPublisher
// * @description
// * @company sckw
// * @date 2023-06-07 10:06:14
// */
//@Component("gatewayFlowRuleNacosPublisher")
//public class GatewayFlowRuleNacosPublisher implements DynamicRulePublisher<List<GatewayFlowRuleEntity>> {
//
//    @Autowired
//    private ConfigService configService;
//    /**
//     * 数据通信的转换器。
//     * 在config包下的NacosConfig类中声明的Spring Bean对象。
//     * 负责将实体对象转换为json格式的字符串
//     */
//    @Autowired
//    private Converter<List<GatewayFlowRuleEntity>, String> converter;
//
//    @Override
//    public void publish(String app, List<GatewayFlowRuleEntity> rules) throws Exception {
//        AssertUtil.notEmpty(app, "app name cannot be empty");
//        if (rules == null) {
//            return;
//        }
//        /**
//         *  将规则发布到动态数据源作持久化，第一个参数是app+后缀（nacos的文件名称），app就是服务的名称，后缀可自行命名；
//         *  第二个参数是nacos分组id，这个用默认提供的sentinel预留项即可；最后一个参数是数据转换
//         *  器，要将对象转换成统一的格式后，网络传输到nacos。
//         */
//        configService.publishConfig(app + NacosConfigUtil.GATEWAY_FLOW_DATA_ID_POSTFIX,
//                NacosConfigUtil.GROUP_ID, converter.convert(rules));
//    }
//}
