Press n or j to go to the next uncovered block, b, p or k for the previous block.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 | 25x 25x 3x 3x 2x 3x 3x 3x 3x 3x 25x 5x 5x 4x 3x 1x 5x 1x 5x | /* * Copyright 2021 Harness Inc. All rights reserved. * Use of this source code is governed by the PolyForm Shield 1.0.0 license * that can be found in the licenses directory at the root of this repository, also available at * https://polyformproject.org/wp-content/uploads/2020/06/PolyForm-Shield-1.0.0.txt. */ import type { FormikProps } from 'formik' import type { UseStringsReturn } from 'framework/strings' import { initialFormData, MapSplunkToServiceFieldNames } from './constants' import type { MapSplunkQueryToService } from './types' type UpdateSelectedQueriesMap = { updatedMetric: string oldMetric: string mappedMetrics: Map<string, MapSplunkQueryToService> formikProps: FormikProps<MapSplunkQueryToService | undefined> } export function updateSelectedMetricsMap({ updatedMetric, oldMetric, mappedMetrics, formikProps }: UpdateSelectedQueriesMap): any { const updatedMap = new Map(mappedMetrics) // in the case where user updates query name, update the key for current value if (oldMetric !== formikProps.values?.metricName) { updatedMap.delete(oldMetric) } // if newly created query create form object Eif (!updatedMap.has(updatedMetric)) { updatedMap.set(updatedMetric, { ...initialFormData, metricName: updatedMetric }) } // update map with current form data Eif (formikProps.values?.metricName) { updatedMap.set(formikProps.values.metricName, formikProps.values as MapSplunkQueryToService) } return { selectedMetric: updatedMetric, mappedMetrics: updatedMap } } export function validateMappings( getString: UseStringsReturn['getString'], createdMetrics: string[], selectedMetricIndex: number, values?: MapSplunkQueryToService ): { [fieldName: string]: string } { const requiredFieldErrors = { ...(!values?.metricName && { [MapSplunkToServiceFieldNames.METRIC_NAME]: getString('cv.monitoringSources.queryNameValidation') }), ...(!values?.query && { [MapSplunkToServiceFieldNames.QUERY]: getString('cv.monitoringSources.gco.manualInputQueryModal.validation.query') }), ...(!values?.serviceInstance && { [MapSplunkToServiceFieldNames.SERVICE_INSTANCE]: getString( 'cv.monitoringSources.gcoLogs.validation.serviceInstance' ) }) } const duplicateNames = createdMetrics?.filter((metricName, index) => { if (index === selectedMetricIndex) { return false } return metricName === values?.metricName }) if (values?.metricName && duplicateNames.length) { requiredFieldErrors[MapSplunkToServiceFieldNames.METRIC_NAME] = getString( 'cv.monitoringSources.gcoLogs.validation.queryNameUnique' ) } return requiredFieldErrors } |