feat(frontend): updated to prune IPAM object in final value

pull/81/head
Samuel Rowe 3 years ago
parent 499a28e4c0
commit 36353bd7b3

@ -1,5 +1,6 @@
import * as yup from "yup"; import * as yup from "yup";
import { IEditNetworkForm, INetworkNodeItem } from "../../../types"; import { IEditNetworkForm, INetworkNodeItem, IPAMConfig } from "../../../types";
import { pruneArray, pruneObject } from "../../../utils/forms";
export const validationSchema = yup.object({ export const validationSchema = yup.object({
entryName: yup entryName: yup
@ -139,26 +140,34 @@ export const getFinalValues = (
name: values.networkName, name: values.networkName,
ipam: { ipam: {
driver: driver ? driver : undefined, driver: driver ? driver : undefined,
config: configurations.map((configuration) => ({ config: pruneArray(
subnet: configuration.subnet ? configuration.subnet : undefined, configurations.map((configuration) =>
ip_range: configuration.ipRange ? configuration.ipRange : undefined, pruneObject({
gateway: configuration.gateway ? configuration.gateway : undefined, subnet: configuration.subnet ? configuration.subnet : undefined,
aux_addresses: (() => { ip_range: configuration.ipRange
if (configuration.auxAddresses.length === 0) { ? configuration.ipRange
return undefined; : undefined,
} gateway: configuration.gateway
? configuration.gateway
: undefined,
aux_addresses: (() => {
if (configuration.auxAddresses.length === 0) {
return undefined;
}
/* We do not have to worry about empty `hostName` and `ipAddress` /* We do not have to worry about empty `hostName` and `ipAddress`
* values because Yup would report such values as error. * values because Yup would report such values as error.
*/ */
return Object.fromEntries( return Object.fromEntries(
configuration.auxAddresses.map((auxAddress) => [ configuration.auxAddresses.map((auxAddress) => [
auxAddress.hostName, auxAddress.hostName,
auxAddress.ipAddress auxAddress.ipAddress
]) ])
); );
})() })()
})), })
)
) as IPAMConfig[],
options: (() => { options: (() => {
if (options.length === 0) { if (options.length === 0) {
return undefined; return undefined;

Loading…
Cancel
Save