in s3-artifact-storage-ui/src/Utilities/parametersUtils.ts [62:150]
export function serializeParameters(
formData: IFormInput,
appProps: Config
): { [k: string]: string } {
const awsConnectionKey = formData[FormFields.AWS_CONNECTION_ID]?.key;
if (!formData[FormFields.CONNECTION_MULTIPART_CUSTOMIZE_FLAG]) {
formData[FormFields.CONNECTION_MULTIPART_THRESHOLD] = '';
formData[FormFields.CONNECTION_MULTIPART_CHUNKSIZE] = '';
}
if (!formData[FormFields.CLOUD_FRONT_TOGGLE]) {
formData[FormFields.CLOUD_FRONT_DOWNLOAD_DISTRIBUTION] = undefined;
formData[FormFields.CLOUD_FRONT_UPLOAD_DISTRIBUTION] = undefined;
formData[FormFields.CLOUD_FRONT_PUBLIC_KEY_ID] = undefined;
formData[FormFields.CLOUD_FRONT_PRIVATE_KEY] = undefined;
}
if (formData[FormFields.STORAGE_TYPE]?.key === AWS_S3 && awsConnectionKey) {
formData[FormFields.ACCESS_KEY_ID] = undefined;
formData[FormFields.SECRET_ACCESS_KEY] = undefined;
formData[FormFields.CREDENTIALS_TYPE] = undefined;
formData[FormFields.CUSTOM_AWS_ENDPOINT_URL] = undefined;
} else if (formData[FormFields.STORAGE_TYPE]?.key === S3_COMPATIBLE) {
formData[FormFields.AWS_CONNECTION_ID] = undefined;
formData[FormFields.CUSTOM_AWS_REGION] = undefined;
} else if (
!awsConnectionKey &&
formData[FormFields.CUSTOM_AWS_ENDPOINT_URL]?.length === 0
) {
formData[FormFields.CUSTOM_AWS_ENDPOINT_URL] = undefined;
}
return Object.keys(formData)
.map((key) => {
// @ts-ignore
const value = formData[key];
const rkey = keyToFormDataName(key);
if (value || key === FormFields.CONNECTION_VERIFY_IAU_TOGGLE) {
if (typeof value === 'object') {
if (key === FormFields.S3_BUCKET_LIST_OR_NAME) {
return handleS3BucketListOrName(rkey, value);
}
if (key === FormFields.S3_BUCKET_NAME) {
return handleS3BucketName(rkey, value);
}
if (key === FormFields.STORAGE_TYPE) {
const v = value as Option;
return { [rkey]: v.key };
}
if (key === FormFields.AWS_ENVIRONMENT_TYPE) {
return handleAwsEnvType(rkey, value);
}
if (key === FormFields.CLOUD_FRONT_PUBLIC_KEY_ID) {
return handleCfPublicKey(rkey, value);
}
if (
key === FormFields.CLOUD_FRONT_DOWNLOAD_DISTRIBUTION ||
key === FormFields.CLOUD_FRONT_UPLOAD_DISTRIBUTION
) {
return handleCfDistribution(rkey, value);
}
if (key === FormFields.AWS_CONNECTION_ID) {
if (!value.key) {
return { [rkey]: '' };
} else {
return handleChosenAwsConnection(rkey, value);
}
}
}
if (key === FormFields.SECRET_ACCESS_KEY) {
const val = value as string;
if (val === PASSWORD_STUB) {
return { [rkey]: appProps.secretAcessKeyValue };
} else {
return { [rkey]: encodeSecret(value, appProps.publicKey) };
}
}
return { [rkey]: value };
} else {
return { [rkey]: '' };
}
})
.reduce((acc, cur) => ({ ...cur, ...acc }), {
projectId: appProps.projectId,
});
}