| /** |
| * 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 { produce } from 'immer'; |
| |
| import { produceRmEmptyUpstreamFields } from '@/components/form-slice/FormPartUpstream/util'; |
| import { produceRmUpstreamWhenHas } from '@/utils/form-producer'; |
| import { pipeProduce } from '@/utils/producer'; |
| |
| import type { RoutePostType, RoutePutType } from './schema'; |
| |
| export const produceVarsToForm = produce((draft: RoutePostType) => { |
| if (draft.vars && Array.isArray(draft.vars)) { |
| draft.vars = JSON.stringify(draft.vars); |
| } |
| }) as (draft: RoutePostType) => RoutePutType; |
| |
| export const produceVarsToAPI = produce((draft: RoutePostType) => { |
| if (draft.vars && typeof draft.vars === 'string') { |
| draft.vars = JSON.parse(draft.vars); |
| } |
| }); |
| |
| export const produceRoute = pipeProduce( |
| produceRmUpstreamWhenHas('service_id', 'upstream_id'), |
| produceRmEmptyUpstreamFields, |
| produceVarsToAPI |
| ); |