create.config.ts 3.05 KB
import { useRuleChainI18n } from '../../../hook/useRuleChainI18n';
import { FormSchema } from '/@/components/Form';
const { tLabel, tPlaceholder, t } = useRuleChainI18n('enrichment', 'originatorAttributes');

export enum OriginatorAttributesFieldsEnum {
  TELL_FAILURE_IF_ABSENT = 'tellFailureIfAbsent',
  CLIENT_ATTRIBUTE_NAMES = 'clientAttributeNames',
  SHARED_ATTRIBUTE_NAMES = 'sharedAttributeNames',
  SERVER_ATTRIBUTE_NAMES = 'serverAttributeNames',
  LATEST_TS_KEY_NAMES = 'latestTsKeyNames',
  GET_LATEST_VALUE_WITH_TS = 'getLatestValueWithTs',
}

export const formSchemas: FormSchema[] = [
  {
    field: OriginatorAttributesFieldsEnum.TELL_FAILURE_IF_ABSENT,
    component: 'Checkbox',
    label: tLabel(OriginatorAttributesFieldsEnum.TELL_FAILURE_IF_ABSENT),
    renderComponentContent: () => ({
      default: () =>
        'If at least one selected key doesn\'t exist the outbound message will report "Failure".',
    }),
  },
  {
    field: OriginatorAttributesFieldsEnum.CLIENT_ATTRIBUTE_NAMES,
    component: 'Select',
    label: tLabel(OriginatorAttributesFieldsEnum.CLIENT_ATTRIBUTE_NAMES),
    helpMessage: [
      `Hint: use \${metadataKey} for value from metadata, $[messageKey] for value from message body`,
    ],
    componentProps: {
      mode: 'tags',
      open: false,
      placeholder: tPlaceholder(OriginatorAttributesFieldsEnum.CLIENT_ATTRIBUTE_NAMES),
    },
  },
  {
    field: OriginatorAttributesFieldsEnum.SHARED_ATTRIBUTE_NAMES,
    component: 'Select',
    label: tLabel(OriginatorAttributesFieldsEnum.SHARED_ATTRIBUTE_NAMES),
    helpMessage: [
      `Hint: use \${metadataKey} for value from metadata, $[messageKey] for value from message body`,
    ],
    componentProps: {
      mode: 'tags',
      open: false,
      placeholder: tPlaceholder(OriginatorAttributesFieldsEnum.SHARED_ATTRIBUTE_NAMES),
    },
  },
  {
    field: OriginatorAttributesFieldsEnum.SERVER_ATTRIBUTE_NAMES,
    component: 'Select',
    label: tLabel(OriginatorAttributesFieldsEnum.SERVER_ATTRIBUTE_NAMES),
    helpMessage: [
      `Hint: use \${metadataKey} for value from metadata, $[messageKey] for value from message body`,
    ],
    componentProps: {
      mode: 'tags',
      open: false,
      placeholder: tPlaceholder(OriginatorAttributesFieldsEnum.SERVER_ATTRIBUTE_NAMES),
    },
  },
  {
    field: OriginatorAttributesFieldsEnum.LATEST_TS_KEY_NAMES,
    component: 'Select',
    label: tLabel(OriginatorAttributesFieldsEnum.LATEST_TS_KEY_NAMES),
    // required: true,
    helpMessage: [
      `Hint: use \${metadataKey} for value from metadata, $[messageKey] for value from message body`,
    ],
    componentProps: {
      mode: 'tags',
      open: false,
      placeholder: tPlaceholder(OriginatorAttributesFieldsEnum.LATEST_TS_KEY_NAMES),
    },
  },
  {
    field: OriginatorAttributesFieldsEnum.GET_LATEST_VALUE_WITH_TS,
    component: 'Checkbox',
    label: tLabel(OriginatorAttributesFieldsEnum.GET_LATEST_VALUE_WITH_TS),
    renderComponentContent: () => ({
      default: () =>
        t('rule.chain.enrichment.originatorAttributes.fields.getLatestValueWithTsDesc'),
    }),
  },
];