src/models/discovery.js (197 lines of code) (raw):

/* * Licensed to the Apache Software Foundation (ASF) under one or more * contributor license agreements. See the NOTICE file distributed with * this work for additional information regarding copyright ownership. * The ASF licenses this file to You under the Apache License, Version 2.0 * (the "License"); you may not use this file except in compliance with * the License. You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */ import { message } from "antd"; import { addProxySelector, deleteProxySelector, fetchProxySelector, getDiscoveryTypeEnums, postDiscoveryInsertOrUpdate, updateProxySelector, getDiscovery, refreshProxySelector, deleteDiscovery, bindingSelector, updateDiscoveryUpstream, } from "../services/api"; import { getIntlContent } from "../utils/IntlUtils"; export default { namespace: "discovery", state: { typeEnums: [], proxySelectorList: [], chosenType: "", totalPage: 0, currentPage: 1, pageSize: 6, }, effects: { *fetchProxySelectors(params, { call, put }) { const { payload } = params; const json = yield call(fetchProxySelector, payload); if (json.code === 200) { const { page, dataList } = json.data; yield put({ type: "saveProxySelectors", payload: { total: page.totalCount, dataList }, }); } }, *fetchEnumType(params, { call, put }) { const { payload } = params; const json = yield call(getDiscoveryTypeEnums, payload); if (json.code === 200) { const data = json.data; yield put({ type: "saveEnumTypes", payload: { data }, }); } }, *add(params, { call, put }) { const { payload, callback, fetchValue } = params; const json = yield call(addProxySelector, payload); if (json.code === 200) { message.success(getIntlContent("SHENYU.COMMON.RESPONSE.ADD.SUCCESS")); callback(); yield put({ type: "reload", fetchValue, }); } else { message.warn(json.message); } }, *delete(params, { call, put }) { const { payload, fetchValue } = params; const { list } = payload; const json = yield call(deleteProxySelector, { list }); if (json.code === 200) { message.success( getIntlContent("SHENYU.COMMON.RESPONSE.DELETE.SUCCESS"), ); // callback(); yield put({ type: "reload", fetchValue }); } else { message.warn(json.message); } }, *update(params, { call, put }) { const { payload, callback, fetchValue } = params; const json = yield call(updateProxySelector, payload); if (json.code === 200) { message.success( getIntlContent("SHENYU.COMMON.RESPONSE.UPDATE.SUCCESS"), ); callback(); yield put({ type: "reload", fetchValue }); } else { message.warn(json.message); } }, *reload(params, { put }) { const { fetchValue } = params; const { name = "", currentPage, pageSize } = fetchValue; const payload = { name, currentPage, pageSize }; yield put({ type: "fetchProxySelectors", payload }); }, *set(params, { call }) { const { payload, callback } = params; const json = yield call(postDiscoveryInsertOrUpdate, payload); if (json.code === 200) { message.success( getIntlContent("SHENYU.COMMON.RESPONSE.CONFIGURATION.SUCCESS"), ); const discoveryConfigData = json.data; if (callback) { callback(discoveryConfigData); } } else { message.warn(json.message); } }, *fetchDiscovery(params, { call, put }) { const { payload, callback } = params; const json = yield call(getDiscovery, payload); if (json.code === 200) { const { data } = json; if (callback) { callback(data); } yield put({ type: "saveConfig", payload: data, }); } else { message.warn(json.message); } }, *refresh(params, { call }) { const { payload } = params; const json = yield call(refreshProxySelector, payload); if (json.code === 200) { message.success( getIntlContent("SHENYU.COMMON.RESPONSE.REFRESH.SUCCESS"), ); // callback(); } else { message.warn(json.message); } }, *deleteConfig(params, { call }) { const { payload } = params; const json = yield call(deleteDiscovery, payload); if (json.code === 200) { message.success( getIntlContent("SHENYU.COMMON.RESPONSE.DELETE.SUCCESS"), ); } else { message.warn(json.message); } }, *bindSelector(params, { call }) { const { payload } = params; const json = yield call(bindingSelector, payload); if (json.code === 200) { // message.success(getIntlContent('SHENYU.COMMON.RESPONSE.ADD.SUCCESS')); // callback(); } else { message.warn(json.message); } }, *updateDiscoveryUpstream(params, { call }) { const { discoveryHandlerId, upstreams } = params.payload; const json = yield call( updateDiscoveryUpstream, discoveryHandlerId, upstreams, ); if (json.code === 200) { // message.success(getIntlContent('SHENYU.COMMON.RESPONSE.UPDATE.SUCCESS')); } else { message.warn(json.message); } }, }, reducers: { saveProxySelectors(state, { payload }) { return { ...state, totalPage: payload.total, proxySelectorList: payload.dataList, }; }, saveEnumTypes(state, { payload }) { return { ...state, typeEnums: payload.data, }; }, saveGlobalType(state, { payload }) { return { ...state, chosenType: payload.chosenType, }; }, setCurrentPage(state, { payload }) { return { ...state, currentPage: payload.currentPage, pageSize: payload.pageSize, }; }, }, };