All files / modules/70-pipeline/components/PipelineSteps/Steps/ServiceNowApproval types.ts

100% Statements 12/12
100% Branches 4/4
100% Functions 1/1
100% Lines 11/11

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 81 82 83 84 85 86 87 88 89 90 91 92                                        111x                                                                                                                   111x 2x 1x 1x 1x 1x   2x 1x 1x 1x      
/*
 * 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 { MultiTypeInputType, SelectOption } from '@wings-software/uicore'
import type { FormikProps } from 'formik'
 
import type { GetDataError } from 'restful-react'
import type {
  ResponseListServiceNowTicketTypeDTO,
  StepElementConfig,
  UseGetServiceNowIssueCreateMetadataProps,
  UseGetServiceNowTicketTypesProps,
  Failure,
  ResponseListServiceNowFieldNG
} from 'services/cd-ng'
import type { InputSetData, StepViewType } from '@pipeline/components/AbstractSteps/Step'
import { getDefaultCriterias } from '@pipeline/components/PipelineSteps/Steps/JiraApproval/helper'
import type { ApprovalRejectionCriteria } from '@pipeline/components/PipelineSteps/Steps/Common/types'
import type { VariableMergeServiceResponse } from 'services/pipeline-ng'
 
export interface ServiceNowApprovalData extends StepElementConfig {
  spec: {
    connectorRef: string | SelectOption
    ticketType: string | ServiceNowTicketTypeSelectOption
    ticketNumber: string
    approvalCriteria: ApprovalRejectionCriteria
    rejectionCriteria: ApprovalRejectionCriteria
  }
}
export interface ServiceNowTicketTypeSelectOption extends SelectOption {
  key: string
}
export interface ServiceNowTicketFieldSelectOption extends SelectOption {
  key: string
}
 
export interface SnowApprovalVariableListModeProps {
  variablesData: ServiceNowApprovalData
  metadataMap: Required<VariableMergeServiceResponse>['metadataMap']
}
 
export interface SnowApprovalDeploymentModeProps {
  stepViewType: StepViewType
  initialValues: ServiceNowApprovalData
  allowableTypes: MultiTypeInputType[]
  onUpdate?: (data: ServiceNowApprovalData) => void
  inputSetData?: InputSetData<ServiceNowApprovalData>
  formik?: any
}
 
export interface ServiceNowApprovalStepModeProps {
  stepViewType: StepViewType
  initialValues: ServiceNowApprovalData
  allowableTypes: MultiTypeInputType[]
  onUpdate?: (data: ServiceNowApprovalData) => void
  onChange?: (data: ServiceNowApprovalData) => void
  isNewStep?: boolean
  readonly?: boolean
}
export interface ServiceNowFormContentInterface {
  formik: FormikProps<ServiceNowApprovalData>
  stepViewType: StepViewType
  allowableTypes: MultiTypeInputType[]
  isNewStep?: boolean
  readonly?: boolean
  refetchServiceNowTicketTypes: (props: UseGetServiceNowTicketTypesProps) => Promise<void>
  serviceNowTicketTypesFetchError?: GetDataError<Failure | Error> | null
  fetchingServiceNowTicketTypes: boolean
  serviceNowTicketTypesResponse: ResponseListServiceNowTicketTypeDTO | null
  refetchServiceNowMetadata: (props: UseGetServiceNowIssueCreateMetadataProps) => Promise<void>
  serviceNowMetadataFetchError?: GetDataError<Failure | Error> | null
  fetchingServiceNowMetadata: boolean
  serviceNowMetadataResponse: ResponseListServiceNowFieldNG | null
}
export const resetForm = (formik: FormikProps<ServiceNowApprovalData>, parent: string) => {
  if (parent === 'connectorRef') {
    formik.setFieldValue('spec.ticketType', '')
    formik.setFieldValue('spec.ticketNumber', '')
    formik.setFieldValue('spec.approvalCriteria', getDefaultCriterias())
    formik.setFieldValue('spec.rejectionCriteria', getDefaultCriterias())
  }
  if (parent === 'ticketType') {
    formik.setFieldValue('spec.ticketNumber', '')
    formik.setFieldValue('spec.approvalCriteria', getDefaultCriterias())
    formik.setFieldValue('spec.rejectionCriteria', getDefaultCriterias())
  }
}