Marie
2025-01-06 17:57:32 +01:00
committed by GitHub
parent b22a598d7d
commit a9b95bcf03
30 changed files with 503 additions and 328 deletions

View File

@ -1,15 +0,0 @@
import { FieldMetadataType } from 'src/types/FieldMetadataType';
import { getSubfieldForAggregateOperation } from 'src/utils/aggregateOperations/getSubFieldForAggregateOperation.util';
import { isCompositeFieldMetadataType } from 'src/utils/aggregateOperations/isCompositeFieldMetadataType.util';
import { capitalize } from 'src/utils/strings/capitalize';
export const getColumnNameForAggregateOperation = (
fieldName: string,
fieldType: FieldMetadataType,
) => {
if (!isCompositeFieldMetadataType(fieldType)) {
return fieldName;
}
return `${fieldName}${capitalize(getSubfieldForAggregateOperation(fieldType) as string)}`;
};

View File

@ -1,27 +1,40 @@
import { FieldMetadataType } from 'src/types/FieldMetadataType';
import { isCompositeFieldMetadataType } from 'src/utils/aggregateOperations/isCompositeFieldMetadataType.util';
export const getSubfieldForAggregateOperation = (
export const getSubfieldsForAggregateOperation = (
fieldType: FieldMetadataType,
) => {
): string[] | undefined => {
if (!isCompositeFieldMetadataType(fieldType)) {
return undefined;
} else {
switch (fieldType) {
case FieldMetadataType.CURRENCY:
return 'amountMicros';
return ['amountMicros', 'currencyCode'];
case FieldMetadataType.FULL_NAME:
return 'lastName';
return ['firstName', 'lastName'];
case FieldMetadataType.ADDRESS:
return 'addressStreet1';
return [
'addressStreet1',
'addressStreet2',
'addressCity',
'addressPostcode',
'addressState',
'addressCountry',
'addressLat',
'addressLng',
];
case FieldMetadataType.LINKS:
return 'primaryLinkLabel';
return ['primaryLinkUrl'];
case FieldMetadataType.ACTOR:
return 'workspaceMemberId';
return ['workspaceMemberId'];
case FieldMetadataType.EMAILS:
return 'primaryEmail';
return ['primaryEmail'];
case FieldMetadataType.PHONES:
return 'primaryPhoneNumber';
return [
'primaryPhoneNumber',
'primaryPhoneCountryCode',
'primaryPhoneCallingCode',
];
default:
throw new Error(`Unsupported composite field type: ${fieldType}`);
}

View File

@ -1,3 +1 @@
export * from './getColumnNameForAggregateOperation.util';
export * from './getSubFieldForAggregateOperation.util';
export * from './getSubFieldsForAggregateOperation.util';