All files / modules/70-pipeline/components/PipelineStudio/PipelineCanvas PipelineCanvasUtils.ts

0% Statements 0/20
0% Branches 0/19
0% Functions 0/5
0% Lines 0/18

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 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117                                                                                                                                                                                                                                         
/*
 * 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 { IconName } from '@wings-software/uicore'
import type { AddDrawerMapInterface } from '@common/components/AddDrawer/AddDrawer'
// import { useGet } from 'restful-react'
// import { get } from 'lodash-es'
// import { getConfig } from 'services/config'
// import { Failure, GetStepsQueryParams, ResponseStepCategory, UseGetStepsProps } from 'services/cd-ng'
// import { Failure, GetStepsQueryParams, ResponseStepCategory, useGetSteps, UseGetStepsProps } from 'services/cd-ng'
import type { StageElementWrapperConfig, StepCategory } from 'services/cd-ng'
import { deployStageSteps } from './mock'
// import { buildStageSteps, deployStageSteps } from './mock'
 
type iconMapOptions = {
  [key: string]: IconName
}
 
// Currently coming from PipelineContext
const stageTypes = {
  BUILD: 'ci',
  DEPLOY: 'Deployment'
}
 
export const iconMap: iconMapOptions = {
  Apply: 'main-code-yaml',
  Scale: 'swap-vertical',
  'Stage Deployment': 'pipeline-deploy',
  'K8s Rolling Rollback': 'rolling',
  'Swap Selectors': 'command-swap',
  Delete: 'main-trash',
  Deployment: 'main-canary',
  'Terraform Apply': 'service-terraform',
  'Terraform Provision': 'service-terraform',
  'Terraform Delete': 'service-terraform',
  'Create Stack': 'service-cloudformation',
  'Delete Stack': 'service-cloudformation',
  'Shell Script Provisioner': 'command-shell-script',
  Jira: 'service-jira',
  ServiceNow: 'service-servicenow',
  Email: 'command-email',
  Barriers: 'barrier-open',
  'New Relic Deployment Maker': 'service-newrelic',
  'Templatized Secret Manager': 'main-template-library',
  Run: 'run-step',
  'Restore Cache': 'restore-cache-step',
  'Save Cache': 'save-cache-step',
  'Git Clone': 'git-clone-step',
  // TODO: temp icons
  // >> start
  JIRA: 'service-jira',
  'Approval Step': 'command-approval',
  HTTP: 'command-http',
  Plugin: 'git-clone-step',
  ResourceConstraint: 'traffic-lights'
  // << end
}
 
// This is temporary, need to get types as above for icons
export const iconMapByName: iconMapOptions = {
  Kubernetes: 'service-kubernetes',
  'Infrastructure Provisioners': 'yaml-builder-env',
  'Issue Tracking': 'error',
  Notification: 'notifications',
  'Flow Control': 'flow-branch',
  Utilites: 'briefcase'
}
 
const addIconNameToItems = (drawerMap: StepCategory = {}) => {
  const newAddDrawerMap: any = { ...drawerMap }
  drawerMap.stepCategories?.forEach((stepCategory, cIndex) =>
    stepCategory?.stepsData?.forEach((stepData, dIndex) => {
      if (stepData.name) {
        newAddDrawerMap.stepCategories[cIndex].stepsData[dIndex].iconName = iconMap[stepData.name]
      }
    })
  )
  return newAddDrawerMap
}
 
export const getAddDrawerMap = (drawerMap: any, stageType: string): AddDrawerMapInterface => {
  if (stageType === stageTypes.BUILD || stageType === stageTypes.DEPLOY) {
    return addIconNameToItems(drawerMap)
  }
  return addIconNameToItems(drawerMap)
}
// const useGetBuildSteps = (props: UseGetStepsProps) =>
//   useGet<ResponseStepCategory, Failure | Error, GetStepsQueryParams, void>(`/pipelines/configuration/buildsteps`, {
//     base: getConfig('ng/api'),
//     ...props,
//     mock: { data: (buildStageSteps as unknown) as ResponseStepCategory }
//   })
 
export const getCategoryItems = (_stageType: string, _selectedStage: StageElementWrapperConfig | undefined) => {
  //   const serviceDefinitionType = get(selectedStage, 'stage.spec.service.serviceDefinition.type', 'Kubernetes')
  //   this was successful
  const { data } = deployStageSteps
  return data
  // todo: see if something wrong with qb and services
  //   if (stageType === stageTypes.BUILD) {
  //     const { data } = useGetBuildSteps({ queryParams: { serviceDefinitionType } })
  //     return data ? data : {}
 
  //     return data
  //   } else if (stageType === stageTypes.DEPLOY) {
  //     const { data } = useGetSteps({ queryParams: { serviceDefinitionType } })
  //     // handle if fetching error
  //     return data ? data : {}
  //     // const { data } = useGetSteps({ queryParams: { serviceDefinitionType } })
  //     // return data
  //   }
}