import { AUTOMATION_CONSULTING_WORK_AREA, CALENDLY_TRIGGER_NODE_TYPE, CLEARBIT_NODE_TYPE, COMPANY_SIZE_1000_OR_MORE, COMPANY_SIZE_500_999, CRON_NODE_TYPE, ELASTIC_SECURITY_NODE_TYPE, EMAIL_SEND_NODE_TYPE, EXECUTE_COMMAND_NODE_TYPE, FINANCE_WORK_AREA, FUNCTION_NODE_TYPE, GITHUB_TRIGGER_NODE_TYPE, HTTP_REQUEST_NODE_TYPE, IF_NODE_TYPE, ITEM_LISTS_NODE_TYPE, IT_ENGINEERING_WORK_AREA, JIRA_TRIGGER_NODE_TYPE, MICROSOFT_EXCEL_NODE_TYPE, MICROSOFT_TEAMS_NODE_TYPE, PERSONALIZATION_MODAL_KEY, PAGERDUTY_NODE_TYPE, PRODUCT_WORK_AREA, QUICKBOOKS_NODE_TYPE, SALESFORCE_NODE_TYPE, SALES_BUSINESSDEV_WORK_AREA, SECURITY_WORK_AREA, SEGMENT_NODE_TYPE, SET_NODE_TYPE, SLACK_NODE_TYPE, SPREADSHEET_FILE_NODE_TYPE, SWITCH_NODE_TYPE, WEBHOOK_NODE_TYPE, XERO_NODE_TYPE, COMPANY_SIZE_KEY, WORK_AREA_KEY, CODING_SKILL_KEY } from '@/constants'; import { IPersonalizationSurveyAnswers } from '@/Interface'; export function getPersonalizedNodeTypes(answers: IPersonalizationSurveyAnswers) { const companySize = answers[COMPANY_SIZE_KEY]; const workArea = answers[WORK_AREA_KEY]; if (companySize === null && workArea === null && answers[CODING_SKILL_KEY] === null) { return []; } let codingSkill = null; if (answers[CODING_SKILL_KEY]) { codingSkill = parseInt(answers[CODING_SKILL_KEY] as string, 10); codingSkill = isNaN(codingSkill)? 0 : codingSkill; } let nodeTypes = [] as string[]; if (workArea === IT_ENGINEERING_WORK_AREA || workArea === AUTOMATION_CONSULTING_WORK_AREA) { nodeTypes = nodeTypes.concat(WEBHOOK_NODE_TYPE); } else { nodeTypes = nodeTypes.concat(CRON_NODE_TYPE); } if (codingSkill !== null && codingSkill >= 4) { nodeTypes = nodeTypes.concat(FUNCTION_NODE_TYPE); } else { nodeTypes = nodeTypes.concat(ITEM_LISTS_NODE_TYPE); } if (codingSkill !== null && codingSkill < 3) { nodeTypes = nodeTypes.concat(IF_NODE_TYPE); } else { nodeTypes = nodeTypes.concat(SWITCH_NODE_TYPE); } if (companySize === COMPANY_SIZE_500_999 || companySize === COMPANY_SIZE_1000_OR_MORE) { if (workArea === SALES_BUSINESSDEV_WORK_AREA) { nodeTypes = nodeTypes.concat(SALESFORCE_NODE_TYPE); } else if (workArea === SECURITY_WORK_AREA) { nodeTypes = nodeTypes.concat([ELASTIC_SECURITY_NODE_TYPE, HTTP_REQUEST_NODE_TYPE]); } else if (workArea === PRODUCT_WORK_AREA) { nodeTypes = nodeTypes.concat([JIRA_TRIGGER_NODE_TYPE, SEGMENT_NODE_TYPE]); } else if (workArea === IT_ENGINEERING_WORK_AREA) { nodeTypes = nodeTypes.concat([GITHUB_TRIGGER_NODE_TYPE, HTTP_REQUEST_NODE_TYPE]); } else { nodeTypes = nodeTypes.concat([MICROSOFT_EXCEL_NODE_TYPE, MICROSOFT_TEAMS_NODE_TYPE]); } } else { if (workArea === SALES_BUSINESSDEV_WORK_AREA) { nodeTypes = nodeTypes.concat(CLEARBIT_NODE_TYPE); } else if (workArea === SECURITY_WORK_AREA) { nodeTypes = nodeTypes.concat([PAGERDUTY_NODE_TYPE, HTTP_REQUEST_NODE_TYPE]); } else if (workArea === PRODUCT_WORK_AREA) { nodeTypes = nodeTypes.concat([JIRA_TRIGGER_NODE_TYPE, CALENDLY_TRIGGER_NODE_TYPE]); } else if (workArea === IT_ENGINEERING_WORK_AREA) { nodeTypes = nodeTypes.concat([EXECUTE_COMMAND_NODE_TYPE, HTTP_REQUEST_NODE_TYPE]); } else if (workArea === FINANCE_WORK_AREA) { nodeTypes = nodeTypes.concat([XERO_NODE_TYPE, QUICKBOOKS_NODE_TYPE, SPREADSHEET_FILE_NODE_TYPE]); } else { nodeTypes = nodeTypes.concat([EMAIL_SEND_NODE_TYPE, SLACK_NODE_TYPE]); } } nodeTypes = nodeTypes.concat(SET_NODE_TYPE); return nodeTypes; }