From b5c984534ea495370b234cd5b7901b893085fbb4 Mon Sep 17 00:00:00 2001 From: shayc331 <77064001+shayc331@users.noreply.github.com> Date: Fri, 24 Jan 2025 22:11:19 +0200 Subject: [PATCH] Revert "SALTO-5481: add reference to support address v2 (#7130)" (#7160) This reverts commit bb728a4c5a2a2f13f56ca733be0b1ea34a09dcf6. --- packages/zendesk-adapter/src/adapter.ts | 4 +- .../src/filters/field_references.ts | 43 +++---------------- 2 files changed, 9 insertions(+), 38 deletions(-) diff --git a/packages/zendesk-adapter/src/adapter.ts b/packages/zendesk-adapter/src/adapter.ts index fbf8ed460e5..13b4b047f5a 100644 --- a/packages/zendesk-adapter/src/adapter.ts +++ b/packages/zendesk-adapter/src/adapter.ts @@ -217,6 +217,8 @@ export const DEFAULT_FILTERS = [ organizationsFilter, tagsFilter, localeFilter, + // supportAddress should run before referencedIdFieldsFilter + supportAddress, customStatus, guideAddBrandToArticleTranslation, macroFilter, @@ -247,8 +249,6 @@ export const DEFAULT_FILTERS = [ // fieldReferencesFilter should be after: // usersFilter, macroAttachmentsFilter, tagsFilter, guideLocalesFilter, customObjectFilter, customObjectFieldFilter fieldReferencesFilter, - // supportAddress should run before referencedIdFieldsFilter and after fieldReferencesFilter - supportAddress, // listValuesMissingReferencesFilter should be after fieldReferencesFilter listValuesMissingReferencesFilter, appInstallationsFilter, diff --git a/packages/zendesk-adapter/src/filters/field_references.ts b/packages/zendesk-adapter/src/filters/field_references.ts index 091fb39f5e0..f4a9ffddc9f 100644 --- a/packages/zendesk-adapter/src/filters/field_references.ts +++ b/packages/zendesk-adapter/src/filters/field_references.ts @@ -6,7 +6,7 @@ * CERTAIN THIRD PARTY SOFTWARE MAY BE CONTAINED IN PORTIONS OF THE SOFTWARE. See NOTICE FILE AT https://github.com/salto-io/salto/blob/main/NOTICES */ import _ from 'lodash' -import { Element, isInstanceElement, isTemplateExpression } from '@salto-io/adapter-api' +import { Element, isInstanceElement } from '@salto-io/adapter-api' import { references as referenceUtils } from '@salto-io/adapter-components' import { GetLookupNameFunc } from '@salto-io/adapter-utils' import { FilterCreator } from '../filter' @@ -39,7 +39,6 @@ import { BOT_BUILDER_NODE, BOT_BUILDER_ANSWER, CONVERSATION_BOT, - SUPPORT_ADDRESS_TYPE_NAME, BUSINESS_HOUR_SCHEDULE, } from '../constants' import { FETCH_CONFIG } from '../config' @@ -48,7 +47,6 @@ import { ZendeskMissingReferenceStrategyName, } from './references/missing_references' import { ZendeskUserConfig } from '../user_config' -import { replaceIfReferenceExpression } from './support_address' const { neighborContextGetter } = referenceUtils @@ -169,7 +167,7 @@ const neighborReferenceUserAndOrgFieldLookupFunc: GetLookupNameFunc = async ({ r const neighborReferenceUserAndOrgFieldLookupType: referenceUtils.ContextValueMapperFunc = val => [USER_FIELD_OPTION_TYPE_NAME, ORG_FIELD_OPTION_TYPE_NAME].includes(val) ? val : undefined -type ZendeskReferenceIndexField = 'key' | 'value' | 'locale' | 'email' +type ZendeskReferenceIndexField = 'key' | 'value' | 'locale' type ZendeskReferenceSerializationStrategyName = | 'ticketField' | 'value' @@ -184,7 +182,6 @@ type ZendeskReferenceSerializationStrategyName = | 'idString' | 'customObjectKey' | 'customStatusField' - | 'email' const getSerializationStrategyOfCustomFieldByContainingType = ( prefix: string, @@ -238,18 +235,6 @@ const ZendeskReferenceSerializationStrategyLookup: Record< lookup: val => val, lookupIndexName: 'value', }, - email: { - serialize: ({ ref }) => { - if (isInstanceElement(ref.value)) { - // the email in the support address is turned to a template expression, we need to serialize this too. - const val = ref.value.value.email - return isTemplateExpression(val) ? val.parts.map(replaceIfReferenceExpression).join('') : val - } - return ref.value - }, - lookup: val => val, - lookupIndexName: 'email', - }, localeId: { serialize: ({ ref }) => // locale_id may be missing reference @@ -296,8 +281,7 @@ const ZendeskReferenceSerializationStrategyLookup: Record< export type ReferenceContextStrategyName = | 'neighborField' - | 'allowListedNeighborField' - | 'allowListedEmailNeighborField' + | 'allowlistedNeighborField' | 'allowlistedNeighborSubject' | 'neighborType' | 'parentSubject' @@ -314,11 +298,7 @@ export const contextStrategyLookup: Record (val === 'recipient' ? SUPPORT_ADDRESS_TYPE_NAME : undefined), - }), + allowlistedNeighborField: neighborContextFunc({ contextFieldName: 'field', contextValueMapper: allowListLookupType }), allowlistedNeighborSubject: neighborContextFunc({ contextFieldName: 'subject', contextValueMapper: allowListLookupType, @@ -659,15 +639,6 @@ const firstIterationFieldNameToTypeMappingDefs: ZendeskFieldReferenceDefinition[ zendeskMissingRefStrategy: 'startsWith', target: { type: TICKET_FIELD_TYPE_NAME }, }, - { - src: { - field: 'value', - parentTypes: ['trigger__conditions__all', 'trigger__conditions__any'], - }, - serializationStrategy: 'email', - target: { typeContext: 'allowListedEmailNeighborField' }, - zendeskMissingRefStrategy: 'typeAndValue', - }, { src: { field: 'subject', @@ -994,7 +965,7 @@ const commonFieldNameToTypeMappingDefs: ZendeskFieldReferenceDefinition[] = [ parentTypes: ['trigger__actions'], }, serializationStrategy: 'idString', - target: { typeContext: 'allowListedNeighborField' }, + target: { typeContext: 'allowlistedNeighborField' }, zendeskMissingRefStrategy: 'typeAndValue', }, @@ -1047,7 +1018,7 @@ const commonFieldNameToTypeMappingDefs: ZendeskFieldReferenceDefinition[] = [ 'queue__definition__any', ], }, - target: { typeContext: 'allowListedNeighborField' }, + target: { typeContext: 'allowlistedNeighborField' }, zendeskMissingRefStrategy: 'typeAndValue', }, { @@ -1213,7 +1184,7 @@ export const fieldReferencesOnFetch = async (elements: Element[], config: Zendes await referenceUtils.addReferences({ elements, defs: fixedDefs, - fieldsToGroupBy: ['id', 'name', 'key', 'value', 'locale', 'email'], + fieldsToGroupBy: ['id', 'name', 'key', 'value', 'locale'], contextStrategyLookup, // since ids and references to ids vary inconsistently between string/number, allow both fieldReferenceResolverCreator: defs => new ZendeskFieldReferenceResolver(defs),