export async function fetchCfKeysValidationResult()

in s3-artifact-storage-ui/src/Utilities/fetchCfKeysValidationResult.ts [16:51]


export async function fetchCfKeysValidationResult(
  config: Config,
  data: IFormInput
): Promise<FetchCfKeysValidationResultResponse> {
  const parameters = {
    ...serializeParameters(data, config),
    resource: FetchResourceIds.VALIDATE_CLOUD_FRONT_KEYS,
  };

  return await post(config.containersPath, parameters).then((resp) => {
    const response = new DOMParser().parseFromString(resp, 'text/xml');
    const errors: ResponseErrors | null = parseErrorsFromResponse(response);
    if (errors) {
      return { isValid: null, errors };
    }

    const validationResult = parseResponse(
      response,
      'cfKeysValidationResult'
    )[0]?.textContent;
    const isValid = validationResult === 'OK';
    if (isValid) return { isValid, errors: null };
    else if (validationResult) {
      return {
        isValid,
        errors: {
          [FetchResourceIds.VALIDATE_CLOUD_FRONT_KEYS]: {
            message: validationResult,
          },
        },
      };
    } else {
      return { isValid, errors: null };
    }
  });
}