Rename DATE to DATETIME (#2576)
* Rename DATE to DATETIME * rename DATE to DATE_TIME * fix server tests * rename date to datetime * rename date to datetime
This commit is contained in:
@ -152,7 +152,7 @@ export type FieldDeleteResponse = {
|
|||||||
export enum FieldMetadataType {
|
export enum FieldMetadataType {
|
||||||
Boolean = 'BOOLEAN',
|
Boolean = 'BOOLEAN',
|
||||||
Currency = 'CURRENCY',
|
Currency = 'CURRENCY',
|
||||||
Date = 'DATE',
|
DateTime = 'DATE_TIME',
|
||||||
Email = 'EMAIL',
|
Email = 'EMAIL',
|
||||||
Enum = 'ENUM',
|
Enum = 'ENUM',
|
||||||
FullName = 'FULL_NAME',
|
FullName = 'FULL_NAME',
|
||||||
@ -416,9 +416,9 @@ export type UpdateOneObjectInput = {
|
|||||||
|
|
||||||
export type User = {
|
export type User = {
|
||||||
__typename?: 'User';
|
__typename?: 'User';
|
||||||
avatarUrl: Scalars['String']['output'];
|
|
||||||
canImpersonate: Scalars['Boolean']['output'];
|
canImpersonate: Scalars['Boolean']['output'];
|
||||||
createdAt: Scalars['DateTime']['output'];
|
createdAt: Scalars['DateTime']['output'];
|
||||||
|
defaultWorkspace: Workspace;
|
||||||
deletedAt?: Maybe<Scalars['DateTime']['output']>;
|
deletedAt?: Maybe<Scalars['DateTime']['output']>;
|
||||||
disabled?: Maybe<Scalars['Boolean']['output']>;
|
disabled?: Maybe<Scalars['Boolean']['output']>;
|
||||||
email: Scalars['String']['output'];
|
email: Scalars['String']['output'];
|
||||||
@ -426,11 +426,9 @@ export type User = {
|
|||||||
firstName: Scalars['String']['output'];
|
firstName: Scalars['String']['output'];
|
||||||
id: Scalars['ID']['output'];
|
id: Scalars['ID']['output'];
|
||||||
lastName: Scalars['String']['output'];
|
lastName: Scalars['String']['output'];
|
||||||
lastSeen?: Maybe<Scalars['DateTime']['output']>;
|
|
||||||
locale: Scalars['String']['output'];
|
|
||||||
passwordHash?: Maybe<Scalars['String']['output']>;
|
passwordHash?: Maybe<Scalars['String']['output']>;
|
||||||
phoneNumber?: Maybe<Scalars['String']['output']>;
|
|
||||||
updatedAt: Scalars['DateTime']['output'];
|
updatedAt: Scalars['DateTime']['output'];
|
||||||
|
workspaceMember: UserWorkspaceMember;
|
||||||
};
|
};
|
||||||
|
|
||||||
export type UserEdge = {
|
export type UserEdge = {
|
||||||
@ -441,6 +439,22 @@ export type UserEdge = {
|
|||||||
node: User;
|
node: User;
|
||||||
};
|
};
|
||||||
|
|
||||||
|
export type UserWorkspaceMember = {
|
||||||
|
__typename?: 'UserWorkspaceMember';
|
||||||
|
allowImpersonation: Scalars['Boolean']['output'];
|
||||||
|
avatarUrl?: Maybe<Scalars['String']['output']>;
|
||||||
|
colorScheme: Scalars['String']['output'];
|
||||||
|
id: Scalars['ID']['output'];
|
||||||
|
locale: Scalars['String']['output'];
|
||||||
|
name: UserWorkspaceMemberName;
|
||||||
|
};
|
||||||
|
|
||||||
|
export type UserWorkspaceMemberName = {
|
||||||
|
__typename?: 'UserWorkspaceMemberName';
|
||||||
|
firstName: Scalars['String']['output'];
|
||||||
|
lastName: Scalars['String']['output'];
|
||||||
|
};
|
||||||
|
|
||||||
export type Workspace = {
|
export type Workspace = {
|
||||||
__typename?: 'Workspace';
|
__typename?: 'Workspace';
|
||||||
createdAt: Scalars['DateTime']['output'];
|
createdAt: Scalars['DateTime']['output'];
|
||||||
|
|||||||
@ -120,7 +120,7 @@ export type FieldDeleteResponse = {
|
|||||||
export enum FieldMetadataType {
|
export enum FieldMetadataType {
|
||||||
Boolean = 'BOOLEAN',
|
Boolean = 'BOOLEAN',
|
||||||
Currency = 'CURRENCY',
|
Currency = 'CURRENCY',
|
||||||
Date = 'DATE',
|
DateTime = 'DATE_TIME',
|
||||||
Email = 'EMAIL',
|
Email = 'EMAIL',
|
||||||
Enum = 'ENUM',
|
Enum = 'ENUM',
|
||||||
FullName = 'FULL_NAME',
|
FullName = 'FULL_NAME',
|
||||||
|
|||||||
@ -24,11 +24,10 @@ export const useMapFieldMetadataToGraphQLQuery = () => {
|
|||||||
'UUID',
|
'UUID',
|
||||||
'TEXT',
|
'TEXT',
|
||||||
'PHONE',
|
'PHONE',
|
||||||
'DATE',
|
'DATE_TIME',
|
||||||
'EMAIL',
|
'EMAIL',
|
||||||
'NUMBER',
|
'NUMBER',
|
||||||
'BOOLEAN',
|
'BOOLEAN',
|
||||||
'DATE',
|
|
||||||
] as FieldType[]
|
] as FieldType[]
|
||||||
).includes(fieldType);
|
).includes(fieldType);
|
||||||
|
|
||||||
|
|||||||
@ -11,7 +11,7 @@ export const formatFieldMetadataItemsAsFilterDefinitions = ({
|
|||||||
fields.reduce((acc, field) => {
|
fields.reduce((acc, field) => {
|
||||||
if (
|
if (
|
||||||
![
|
![
|
||||||
FieldMetadataType.Date,
|
FieldMetadataType.DateTime,
|
||||||
FieldMetadataType.Number,
|
FieldMetadataType.Number,
|
||||||
FieldMetadataType.Text,
|
FieldMetadataType.Text,
|
||||||
].includes(field.type)
|
].includes(field.type)
|
||||||
@ -30,8 +30,8 @@ const formatFieldMetadataItemAsFilterDefinition = ({
|
|||||||
label: field.label,
|
label: field.label,
|
||||||
iconName: field.icon ?? 'Icon123',
|
iconName: field.icon ?? 'Icon123',
|
||||||
type:
|
type:
|
||||||
field.type === FieldMetadataType.Date
|
field.type === FieldMetadataType.DateTime
|
||||||
? 'DATE'
|
? 'DATE_TIME'
|
||||||
: field.type === FieldMetadataType.Number
|
: field.type === FieldMetadataType.Number
|
||||||
? 'NUMBER'
|
? 'NUMBER'
|
||||||
: 'TEXT',
|
: 'TEXT',
|
||||||
|
|||||||
@ -11,7 +11,7 @@ export const formatFieldMetadataItemsAsSortDefinitions = ({
|
|||||||
fields.reduce((acc, field) => {
|
fields.reduce((acc, field) => {
|
||||||
if (
|
if (
|
||||||
![
|
![
|
||||||
FieldMetadataType.Date,
|
FieldMetadataType.DateTime,
|
||||||
FieldMetadataType.Number,
|
FieldMetadataType.Number,
|
||||||
FieldMetadataType.Text,
|
FieldMetadataType.Text,
|
||||||
FieldMetadataType.Boolean,
|
FieldMetadataType.Boolean,
|
||||||
|
|||||||
@ -79,7 +79,7 @@ export const SettingsObjectFieldTypeSelectSection = ({
|
|||||||
[
|
[
|
||||||
FieldMetadataType.Boolean,
|
FieldMetadataType.Boolean,
|
||||||
FieldMetadataType.Currency,
|
FieldMetadataType.Currency,
|
||||||
FieldMetadataType.Date,
|
FieldMetadataType.DateTime,
|
||||||
FieldMetadataType.Link,
|
FieldMetadataType.Link,
|
||||||
FieldMetadataType.Number,
|
FieldMetadataType.Number,
|
||||||
FieldMetadataType.Relation,
|
FieldMetadataType.Relation,
|
||||||
|
|||||||
@ -48,8 +48,8 @@ export const dataTypes: Record<
|
|||||||
Icon: IconCheck,
|
Icon: IconCheck,
|
||||||
defaultValue: true,
|
defaultValue: true,
|
||||||
},
|
},
|
||||||
[FieldMetadataType.Date]: {
|
[FieldMetadataType.DateTime]: {
|
||||||
label: 'Date',
|
label: 'Date & Time',
|
||||||
Icon: IconCalendarEvent,
|
Icon: IconCalendarEvent,
|
||||||
defaultValue: defaultDateValue.toISOString(),
|
defaultValue: defaultDateValue.toISOString(),
|
||||||
},
|
},
|
||||||
|
|||||||
@ -1,6 +1,6 @@
|
|||||||
export type MetadataFieldDataType =
|
export type MetadataFieldDataType =
|
||||||
| 'BOOLEAN'
|
| 'BOOLEAN'
|
||||||
| 'DATE'
|
| 'DATE_TIME'
|
||||||
| 'ENUM'
|
| 'ENUM'
|
||||||
| 'MONEY'
|
| 'MONEY'
|
||||||
| 'NUMBER'
|
| 'NUMBER'
|
||||||
|
|||||||
@ -16,7 +16,7 @@ import { NumberFieldDisplay } from '../meta-types/display/components/NumberField
|
|||||||
import { PhoneFieldDisplay } from '../meta-types/display/components/PhoneFieldDisplay';
|
import { PhoneFieldDisplay } from '../meta-types/display/components/PhoneFieldDisplay';
|
||||||
import { TextFieldDisplay } from '../meta-types/display/components/TextFieldDisplay';
|
import { TextFieldDisplay } from '../meta-types/display/components/TextFieldDisplay';
|
||||||
import { isFieldCurrency } from '../types/guards/isFieldCurrency';
|
import { isFieldCurrency } from '../types/guards/isFieldCurrency';
|
||||||
import { isFieldDate } from '../types/guards/isFieldDate';
|
import { isFieldDateTime } from '../types/guards/isFieldDateTime';
|
||||||
import { isFieldEmail } from '../types/guards/isFieldEmail';
|
import { isFieldEmail } from '../types/guards/isFieldEmail';
|
||||||
import { isFieldNumber } from '../types/guards/isFieldNumber';
|
import { isFieldNumber } from '../types/guards/isFieldNumber';
|
||||||
import { isFieldPhone } from '../types/guards/isFieldPhone';
|
import { isFieldPhone } from '../types/guards/isFieldPhone';
|
||||||
@ -36,7 +36,7 @@ export const FieldDisplay = () => {
|
|||||||
<UuidFieldDisplay />
|
<UuidFieldDisplay />
|
||||||
) : isFieldEmail(fieldDefinition) ? (
|
) : isFieldEmail(fieldDefinition) ? (
|
||||||
<EmailFieldDisplay />
|
<EmailFieldDisplay />
|
||||||
) : isFieldDate(fieldDefinition) ? (
|
) : isFieldDateTime(fieldDefinition) ? (
|
||||||
<DateFieldDisplay />
|
<DateFieldDisplay />
|
||||||
) : isFieldNumber(fieldDefinition) ? (
|
) : isFieldNumber(fieldDefinition) ? (
|
||||||
<NumberFieldDisplay />
|
<NumberFieldDisplay />
|
||||||
|
|||||||
@ -18,7 +18,7 @@ import { TextFieldInput } from '../meta-types/input/components/TextFieldInput';
|
|||||||
import { FieldInputEvent } from '../types/FieldInputEvent';
|
import { FieldInputEvent } from '../types/FieldInputEvent';
|
||||||
import { isFieldBoolean } from '../types/guards/isFieldBoolean';
|
import { isFieldBoolean } from '../types/guards/isFieldBoolean';
|
||||||
import { isFieldCurrency } from '../types/guards/isFieldCurrency';
|
import { isFieldCurrency } from '../types/guards/isFieldCurrency';
|
||||||
import { isFieldDate } from '../types/guards/isFieldDate';
|
import { isFieldDateTime } from '../types/guards/isFieldDateTime';
|
||||||
import { isFieldEmail } from '../types/guards/isFieldEmail';
|
import { isFieldEmail } from '../types/guards/isFieldEmail';
|
||||||
import { isFieldLink } from '../types/guards/isFieldLink';
|
import { isFieldLink } from '../types/guards/isFieldLink';
|
||||||
import { isFieldNumber } from '../types/guards/isFieldNumber';
|
import { isFieldNumber } from '../types/guards/isFieldNumber';
|
||||||
@ -78,7 +78,7 @@ export const FieldInput = ({
|
|||||||
onTab={onTab}
|
onTab={onTab}
|
||||||
onShiftTab={onShiftTab}
|
onShiftTab={onShiftTab}
|
||||||
/>
|
/>
|
||||||
) : isFieldDate(fieldDefinition) ? (
|
) : isFieldDateTime(fieldDefinition) ? (
|
||||||
<DateFieldInput
|
<DateFieldInput
|
||||||
onEnter={onEnter}
|
onEnter={onEnter}
|
||||||
onEscape={onEscape}
|
onEscape={onEscape}
|
||||||
|
|||||||
@ -10,8 +10,8 @@ import { isFieldBoolean } from '../types/guards/isFieldBoolean';
|
|||||||
import { isFieldBooleanValue } from '../types/guards/isFieldBooleanValue';
|
import { isFieldBooleanValue } from '../types/guards/isFieldBooleanValue';
|
||||||
import { isFieldCurrency } from '../types/guards/isFieldCurrency';
|
import { isFieldCurrency } from '../types/guards/isFieldCurrency';
|
||||||
import { isFieldCurrencyValue } from '../types/guards/isFieldCurrencyValue';
|
import { isFieldCurrencyValue } from '../types/guards/isFieldCurrencyValue';
|
||||||
import { isFieldDate } from '../types/guards/isFieldDate';
|
import { isFieldDateTime } from '../types/guards/isFieldDateTime';
|
||||||
import { isFieldDateValue } from '../types/guards/isFieldDateValue';
|
import { isFieldDateTimeValue } from '../types/guards/isFieldDateTimeValue';
|
||||||
import { isFieldEmail } from '../types/guards/isFieldEmail';
|
import { isFieldEmail } from '../types/guards/isFieldEmail';
|
||||||
import { isFieldEmailValue } from '../types/guards/isFieldEmailValue';
|
import { isFieldEmailValue } from '../types/guards/isFieldEmailValue';
|
||||||
import { isFieldLink } from '../types/guards/isFieldLink';
|
import { isFieldLink } from '../types/guards/isFieldLink';
|
||||||
@ -49,8 +49,9 @@ export const usePersistField = () => {
|
|||||||
const fieldIsEmail =
|
const fieldIsEmail =
|
||||||
isFieldEmail(fieldDefinition) && isFieldEmailValue(valueToPersist);
|
isFieldEmail(fieldDefinition) && isFieldEmailValue(valueToPersist);
|
||||||
|
|
||||||
const fieldIsDate =
|
const fieldIsDateTime =
|
||||||
isFieldDate(fieldDefinition) && isFieldDateValue(valueToPersist);
|
isFieldDateTime(fieldDefinition) &&
|
||||||
|
isFieldDateTimeValue(valueToPersist);
|
||||||
|
|
||||||
const fieldIsLink =
|
const fieldIsLink =
|
||||||
isFieldLink(fieldDefinition) && isFieldLinkValue(valueToPersist);
|
isFieldLink(fieldDefinition) && isFieldLinkValue(valueToPersist);
|
||||||
@ -101,7 +102,7 @@ export const usePersistField = () => {
|
|||||||
fieldIsEmail ||
|
fieldIsEmail ||
|
||||||
fieldIsProbability ||
|
fieldIsProbability ||
|
||||||
fieldIsNumber ||
|
fieldIsNumber ||
|
||||||
fieldIsDate ||
|
fieldIsDateTime ||
|
||||||
fieldIsPhone ||
|
fieldIsPhone ||
|
||||||
fieldIsLink ||
|
fieldIsLink ||
|
||||||
fieldIsCurrency ||
|
fieldIsCurrency ||
|
||||||
|
|||||||
@ -1,9 +1,9 @@
|
|||||||
import { DateDisplay } from '@/ui/object/field/meta-types/display/content-display/components/DateDisplay';
|
import { DateDisplay } from '@/ui/object/field/meta-types/display/content-display/components/DateDisplay';
|
||||||
|
|
||||||
import { useDateField } from '../../hooks/useDateField';
|
import { useDateTimeField } from '../../hooks/useDateTimeField';
|
||||||
|
|
||||||
export const DateFieldDisplay = () => {
|
export const DateFieldDisplay = () => {
|
||||||
const { fieldValue } = useDateField();
|
const { fieldValue } = useDateTimeField();
|
||||||
|
|
||||||
return <DateDisplay value={fieldValue} />;
|
return <DateDisplay value={fieldValue} />;
|
||||||
};
|
};
|
||||||
|
|||||||
@ -4,13 +4,13 @@ import { Meta, StoryObj } from '@storybook/react';
|
|||||||
import { ComponentDecorator } from '~/testing/decorators/ComponentDecorator';
|
import { ComponentDecorator } from '~/testing/decorators/ComponentDecorator';
|
||||||
|
|
||||||
import { FieldContext } from '../../../../contexts/FieldContext';
|
import { FieldContext } from '../../../../contexts/FieldContext';
|
||||||
import { useDateField } from '../../../hooks/useDateField';
|
import { useDateTimeField } from '../../../hooks/useDateTimeField';
|
||||||
import { DateFieldDisplay } from '../DateFieldDisplay';
|
import { DateFieldDisplay } from '../DateFieldDisplay';
|
||||||
|
|
||||||
const formattedDate = new Date('2023-04-01');
|
const formattedDate = new Date('2023-04-01');
|
||||||
|
|
||||||
const DateFieldValueSetterEffect = ({ value }: { value: string }) => {
|
const DateFieldValueSetterEffect = ({ value }: { value: string }) => {
|
||||||
const { setFieldValue } = useDateField();
|
const { setFieldValue } = useDateTimeField();
|
||||||
|
|
||||||
useEffect(() => {
|
useEffect(() => {
|
||||||
setFieldValue(value);
|
setFieldValue(value);
|
||||||
@ -30,7 +30,7 @@ const meta: Meta = {
|
|||||||
fieldDefinition: {
|
fieldDefinition: {
|
||||||
fieldMetadataId: 'date',
|
fieldMetadataId: 'date',
|
||||||
label: 'Date',
|
label: 'Date',
|
||||||
type: 'DATE',
|
type: 'DATE_TIME',
|
||||||
iconName: 'IconCalendarEvent',
|
iconName: 'IconCalendarEvent',
|
||||||
metadata: {
|
metadata: {
|
||||||
fieldName: 'Date',
|
fieldName: 'Date',
|
||||||
|
|||||||
@ -4,12 +4,12 @@ import { useRecoilState } from 'recoil';
|
|||||||
import { FieldContext } from '../../contexts/FieldContext';
|
import { FieldContext } from '../../contexts/FieldContext';
|
||||||
import { entityFieldsFamilySelector } from '../../states/selectors/entityFieldsFamilySelector';
|
import { entityFieldsFamilySelector } from '../../states/selectors/entityFieldsFamilySelector';
|
||||||
import { assertFieldMetadata } from '../../types/guards/assertFieldMetadata';
|
import { assertFieldMetadata } from '../../types/guards/assertFieldMetadata';
|
||||||
import { isFieldDate } from '../../types/guards/isFieldDate';
|
import { isFieldDateTime } from '../../types/guards/isFieldDateTime';
|
||||||
|
|
||||||
export const useDateField = () => {
|
export const useDateTimeField = () => {
|
||||||
const { entityId, fieldDefinition, hotkeyScope } = useContext(FieldContext);
|
const { entityId, fieldDefinition, hotkeyScope } = useContext(FieldContext);
|
||||||
|
|
||||||
assertFieldMetadata('DATE', isFieldDate, fieldDefinition);
|
assertFieldMetadata('DATE_TIME', isFieldDateTime, fieldDefinition);
|
||||||
|
|
||||||
const fieldName = fieldDefinition.metadata.fieldName;
|
const fieldName = fieldDefinition.metadata.fieldName;
|
||||||
|
|
||||||
@ -2,7 +2,7 @@ import { DateInput } from '@/ui/object/field/meta-types/input/components/interna
|
|||||||
import { Nullable } from '~/types/Nullable';
|
import { Nullable } from '~/types/Nullable';
|
||||||
|
|
||||||
import { usePersistField } from '../../../hooks/usePersistField';
|
import { usePersistField } from '../../../hooks/usePersistField';
|
||||||
import { useDateField } from '../../hooks/useDateField';
|
import { useDateTimeField } from '../../hooks/useDateTimeField';
|
||||||
|
|
||||||
export type FieldInputEvent = (persist: () => void) => void;
|
export type FieldInputEvent = (persist: () => void) => void;
|
||||||
|
|
||||||
@ -19,7 +19,7 @@ export const DateFieldInput = ({
|
|||||||
onEscape,
|
onEscape,
|
||||||
onClickOutside,
|
onClickOutside,
|
||||||
}: DateFieldInputProps) => {
|
}: DateFieldInputProps) => {
|
||||||
const { fieldValue, hotkeyScope } = useDateField();
|
const { fieldValue, hotkeyScope } = useDateTimeField();
|
||||||
|
|
||||||
const persistField = usePersistField();
|
const persistField = usePersistField();
|
||||||
|
|
||||||
|
|||||||
@ -6,13 +6,13 @@ import { userEvent, within } from '@storybook/testing-library';
|
|||||||
import { useSetHotkeyScope } from '@/ui/utilities/hotkey/hooks/useSetHotkeyScope';
|
import { useSetHotkeyScope } from '@/ui/utilities/hotkey/hooks/useSetHotkeyScope';
|
||||||
|
|
||||||
import { FieldContextProvider } from '../../../__stories__/FieldContextProvider';
|
import { FieldContextProvider } from '../../../__stories__/FieldContextProvider';
|
||||||
import { useDateField } from '../../../hooks/useDateField';
|
import { useDateTimeField } from '../../../hooks/useDateTimeField';
|
||||||
import { DateFieldInput, DateFieldInputProps } from '../DateFieldInput';
|
import { DateFieldInput, DateFieldInputProps } from '../DateFieldInput';
|
||||||
|
|
||||||
const formattedDate = new Date();
|
const formattedDate = new Date();
|
||||||
|
|
||||||
const DateFieldValueSetterEffect = ({ value }: { value: Date }) => {
|
const DateFieldValueSetterEffect = ({ value }: { value: Date }) => {
|
||||||
const { setFieldValue } = useDateField();
|
const { setFieldValue } = useDateTimeField();
|
||||||
|
|
||||||
useEffect(() => {
|
useEffect(() => {
|
||||||
setFieldValue(value.toISOString());
|
setFieldValue(value.toISOString());
|
||||||
@ -45,7 +45,7 @@ const DateFieldInputWithContext = ({
|
|||||||
fieldDefinition={{
|
fieldDefinition={{
|
||||||
fieldMetadataId: 'date',
|
fieldMetadataId: 'date',
|
||||||
label: 'Date',
|
label: 'Date',
|
||||||
type: 'DATE',
|
type: 'DATE_TIME',
|
||||||
iconName: 'IconCalendarEvent',
|
iconName: 'IconCalendarEvent',
|
||||||
metadata: {
|
metadata: {
|
||||||
fieldName: 'Date',
|
fieldName: 'Date',
|
||||||
|
|||||||
@ -10,7 +10,7 @@ import { FieldMetadata } from '../../types/FieldMetadata';
|
|||||||
import { isFieldBoolean } from '../../types/guards/isFieldBoolean';
|
import { isFieldBoolean } from '../../types/guards/isFieldBoolean';
|
||||||
import { isFieldCurrency } from '../../types/guards/isFieldCurrency';
|
import { isFieldCurrency } from '../../types/guards/isFieldCurrency';
|
||||||
import { isFieldCurrencyValue } from '../../types/guards/isFieldCurrencyValue';
|
import { isFieldCurrencyValue } from '../../types/guards/isFieldCurrencyValue';
|
||||||
import { isFieldDate } from '../../types/guards/isFieldDate';
|
import { isFieldDateTime } from '../../types/guards/isFieldDateTime';
|
||||||
import { isFieldEmail } from '../../types/guards/isFieldEmail';
|
import { isFieldEmail } from '../../types/guards/isFieldEmail';
|
||||||
import { isFieldLink } from '../../types/guards/isFieldLink';
|
import { isFieldLink } from '../../types/guards/isFieldLink';
|
||||||
import { isFieldLinkValue } from '../../types/guards/isFieldLinkValue';
|
import { isFieldLinkValue } from '../../types/guards/isFieldLinkValue';
|
||||||
@ -39,7 +39,7 @@ export const isEntityFieldEmptyFamilySelector = selectorFamily({
|
|||||||
if (
|
if (
|
||||||
isFieldUuid(fieldDefinition) ||
|
isFieldUuid(fieldDefinition) ||
|
||||||
isFieldText(fieldDefinition) ||
|
isFieldText(fieldDefinition) ||
|
||||||
isFieldDate(fieldDefinition) ||
|
isFieldDateTime(fieldDefinition) ||
|
||||||
isFieldNumber(fieldDefinition) ||
|
isFieldNumber(fieldDefinition) ||
|
||||||
isFieldProbability(fieldDefinition) ||
|
isFieldProbability(fieldDefinition) ||
|
||||||
isFieldEmail(fieldDefinition) ||
|
isFieldEmail(fieldDefinition) ||
|
||||||
|
|||||||
@ -14,7 +14,7 @@ export type FieldTextMetadata = {
|
|||||||
fieldName: string;
|
fieldName: string;
|
||||||
};
|
};
|
||||||
|
|
||||||
export type FieldDateMetadata = {
|
export type FieldDateTimeMetadata = {
|
||||||
placeHolder: string;
|
placeHolder: string;
|
||||||
fieldName: string;
|
fieldName: string;
|
||||||
};
|
};
|
||||||
@ -74,7 +74,7 @@ export type FieldRelationMetadata = {
|
|||||||
export type FieldMetadata =
|
export type FieldMetadata =
|
||||||
| FieldBooleanMetadata
|
| FieldBooleanMetadata
|
||||||
| FieldNumberMetadata
|
| FieldNumberMetadata
|
||||||
| FieldDateMetadata
|
| FieldDateTimeMetadata
|
||||||
| FieldTextMetadata
|
| FieldTextMetadata
|
||||||
| FieldUuidMetadata
|
| FieldUuidMetadata
|
||||||
| FieldCurrencyMetadata
|
| FieldCurrencyMetadata
|
||||||
@ -87,7 +87,7 @@ export type FieldMetadata =
|
|||||||
|
|
||||||
export type FieldTextValue = string;
|
export type FieldTextValue = string;
|
||||||
export type FieldUUidValue = string;
|
export type FieldUUidValue = string;
|
||||||
export type FieldDateValue = string | null;
|
export type FieldDateTimeValue = string | null;
|
||||||
export type FieldNumberValue = number | null;
|
export type FieldNumberValue = number | null;
|
||||||
export type FieldBooleanValue = boolean;
|
export type FieldBooleanValue = boolean;
|
||||||
|
|
||||||
|
|||||||
@ -4,7 +4,7 @@ export type FieldType =
|
|||||||
| 'TEXT'
|
| 'TEXT'
|
||||||
| 'RELATION'
|
| 'RELATION'
|
||||||
| 'CHIP'
|
| 'CHIP'
|
||||||
| 'DATE'
|
| 'DATE_TIME'
|
||||||
| 'DOUBLE_TEXT_CHIP'
|
| 'DOUBLE_TEXT_CHIP'
|
||||||
| 'DOUBLE_TEXT'
|
| 'DOUBLE_TEXT'
|
||||||
| 'EMAIL'
|
| 'EMAIL'
|
||||||
|
|||||||
@ -2,7 +2,7 @@ import { FieldDefinition } from '../FieldDefinition';
|
|||||||
import {
|
import {
|
||||||
FieldBooleanMetadata,
|
FieldBooleanMetadata,
|
||||||
FieldCurrencyMetadata,
|
FieldCurrencyMetadata,
|
||||||
FieldDateMetadata,
|
FieldDateTimeMetadata,
|
||||||
FieldEmailMetadata,
|
FieldEmailMetadata,
|
||||||
FieldFullNameMetadata,
|
FieldFullNameMetadata,
|
||||||
FieldLinkMetadata,
|
FieldLinkMetadata,
|
||||||
@ -24,8 +24,8 @@ type AssertFieldMetadataFunction = <
|
|||||||
? FieldCurrencyMetadata
|
? FieldCurrencyMetadata
|
||||||
: E extends 'FULL_NAME'
|
: E extends 'FULL_NAME'
|
||||||
? FieldFullNameMetadata
|
? FieldFullNameMetadata
|
||||||
: E extends 'DATE'
|
: E extends 'DATE_TIME'
|
||||||
? FieldDateMetadata
|
? FieldDateTimeMetadata
|
||||||
: E extends 'EMAIL'
|
: E extends 'EMAIL'
|
||||||
? FieldEmailMetadata
|
? FieldEmailMetadata
|
||||||
: E extends 'LINK'
|
: E extends 'LINK'
|
||||||
|
|||||||
@ -1,6 +0,0 @@
|
|||||||
import { FieldDefinition } from '../FieldDefinition';
|
|
||||||
import { FieldDateMetadata, FieldMetadata } from '../FieldMetadata';
|
|
||||||
|
|
||||||
export const isFieldDate = (
|
|
||||||
field: Pick<FieldDefinition<FieldMetadata>, 'type'>,
|
|
||||||
): field is FieldDefinition<FieldDateMetadata> => field.type === 'DATE';
|
|
||||||
@ -0,0 +1,7 @@
|
|||||||
|
import { FieldDefinition } from '../FieldDefinition';
|
||||||
|
import { FieldDateTimeMetadata, FieldMetadata } from '../FieldMetadata';
|
||||||
|
|
||||||
|
export const isFieldDateTime = (
|
||||||
|
field: Pick<FieldDefinition<FieldMetadata>, 'type'>,
|
||||||
|
): field is FieldDefinition<FieldDateTimeMetadata> =>
|
||||||
|
field.type === 'DATE_TIME';
|
||||||
@ -0,0 +1,9 @@
|
|||||||
|
import { isString } from '@sniptt/guards';
|
||||||
|
|
||||||
|
import { FieldDateTimeValue } from '../FieldMetadata';
|
||||||
|
|
||||||
|
// TODO: add zod
|
||||||
|
export const isFieldDateTimeValue = (
|
||||||
|
fieldValue: unknown,
|
||||||
|
): fieldValue is FieldDateTimeValue =>
|
||||||
|
isString(fieldValue) && !isNaN(Date.parse(fieldValue));
|
||||||
@ -1,20 +0,0 @@
|
|||||||
import { isNull, isString } from '@sniptt/guards';
|
|
||||||
|
|
||||||
import { formatToHumanReadableDate } from '~/utils';
|
|
||||||
|
|
||||||
import { FieldDateValue } from '../FieldMetadata';
|
|
||||||
|
|
||||||
// TODO: add zod
|
|
||||||
export const isFieldDateValue = (
|
|
||||||
fieldValue: unknown,
|
|
||||||
): fieldValue is FieldDateValue => {
|
|
||||||
try {
|
|
||||||
if (isNull(fieldValue)) return true;
|
|
||||||
if (isString(fieldValue)) {
|
|
||||||
formatToHumanReadableDate(fieldValue);
|
|
||||||
return true;
|
|
||||||
}
|
|
||||||
} catch {}
|
|
||||||
|
|
||||||
return false;
|
|
||||||
};
|
|
||||||
@ -36,7 +36,7 @@ export const MultipleFiltersDropdownContent = () => {
|
|||||||
{filterDefinitionUsedInDropdown.type === 'NUMBER' && (
|
{filterDefinitionUsedInDropdown.type === 'NUMBER' && (
|
||||||
<ObjectFilterDropdownNumberSearchInput />
|
<ObjectFilterDropdownNumberSearchInput />
|
||||||
)}
|
)}
|
||||||
{filterDefinitionUsedInDropdown.type === 'DATE' && (
|
{filterDefinitionUsedInDropdown.type === 'DATE_TIME' && (
|
||||||
<ObjectFilterDropdownDateSearchInput />
|
<ObjectFilterDropdownDateSearchInput />
|
||||||
)}
|
)}
|
||||||
{filterDefinitionUsedInDropdown.type === 'ENTITY' && (
|
{filterDefinitionUsedInDropdown.type === 'ENTITY' && (
|
||||||
|
|||||||
@ -1 +1 @@
|
|||||||
export type FilterType = 'TEXT' | 'DATE' | 'ENTITY' | 'NUMBER';
|
export type FilterType = 'TEXT' | 'DATE_TIME' | 'ENTITY' | 'NUMBER';
|
||||||
|
|||||||
@ -9,7 +9,7 @@ export const getOperandsForFilterType = (
|
|||||||
case 'TEXT':
|
case 'TEXT':
|
||||||
return [ViewFilterOperand.Contains, ViewFilterOperand.DoesNotContain];
|
return [ViewFilterOperand.Contains, ViewFilterOperand.DoesNotContain];
|
||||||
case 'NUMBER':
|
case 'NUMBER':
|
||||||
case 'DATE':
|
case 'DATE_TIME':
|
||||||
return [ViewFilterOperand.GreaterThan, ViewFilterOperand.LessThan];
|
return [ViewFilterOperand.GreaterThan, ViewFilterOperand.LessThan];
|
||||||
case 'ENTITY':
|
case 'ENTITY':
|
||||||
return [ViewFilterOperand.Is, ViewFilterOperand.IsNot];
|
return [ViewFilterOperand.Is, ViewFilterOperand.IsNot];
|
||||||
|
|||||||
@ -62,7 +62,7 @@ export const turnFiltersIntoWhereClauseV2 = (
|
|||||||
`Unknown operand ${filter.operand} for ${filter.definition.type} filter`,
|
`Unknown operand ${filter.operand} for ${filter.definition.type} filter`,
|
||||||
);
|
);
|
||||||
}
|
}
|
||||||
case 'DATE':
|
case 'DATE_TIME':
|
||||||
switch (filter.operand) {
|
switch (filter.operand) {
|
||||||
case ViewFilterOperand.GreaterThan:
|
case ViewFilterOperand.GreaterThan:
|
||||||
whereClause[correspondingField.name] = {
|
whereClause[correspondingField.name] = {
|
||||||
|
|||||||
@ -13,7 +13,7 @@ export const opportunityBoardFilterDefinitions: FilterDefinitionByEntity<Opportu
|
|||||||
fieldMetadataId: 'closeDate',
|
fieldMetadataId: 'closeDate',
|
||||||
label: 'Close date',
|
label: 'Close date',
|
||||||
iconName: 'IconCalendarEvent',
|
iconName: 'IconCalendarEvent',
|
||||||
type: 'DATE',
|
type: 'DATE_TIME',
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
fieldMetadataId: 'companyId',
|
fieldMetadataId: 'companyId',
|
||||||
|
|||||||
@ -1,6 +1,7 @@
|
|||||||
import { Test, TestingModule } from '@nestjs/testing';
|
import { Test, TestingModule } from '@nestjs/testing';
|
||||||
|
import { getRepositoryToken } from '@nestjs/typeorm';
|
||||||
|
|
||||||
import { WorkspaceService } from 'src/core/workspace/services/workspace.service';
|
import { Workspace } from 'src/core/workspace/workspace.entity';
|
||||||
|
|
||||||
import { AuthResolver } from './auth.resolver';
|
import { AuthResolver } from './auth.resolver';
|
||||||
|
|
||||||
@ -15,7 +16,7 @@ describe('AuthResolver', () => {
|
|||||||
providers: [
|
providers: [
|
||||||
AuthResolver,
|
AuthResolver,
|
||||||
{
|
{
|
||||||
provide: WorkspaceService,
|
provide: getRepositoryToken(Workspace),
|
||||||
useValue: {},
|
useValue: {},
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
|
|||||||
@ -1,7 +1,11 @@
|
|||||||
import { Test, TestingModule } from '@nestjs/testing';
|
import { Test, TestingModule } from '@nestjs/testing';
|
||||||
|
import { getRepositoryToken } from '@nestjs/typeorm';
|
||||||
|
|
||||||
import { UserService } from 'src/core/user/user.service';
|
import { UserService } from 'src/core/user/services/user.service';
|
||||||
import { WorkspaceService } from 'src/core/workspace/services/workspace.service';
|
import { WorkspaceManagerService } from 'src/workspace/workspace-manager/workspace-manager.service';
|
||||||
|
import { FileUploadService } from 'src/core/file/services/file-upload.service';
|
||||||
|
import { Workspace } from 'src/core/workspace/workspace.entity';
|
||||||
|
import { User } from 'src/core/user/user.entity';
|
||||||
|
|
||||||
import { AuthService } from './auth.service';
|
import { AuthService } from './auth.service';
|
||||||
import { TokenService } from './token.service';
|
import { TokenService } from './token.service';
|
||||||
@ -22,7 +26,19 @@ describe('AuthService', () => {
|
|||||||
useValue: {},
|
useValue: {},
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
provide: WorkspaceService,
|
provide: WorkspaceManagerService,
|
||||||
|
useValue: {},
|
||||||
|
},
|
||||||
|
{
|
||||||
|
provide: FileUploadService,
|
||||||
|
useValue: {},
|
||||||
|
},
|
||||||
|
{
|
||||||
|
provide: getRepositoryToken(Workspace),
|
||||||
|
useValue: {},
|
||||||
|
},
|
||||||
|
{
|
||||||
|
provide: getRepositoryToken(User),
|
||||||
useValue: {},
|
useValue: {},
|
||||||
},
|
},
|
||||||
],
|
],
|
||||||
|
|||||||
@ -1,7 +1,10 @@
|
|||||||
import { Test, TestingModule } from '@nestjs/testing';
|
import { Test, TestingModule } from '@nestjs/testing';
|
||||||
import { JwtService } from '@nestjs/jwt';
|
import { JwtService } from '@nestjs/jwt';
|
||||||
|
import { getRepositoryToken } from '@nestjs/typeorm';
|
||||||
|
|
||||||
import { EnvironmentService } from 'src/integrations/environment/environment.service';
|
import { EnvironmentService } from 'src/integrations/environment/environment.service';
|
||||||
|
import { RefreshToken } from 'src/core/refresh-token/refresh-token.entity';
|
||||||
|
import { User } from 'src/core/user/user.entity';
|
||||||
|
|
||||||
import { TokenService } from './token.service';
|
import { TokenService } from './token.service';
|
||||||
|
|
||||||
@ -20,6 +23,14 @@ describe('TokenService', () => {
|
|||||||
provide: EnvironmentService,
|
provide: EnvironmentService,
|
||||||
useValue: {},
|
useValue: {},
|
||||||
},
|
},
|
||||||
|
{
|
||||||
|
provide: getRepositoryToken(User),
|
||||||
|
useValue: {},
|
||||||
|
},
|
||||||
|
{
|
||||||
|
provide: getRepositoryToken(RefreshToken),
|
||||||
|
useValue: {},
|
||||||
|
},
|
||||||
],
|
],
|
||||||
}).compile();
|
}).compile();
|
||||||
|
|
||||||
|
|||||||
@ -2,6 +2,8 @@ import { Test, TestingModule } from '@nestjs/testing';
|
|||||||
import { getRepositoryToken } from '@nestjs/typeorm';
|
import { getRepositoryToken } from '@nestjs/typeorm';
|
||||||
|
|
||||||
import { User } from 'src/core/user/user.entity';
|
import { User } from 'src/core/user/user.entity';
|
||||||
|
import { DataSourceService } from 'src/metadata/data-source/data-source.service';
|
||||||
|
import { TypeORMService } from 'src/database/typeorm/typeorm.service';
|
||||||
|
|
||||||
import { UserService } from './user.service';
|
import { UserService } from './user.service';
|
||||||
|
|
||||||
@ -16,6 +18,14 @@ describe('UserService', () => {
|
|||||||
provide: getRepositoryToken(User),
|
provide: getRepositoryToken(User),
|
||||||
useValue: {},
|
useValue: {},
|
||||||
},
|
},
|
||||||
|
{
|
||||||
|
provide: DataSourceService,
|
||||||
|
useValue: {},
|
||||||
|
},
|
||||||
|
{
|
||||||
|
provide: TypeORMService,
|
||||||
|
useValue: {},
|
||||||
|
},
|
||||||
],
|
],
|
||||||
}).compile();
|
}).compile();
|
||||||
|
|
||||||
|
|||||||
@ -2,6 +2,7 @@ import { Test, TestingModule } from '@nestjs/testing';
|
|||||||
import { getRepositoryToken } from '@nestjs/typeorm';
|
import { getRepositoryToken } from '@nestjs/typeorm';
|
||||||
|
|
||||||
import { Workspace } from 'src/core/workspace/workspace.entity';
|
import { Workspace } from 'src/core/workspace/workspace.entity';
|
||||||
|
import { WorkspaceManagerService } from 'src/workspace/workspace-manager/workspace-manager.service';
|
||||||
|
|
||||||
import { WorkspaceService } from './workspace.service';
|
import { WorkspaceService } from './workspace.service';
|
||||||
|
|
||||||
@ -16,6 +17,10 @@ describe('WorkspaceService', () => {
|
|||||||
provide: getRepositoryToken(Workspace),
|
provide: getRepositoryToken(Workspace),
|
||||||
useValue: {},
|
useValue: {},
|
||||||
},
|
},
|
||||||
|
{
|
||||||
|
provide: WorkspaceManagerService,
|
||||||
|
useValue: {},
|
||||||
|
},
|
||||||
],
|
],
|
||||||
}).compile();
|
}).compile();
|
||||||
|
|
||||||
|
|||||||
@ -69,7 +69,7 @@ export const seedActivityTargetFieldMetadata = async (
|
|||||||
isCustom: false,
|
isCustom: false,
|
||||||
workspaceId: SeedWorkspaceId,
|
workspaceId: SeedWorkspaceId,
|
||||||
isActive: true,
|
isActive: true,
|
||||||
type: FieldMetadataType.DATE,
|
type: FieldMetadataType.DATE_TIME,
|
||||||
name: 'createdAt',
|
name: 'createdAt',
|
||||||
label: 'Creation date',
|
label: 'Creation date',
|
||||||
targetColumnMap: {
|
targetColumnMap: {
|
||||||
@ -87,7 +87,7 @@ export const seedActivityTargetFieldMetadata = async (
|
|||||||
isCustom: false,
|
isCustom: false,
|
||||||
workspaceId: SeedWorkspaceId,
|
workspaceId: SeedWorkspaceId,
|
||||||
isActive: true,
|
isActive: true,
|
||||||
type: FieldMetadataType.DATE,
|
type: FieldMetadataType.DATE_TIME,
|
||||||
name: 'updatedAt',
|
name: 'updatedAt',
|
||||||
label: 'Update date',
|
label: 'Update date',
|
||||||
targetColumnMap: {
|
targetColumnMap: {
|
||||||
|
|||||||
@ -77,7 +77,7 @@ export const seedActivityFieldMetadata = async (
|
|||||||
isCustom: false,
|
isCustom: false,
|
||||||
workspaceId: SeedWorkspaceId,
|
workspaceId: SeedWorkspaceId,
|
||||||
isActive: true,
|
isActive: true,
|
||||||
type: FieldMetadataType.DATE,
|
type: FieldMetadataType.DATE_TIME,
|
||||||
name: 'createdAt',
|
name: 'createdAt',
|
||||||
label: 'Creation date',
|
label: 'Creation date',
|
||||||
targetColumnMap: {
|
targetColumnMap: {
|
||||||
@ -95,7 +95,7 @@ export const seedActivityFieldMetadata = async (
|
|||||||
isCustom: false,
|
isCustom: false,
|
||||||
workspaceId: SeedWorkspaceId,
|
workspaceId: SeedWorkspaceId,
|
||||||
isActive: true,
|
isActive: true,
|
||||||
type: FieldMetadataType.DATE,
|
type: FieldMetadataType.DATE_TIME,
|
||||||
name: 'updatedAt',
|
name: 'updatedAt',
|
||||||
label: 'Update date',
|
label: 'Update date',
|
||||||
targetColumnMap: {
|
targetColumnMap: {
|
||||||
@ -170,7 +170,7 @@ export const seedActivityFieldMetadata = async (
|
|||||||
isCustom: false,
|
isCustom: false,
|
||||||
workspaceId: SeedWorkspaceId,
|
workspaceId: SeedWorkspaceId,
|
||||||
isActive: true,
|
isActive: true,
|
||||||
type: FieldMetadataType.DATE,
|
type: FieldMetadataType.DATE_TIME,
|
||||||
name: 'reminderAt',
|
name: 'reminderAt',
|
||||||
label: 'Reminder Date',
|
label: 'Reminder Date',
|
||||||
targetColumnMap: {
|
targetColumnMap: {
|
||||||
@ -188,7 +188,7 @@ export const seedActivityFieldMetadata = async (
|
|||||||
isCustom: false,
|
isCustom: false,
|
||||||
workspaceId: SeedWorkspaceId,
|
workspaceId: SeedWorkspaceId,
|
||||||
isActive: true,
|
isActive: true,
|
||||||
type: FieldMetadataType.DATE,
|
type: FieldMetadataType.DATE_TIME,
|
||||||
name: 'dueAt',
|
name: 'dueAt',
|
||||||
label: 'Due Date',
|
label: 'Due Date',
|
||||||
targetColumnMap: {
|
targetColumnMap: {
|
||||||
@ -206,7 +206,7 @@ export const seedActivityFieldMetadata = async (
|
|||||||
isCustom: false,
|
isCustom: false,
|
||||||
workspaceId: SeedWorkspaceId,
|
workspaceId: SeedWorkspaceId,
|
||||||
isActive: true,
|
isActive: true,
|
||||||
type: FieldMetadataType.DATE,
|
type: FieldMetadataType.DATE_TIME,
|
||||||
name: 'completedAt',
|
name: 'completedAt',
|
||||||
label: 'Completion Date',
|
label: 'Completion Date',
|
||||||
targetColumnMap: {
|
targetColumnMap: {
|
||||||
|
|||||||
@ -66,7 +66,7 @@ export const seedApiKeyFieldMetadata = async (
|
|||||||
isCustom: false,
|
isCustom: false,
|
||||||
workspaceId: SeedWorkspaceId,
|
workspaceId: SeedWorkspaceId,
|
||||||
isActive: true,
|
isActive: true,
|
||||||
type: FieldMetadataType.DATE,
|
type: FieldMetadataType.DATE_TIME,
|
||||||
name: 'createdAt',
|
name: 'createdAt',
|
||||||
label: 'Creation date',
|
label: 'Creation date',
|
||||||
targetColumnMap: {
|
targetColumnMap: {
|
||||||
@ -84,7 +84,7 @@ export const seedApiKeyFieldMetadata = async (
|
|||||||
isCustom: false,
|
isCustom: false,
|
||||||
workspaceId: SeedWorkspaceId,
|
workspaceId: SeedWorkspaceId,
|
||||||
isActive: true,
|
isActive: true,
|
||||||
type: FieldMetadataType.DATE,
|
type: FieldMetadataType.DATE_TIME,
|
||||||
name: 'updatedAt',
|
name: 'updatedAt',
|
||||||
label: 'Update date',
|
label: 'Update date',
|
||||||
targetColumnMap: {
|
targetColumnMap: {
|
||||||
@ -121,7 +121,7 @@ export const seedApiKeyFieldMetadata = async (
|
|||||||
isCustom: false,
|
isCustom: false,
|
||||||
workspaceId: SeedWorkspaceId,
|
workspaceId: SeedWorkspaceId,
|
||||||
isActive: true,
|
isActive: true,
|
||||||
type: FieldMetadataType.DATE,
|
type: FieldMetadataType.DATE_TIME,
|
||||||
name: 'expiresAt',
|
name: 'expiresAt',
|
||||||
label: 'Expiration date',
|
label: 'Expiration date',
|
||||||
targetColumnMap: {
|
targetColumnMap: {
|
||||||
@ -139,7 +139,7 @@ export const seedApiKeyFieldMetadata = async (
|
|||||||
isCustom: false,
|
isCustom: false,
|
||||||
workspaceId: SeedWorkspaceId,
|
workspaceId: SeedWorkspaceId,
|
||||||
isActive: true,
|
isActive: true,
|
||||||
type: FieldMetadataType.DATE,
|
type: FieldMetadataType.DATE_TIME,
|
||||||
name: 'revokedAt',
|
name: 'revokedAt',
|
||||||
label: 'Revocation date',
|
label: 'Revocation date',
|
||||||
targetColumnMap: {
|
targetColumnMap: {
|
||||||
|
|||||||
@ -75,7 +75,7 @@ export const seedAttachmentFieldMetadata = async (
|
|||||||
isCustom: false,
|
isCustom: false,
|
||||||
workspaceId: SeedWorkspaceId,
|
workspaceId: SeedWorkspaceId,
|
||||||
isActive: true,
|
isActive: true,
|
||||||
type: FieldMetadataType.DATE,
|
type: FieldMetadataType.DATE_TIME,
|
||||||
name: 'createdAt',
|
name: 'createdAt',
|
||||||
label: 'Creation date',
|
label: 'Creation date',
|
||||||
targetColumnMap: {
|
targetColumnMap: {
|
||||||
@ -93,7 +93,7 @@ export const seedAttachmentFieldMetadata = async (
|
|||||||
isCustom: false,
|
isCustom: false,
|
||||||
workspaceId: SeedWorkspaceId,
|
workspaceId: SeedWorkspaceId,
|
||||||
isActive: true,
|
isActive: true,
|
||||||
type: FieldMetadataType.DATE,
|
type: FieldMetadataType.DATE_TIME,
|
||||||
name: 'updatedAt',
|
name: 'updatedAt',
|
||||||
label: 'Update date',
|
label: 'Update date',
|
||||||
targetColumnMap: {
|
targetColumnMap: {
|
||||||
|
|||||||
@ -68,7 +68,7 @@ export const seedCommentFieldMetadata = async (
|
|||||||
isCustom: false,
|
isCustom: false,
|
||||||
workspaceId: SeedWorkspaceId,
|
workspaceId: SeedWorkspaceId,
|
||||||
isActive: true,
|
isActive: true,
|
||||||
type: FieldMetadataType.DATE,
|
type: FieldMetadataType.DATE_TIME,
|
||||||
name: 'createdAt',
|
name: 'createdAt',
|
||||||
label: 'Creation date',
|
label: 'Creation date',
|
||||||
targetColumnMap: {
|
targetColumnMap: {
|
||||||
@ -86,7 +86,7 @@ export const seedCommentFieldMetadata = async (
|
|||||||
isCustom: false,
|
isCustom: false,
|
||||||
workspaceId: SeedWorkspaceId,
|
workspaceId: SeedWorkspaceId,
|
||||||
isActive: true,
|
isActive: true,
|
||||||
type: FieldMetadataType.DATE,
|
type: FieldMetadataType.DATE_TIME,
|
||||||
name: 'updatedAt',
|
name: 'updatedAt',
|
||||||
label: 'Update date',
|
label: 'Update date',
|
||||||
targetColumnMap: {
|
targetColumnMap: {
|
||||||
|
|||||||
@ -80,7 +80,7 @@ export const seedCompanyFieldMetadata = async (
|
|||||||
isCustom: false,
|
isCustom: false,
|
||||||
workspaceId: SeedWorkspaceId,
|
workspaceId: SeedWorkspaceId,
|
||||||
isActive: true,
|
isActive: true,
|
||||||
type: FieldMetadataType.DATE,
|
type: FieldMetadataType.DATE_TIME,
|
||||||
name: 'createdAt',
|
name: 'createdAt',
|
||||||
label: 'Creation date',
|
label: 'Creation date',
|
||||||
targetColumnMap: {
|
targetColumnMap: {
|
||||||
@ -98,7 +98,7 @@ export const seedCompanyFieldMetadata = async (
|
|||||||
isCustom: false,
|
isCustom: false,
|
||||||
workspaceId: SeedWorkspaceId,
|
workspaceId: SeedWorkspaceId,
|
||||||
isActive: true,
|
isActive: true,
|
||||||
type: FieldMetadataType.DATE,
|
type: FieldMetadataType.DATE_TIME,
|
||||||
name: 'updatedAt',
|
name: 'updatedAt',
|
||||||
label: 'Update date',
|
label: 'Update date',
|
||||||
targetColumnMap: {
|
targetColumnMap: {
|
||||||
|
|||||||
@ -71,7 +71,7 @@ export const seedFavoriteFieldMetadata = async (
|
|||||||
isCustom: false,
|
isCustom: false,
|
||||||
workspaceId: SeedWorkspaceId,
|
workspaceId: SeedWorkspaceId,
|
||||||
isActive: true,
|
isActive: true,
|
||||||
type: FieldMetadataType.DATE,
|
type: FieldMetadataType.DATE_TIME,
|
||||||
name: 'createdAt',
|
name: 'createdAt',
|
||||||
label: 'Creation date',
|
label: 'Creation date',
|
||||||
targetColumnMap: {
|
targetColumnMap: {
|
||||||
@ -89,7 +89,7 @@ export const seedFavoriteFieldMetadata = async (
|
|||||||
isCustom: false,
|
isCustom: false,
|
||||||
workspaceId: SeedWorkspaceId,
|
workspaceId: SeedWorkspaceId,
|
||||||
isActive: true,
|
isActive: true,
|
||||||
type: FieldMetadataType.DATE,
|
type: FieldMetadataType.DATE_TIME,
|
||||||
name: 'updatedAt',
|
name: 'updatedAt',
|
||||||
label: 'Update date',
|
label: 'Update date',
|
||||||
targetColumnMap: {
|
targetColumnMap: {
|
||||||
|
|||||||
@ -75,7 +75,7 @@ export const seedOpportunityFieldMetadata = async (
|
|||||||
isCustom: false,
|
isCustom: false,
|
||||||
workspaceId: SeedWorkspaceId,
|
workspaceId: SeedWorkspaceId,
|
||||||
isActive: true,
|
isActive: true,
|
||||||
type: FieldMetadataType.DATE,
|
type: FieldMetadataType.DATE_TIME,
|
||||||
name: 'createdAt',
|
name: 'createdAt',
|
||||||
label: 'Creation date',
|
label: 'Creation date',
|
||||||
targetColumnMap: {
|
targetColumnMap: {
|
||||||
@ -93,7 +93,7 @@ export const seedOpportunityFieldMetadata = async (
|
|||||||
isCustom: false,
|
isCustom: false,
|
||||||
workspaceId: SeedWorkspaceId,
|
workspaceId: SeedWorkspaceId,
|
||||||
isActive: true,
|
isActive: true,
|
||||||
type: FieldMetadataType.DATE,
|
type: FieldMetadataType.DATE_TIME,
|
||||||
name: 'updatedAt',
|
name: 'updatedAt',
|
||||||
label: 'Update date',
|
label: 'Update date',
|
||||||
targetColumnMap: {
|
targetColumnMap: {
|
||||||
@ -131,7 +131,7 @@ export const seedOpportunityFieldMetadata = async (
|
|||||||
isCustom: false,
|
isCustom: false,
|
||||||
workspaceId: SeedWorkspaceId,
|
workspaceId: SeedWorkspaceId,
|
||||||
isActive: true,
|
isActive: true,
|
||||||
type: FieldMetadataType.DATE,
|
type: FieldMetadataType.DATE_TIME,
|
||||||
name: 'closeDate',
|
name: 'closeDate',
|
||||||
label: 'Close date',
|
label: 'Close date',
|
||||||
targetColumnMap: {
|
targetColumnMap: {
|
||||||
|
|||||||
@ -80,7 +80,7 @@ export const seedPersonFieldMetadata = async (
|
|||||||
isCustom: false,
|
isCustom: false,
|
||||||
workspaceId: SeedWorkspaceId,
|
workspaceId: SeedWorkspaceId,
|
||||||
isActive: true,
|
isActive: true,
|
||||||
type: FieldMetadataType.DATE,
|
type: FieldMetadataType.DATE_TIME,
|
||||||
name: 'createdAt',
|
name: 'createdAt',
|
||||||
label: 'Creation date',
|
label: 'Creation date',
|
||||||
targetColumnMap: {
|
targetColumnMap: {
|
||||||
@ -98,7 +98,7 @@ export const seedPersonFieldMetadata = async (
|
|||||||
isCustom: false,
|
isCustom: false,
|
||||||
workspaceId: SeedWorkspaceId,
|
workspaceId: SeedWorkspaceId,
|
||||||
isActive: true,
|
isActive: true,
|
||||||
type: FieldMetadataType.DATE,
|
type: FieldMetadataType.DATE_TIME,
|
||||||
name: 'updatedAt',
|
name: 'updatedAt',
|
||||||
label: 'Update date',
|
label: 'Update date',
|
||||||
targetColumnMap: {
|
targetColumnMap: {
|
||||||
|
|||||||
@ -67,7 +67,7 @@ export const seedPipelineStepFieldMetadata = async (
|
|||||||
isCustom: false,
|
isCustom: false,
|
||||||
workspaceId: SeedWorkspaceId,
|
workspaceId: SeedWorkspaceId,
|
||||||
isActive: true,
|
isActive: true,
|
||||||
type: FieldMetadataType.DATE,
|
type: FieldMetadataType.DATE_TIME,
|
||||||
name: 'createdAt',
|
name: 'createdAt',
|
||||||
label: 'Creation date',
|
label: 'Creation date',
|
||||||
targetColumnMap: {
|
targetColumnMap: {
|
||||||
@ -85,7 +85,7 @@ export const seedPipelineStepFieldMetadata = async (
|
|||||||
isCustom: false,
|
isCustom: false,
|
||||||
workspaceId: SeedWorkspaceId,
|
workspaceId: SeedWorkspaceId,
|
||||||
isActive: true,
|
isActive: true,
|
||||||
type: FieldMetadataType.DATE,
|
type: FieldMetadataType.DATE_TIME,
|
||||||
name: 'updatedAt',
|
name: 'updatedAt',
|
||||||
label: 'Update date',
|
label: 'Update date',
|
||||||
targetColumnMap: {
|
targetColumnMap: {
|
||||||
|
|||||||
@ -69,7 +69,7 @@ export const seedViewFieldFieldMetadata = async (
|
|||||||
isCustom: false,
|
isCustom: false,
|
||||||
workspaceId: SeedWorkspaceId,
|
workspaceId: SeedWorkspaceId,
|
||||||
isActive: true,
|
isActive: true,
|
||||||
type: FieldMetadataType.DATE,
|
type: FieldMetadataType.DATE_TIME,
|
||||||
name: 'createdAt',
|
name: 'createdAt',
|
||||||
label: 'Creation date',
|
label: 'Creation date',
|
||||||
targetColumnMap: {
|
targetColumnMap: {
|
||||||
@ -87,7 +87,7 @@ export const seedViewFieldFieldMetadata = async (
|
|||||||
isCustom: false,
|
isCustom: false,
|
||||||
workspaceId: SeedWorkspaceId,
|
workspaceId: SeedWorkspaceId,
|
||||||
isActive: true,
|
isActive: true,
|
||||||
type: FieldMetadataType.DATE,
|
type: FieldMetadataType.DATE_TIME,
|
||||||
name: 'updatedAt',
|
name: 'updatedAt',
|
||||||
label: 'Update date',
|
label: 'Update date',
|
||||||
targetColumnMap: {
|
targetColumnMap: {
|
||||||
|
|||||||
@ -69,7 +69,7 @@ export const seedViewFilterFieldMetadata = async (
|
|||||||
isCustom: false,
|
isCustom: false,
|
||||||
workspaceId: SeedWorkspaceId,
|
workspaceId: SeedWorkspaceId,
|
||||||
isActive: true,
|
isActive: true,
|
||||||
type: FieldMetadataType.DATE,
|
type: FieldMetadataType.DATE_TIME,
|
||||||
name: 'createdAt',
|
name: 'createdAt',
|
||||||
label: 'Creation date',
|
label: 'Creation date',
|
||||||
targetColumnMap: {
|
targetColumnMap: {
|
||||||
@ -87,7 +87,7 @@ export const seedViewFilterFieldMetadata = async (
|
|||||||
isCustom: false,
|
isCustom: false,
|
||||||
workspaceId: SeedWorkspaceId,
|
workspaceId: SeedWorkspaceId,
|
||||||
isActive: true,
|
isActive: true,
|
||||||
type: FieldMetadataType.DATE,
|
type: FieldMetadataType.DATE_TIME,
|
||||||
name: 'updatedAt',
|
name: 'updatedAt',
|
||||||
label: 'Update date',
|
label: 'Update date',
|
||||||
targetColumnMap: {
|
targetColumnMap: {
|
||||||
|
|||||||
@ -67,7 +67,7 @@ export const seedViewSortFieldMetadata = async (
|
|||||||
isCustom: false,
|
isCustom: false,
|
||||||
workspaceId: SeedWorkspaceId,
|
workspaceId: SeedWorkspaceId,
|
||||||
isActive: true,
|
isActive: true,
|
||||||
type: FieldMetadataType.DATE,
|
type: FieldMetadataType.DATE_TIME,
|
||||||
name: 'createdAt',
|
name: 'createdAt',
|
||||||
label: 'Creation date',
|
label: 'Creation date',
|
||||||
targetColumnMap: {
|
targetColumnMap: {
|
||||||
@ -85,7 +85,7 @@ export const seedViewSortFieldMetadata = async (
|
|||||||
isCustom: false,
|
isCustom: false,
|
||||||
workspaceId: SeedWorkspaceId,
|
workspaceId: SeedWorkspaceId,
|
||||||
isActive: true,
|
isActive: true,
|
||||||
type: FieldMetadataType.DATE,
|
type: FieldMetadataType.DATE_TIME,
|
||||||
name: 'updatedAt',
|
name: 'updatedAt',
|
||||||
label: 'Update date',
|
label: 'Update date',
|
||||||
targetColumnMap: {
|
targetColumnMap: {
|
||||||
|
|||||||
@ -69,7 +69,7 @@ export const seedViewFieldMetadata = async (
|
|||||||
isCustom: false,
|
isCustom: false,
|
||||||
workspaceId: SeedWorkspaceId,
|
workspaceId: SeedWorkspaceId,
|
||||||
isActive: true,
|
isActive: true,
|
||||||
type: FieldMetadataType.DATE,
|
type: FieldMetadataType.DATE_TIME,
|
||||||
name: 'createdAt',
|
name: 'createdAt',
|
||||||
label: 'Creation date',
|
label: 'Creation date',
|
||||||
targetColumnMap: {
|
targetColumnMap: {
|
||||||
@ -87,7 +87,7 @@ export const seedViewFieldMetadata = async (
|
|||||||
isCustom: false,
|
isCustom: false,
|
||||||
workspaceId: SeedWorkspaceId,
|
workspaceId: SeedWorkspaceId,
|
||||||
isActive: true,
|
isActive: true,
|
||||||
type: FieldMetadataType.DATE,
|
type: FieldMetadataType.DATE_TIME,
|
||||||
name: 'updatedAt',
|
name: 'updatedAt',
|
||||||
label: 'Update date',
|
label: 'Update date',
|
||||||
targetColumnMap: {
|
targetColumnMap: {
|
||||||
|
|||||||
@ -65,7 +65,7 @@ export const seedWebhookFieldMetadata = async (
|
|||||||
isCustom: false,
|
isCustom: false,
|
||||||
workspaceId: SeedWorkspaceId,
|
workspaceId: SeedWorkspaceId,
|
||||||
isActive: true,
|
isActive: true,
|
||||||
type: FieldMetadataType.DATE,
|
type: FieldMetadataType.DATE_TIME,
|
||||||
name: 'createdAt',
|
name: 'createdAt',
|
||||||
label: 'Creation date',
|
label: 'Creation date',
|
||||||
targetColumnMap: {
|
targetColumnMap: {
|
||||||
@ -83,7 +83,7 @@ export const seedWebhookFieldMetadata = async (
|
|||||||
isCustom: false,
|
isCustom: false,
|
||||||
workspaceId: SeedWorkspaceId,
|
workspaceId: SeedWorkspaceId,
|
||||||
isActive: true,
|
isActive: true,
|
||||||
type: FieldMetadataType.DATE,
|
type: FieldMetadataType.DATE_TIME,
|
||||||
name: 'updatedAt',
|
name: 'updatedAt',
|
||||||
label: 'Update date',
|
label: 'Update date',
|
||||||
targetColumnMap: {
|
targetColumnMap: {
|
||||||
|
|||||||
@ -76,7 +76,7 @@ export const seedWorkspaceMemberFieldMetadata = async (
|
|||||||
isCustom: false,
|
isCustom: false,
|
||||||
workspaceId: SeedWorkspaceId,
|
workspaceId: SeedWorkspaceId,
|
||||||
isActive: true,
|
isActive: true,
|
||||||
type: FieldMetadataType.DATE,
|
type: FieldMetadataType.DATE_TIME,
|
||||||
name: 'createdAt',
|
name: 'createdAt',
|
||||||
label: 'Creation date',
|
label: 'Creation date',
|
||||||
targetColumnMap: {
|
targetColumnMap: {
|
||||||
@ -94,7 +94,7 @@ export const seedWorkspaceMemberFieldMetadata = async (
|
|||||||
isCustom: false,
|
isCustom: false,
|
||||||
workspaceId: SeedWorkspaceId,
|
workspaceId: SeedWorkspaceId,
|
||||||
isActive: true,
|
isActive: true,
|
||||||
type: FieldMetadataType.DATE,
|
type: FieldMetadataType.DATE_TIME,
|
||||||
name: 'updatedAt',
|
name: 'updatedAt',
|
||||||
label: 'Update date',
|
label: 'Update date',
|
||||||
targetColumnMap: {
|
targetColumnMap: {
|
||||||
|
|||||||
@ -22,7 +22,7 @@ export enum FieldMetadataType {
|
|||||||
TEXT = 'TEXT',
|
TEXT = 'TEXT',
|
||||||
PHONE = 'PHONE',
|
PHONE = 'PHONE',
|
||||||
EMAIL = 'EMAIL',
|
EMAIL = 'EMAIL',
|
||||||
DATE = 'DATE',
|
DATE_TIME = 'DATE_TIME',
|
||||||
BOOLEAN = 'BOOLEAN',
|
BOOLEAN = 'BOOLEAN',
|
||||||
NUMBER = 'NUMBER',
|
NUMBER = 'NUMBER',
|
||||||
PROBABILITY = 'PROBABILITY',
|
PROBABILITY = 'PROBABILITY',
|
||||||
|
|||||||
@ -9,7 +9,7 @@ export interface FieldMetadataDefaultValueNumber {
|
|||||||
export interface FieldMetadataDefaultValueBoolean {
|
export interface FieldMetadataDefaultValueBoolean {
|
||||||
value: boolean;
|
value: boolean;
|
||||||
}
|
}
|
||||||
export interface FieldMetadataDefaultValueDate {
|
export interface FieldMetadataDefaultValueDateTime {
|
||||||
value: Date;
|
value: Date;
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -17,7 +17,7 @@ type FieldMetadataScalarDefaultValue =
|
|||||||
| FieldMetadataDefaultValueString
|
| FieldMetadataDefaultValueString
|
||||||
| FieldMetadataDefaultValueNumber
|
| FieldMetadataDefaultValueNumber
|
||||||
| FieldMetadataDefaultValueBoolean
|
| FieldMetadataDefaultValueBoolean
|
||||||
| FieldMetadataDefaultValueDate;
|
| FieldMetadataDefaultValueDateTime;
|
||||||
|
|
||||||
export type FieldMetadataDynamicDefaultValue =
|
export type FieldMetadataDynamicDefaultValue =
|
||||||
| { type: 'uuid' }
|
| { type: 'uuid' }
|
||||||
@ -50,7 +50,7 @@ type FieldMetadataDefaultValueMapping = {
|
|||||||
[FieldMetadataType.TEXT]: FieldMetadataDefaultValueString;
|
[FieldMetadataType.TEXT]: FieldMetadataDefaultValueString;
|
||||||
[FieldMetadataType.PHONE]: FieldMetadataDefaultValueString;
|
[FieldMetadataType.PHONE]: FieldMetadataDefaultValueString;
|
||||||
[FieldMetadataType.EMAIL]: FieldMetadataDefaultValueString;
|
[FieldMetadataType.EMAIL]: FieldMetadataDefaultValueString;
|
||||||
[FieldMetadataType.DATE]: FieldMetadataDefaultValueDate;
|
[FieldMetadataType.DATE_TIME]: FieldMetadataDefaultValueDateTime;
|
||||||
[FieldMetadataType.BOOLEAN]: FieldMetadataDefaultValueBoolean;
|
[FieldMetadataType.BOOLEAN]: FieldMetadataDefaultValueBoolean;
|
||||||
[FieldMetadataType.NUMBER]: FieldMetadataDefaultValueNumber;
|
[FieldMetadataType.NUMBER]: FieldMetadataDefaultValueNumber;
|
||||||
[FieldMetadataType.PROBABILITY]: FieldMetadataDefaultValueNumber;
|
[FieldMetadataType.PROBABILITY]: FieldMetadataDefaultValueNumber;
|
||||||
|
|||||||
@ -15,9 +15,12 @@ describe('validateDefaultValueBasedOnType', () => {
|
|||||||
).toBe(true);
|
).toBe(true);
|
||||||
});
|
});
|
||||||
|
|
||||||
it('should validate now dynamic default value for DATE type', () => {
|
it('should validate now dynamic default value for DATE_TIME type', () => {
|
||||||
expect(
|
expect(
|
||||||
validateDefaultValueBasedOnType({ type: 'now' }, FieldMetadataType.DATE),
|
validateDefaultValueBasedOnType(
|
||||||
|
{ type: 'now' },
|
||||||
|
FieldMetadataType.DATE_TIME,
|
||||||
|
),
|
||||||
).toBe(true);
|
).toBe(true);
|
||||||
});
|
});
|
||||||
|
|
||||||
|
|||||||
@ -72,9 +72,9 @@ export function convertFieldMetadataToColumnActions(
|
|||||||
},
|
},
|
||||||
];
|
];
|
||||||
}
|
}
|
||||||
case FieldMetadataType.DATE: {
|
case FieldMetadataType.DATE_TIME: {
|
||||||
const defaultValue =
|
const defaultValue =
|
||||||
fieldMetadata.defaultValue as FieldMetadataDefaultValue<FieldMetadataType.DATE>;
|
fieldMetadata.defaultValue as FieldMetadataDefaultValue<FieldMetadataType.DATE_TIME>;
|
||||||
|
|
||||||
return [
|
return [
|
||||||
{
|
{
|
||||||
|
|||||||
@ -25,7 +25,7 @@ export function generateTargetColumnMap(
|
|||||||
case FieldMetadataType.NUMBER:
|
case FieldMetadataType.NUMBER:
|
||||||
case FieldMetadataType.PROBABILITY:
|
case FieldMetadataType.PROBABILITY:
|
||||||
case FieldMetadataType.BOOLEAN:
|
case FieldMetadataType.BOOLEAN:
|
||||||
case FieldMetadataType.DATE:
|
case FieldMetadataType.DATE_TIME:
|
||||||
return {
|
return {
|
||||||
value: columnName,
|
value: columnName,
|
||||||
};
|
};
|
||||||
|
|||||||
@ -13,7 +13,7 @@ export const validateDefaultValueBasedOnType = (
|
|||||||
if (type === FieldMetadataType.UUID && defaultValue.type === 'uuid') {
|
if (type === FieldMetadataType.UUID && defaultValue.type === 'uuid') {
|
||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
if (type === FieldMetadataType.DATE && defaultValue.type === 'now') {
|
if (type === FieldMetadataType.DATE_TIME && defaultValue.type === 'now') {
|
||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -47,7 +47,7 @@ export const validateDefaultValueBasedOnType = (
|
|||||||
typeof defaultValue.value === 'boolean'
|
typeof defaultValue.value === 'boolean'
|
||||||
);
|
);
|
||||||
|
|
||||||
case FieldMetadataType.DATE:
|
case FieldMetadataType.DATE_TIME:
|
||||||
return (
|
return (
|
||||||
typeof defaultValue === 'object' &&
|
typeof defaultValue === 'object' &&
|
||||||
'value' in defaultValue &&
|
'value' in defaultValue &&
|
||||||
|
|||||||
@ -88,7 +88,7 @@ export class ObjectMetadataService extends TypeOrmQueryService<ObjectMetadataEnt
|
|||||||
defaultValue: { type: 'uuid' },
|
defaultValue: { type: 'uuid' },
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
type: FieldMetadataType.DATE,
|
type: FieldMetadataType.DATE_TIME,
|
||||||
name: 'createdAt',
|
name: 'createdAt',
|
||||||
label: 'Creation date',
|
label: 'Creation date',
|
||||||
targetColumnMap: {
|
targetColumnMap: {
|
||||||
@ -103,7 +103,7 @@ export class ObjectMetadataService extends TypeOrmQueryService<ObjectMetadataEnt
|
|||||||
defaultValue: { type: 'now' },
|
defaultValue: { type: 'now' },
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
type: FieldMetadataType.DATE,
|
type: FieldMetadataType.DATE_TIME,
|
||||||
name: 'updatedAt',
|
name: 'updatedAt',
|
||||||
label: 'Update date',
|
label: 'Update date',
|
||||||
targetColumnMap: {
|
targetColumnMap: {
|
||||||
|
|||||||
@ -54,7 +54,7 @@ const activityMetadata = {
|
|||||||
{
|
{
|
||||||
isCustom: false,
|
isCustom: false,
|
||||||
isActive: true,
|
isActive: true,
|
||||||
type: FieldMetadataType.DATE,
|
type: FieldMetadataType.DATE_TIME,
|
||||||
name: 'reminderAt',
|
name: 'reminderAt',
|
||||||
label: 'Reminder Date',
|
label: 'Reminder Date',
|
||||||
targetColumnMap: {
|
targetColumnMap: {
|
||||||
@ -67,7 +67,7 @@ const activityMetadata = {
|
|||||||
{
|
{
|
||||||
isCustom: false,
|
isCustom: false,
|
||||||
isActive: true,
|
isActive: true,
|
||||||
type: FieldMetadataType.DATE,
|
type: FieldMetadataType.DATE_TIME,
|
||||||
name: 'dueAt',
|
name: 'dueAt',
|
||||||
label: 'Due Date',
|
label: 'Due Date',
|
||||||
targetColumnMap: {
|
targetColumnMap: {
|
||||||
@ -80,7 +80,7 @@ const activityMetadata = {
|
|||||||
{
|
{
|
||||||
isCustom: false,
|
isCustom: false,
|
||||||
isActive: true,
|
isActive: true,
|
||||||
type: FieldMetadataType.DATE,
|
type: FieldMetadataType.DATE_TIME,
|
||||||
name: 'completedAt',
|
name: 'completedAt',
|
||||||
label: 'Completion Date',
|
label: 'Completion Date',
|
||||||
targetColumnMap: {
|
targetColumnMap: {
|
||||||
|
|||||||
@ -27,7 +27,7 @@ const apiKeyMetadata = {
|
|||||||
{
|
{
|
||||||
isCustom: false,
|
isCustom: false,
|
||||||
isActive: true,
|
isActive: true,
|
||||||
type: FieldMetadataType.DATE,
|
type: FieldMetadataType.DATE_TIME,
|
||||||
name: 'expiresAt',
|
name: 'expiresAt',
|
||||||
label: 'Expiration date',
|
label: 'Expiration date',
|
||||||
targetColumnMap: {
|
targetColumnMap: {
|
||||||
@ -40,7 +40,7 @@ const apiKeyMetadata = {
|
|||||||
{
|
{
|
||||||
isCustom: false,
|
isCustom: false,
|
||||||
isActive: true,
|
isActive: true,
|
||||||
type: FieldMetadataType.DATE,
|
type: FieldMetadataType.DATE_TIME,
|
||||||
name: 'revokedAt',
|
name: 'revokedAt',
|
||||||
label: 'Revocation date',
|
label: 'Revocation date',
|
||||||
targetColumnMap: {
|
targetColumnMap: {
|
||||||
|
|||||||
@ -28,7 +28,7 @@ const opportunityMetadata = {
|
|||||||
{
|
{
|
||||||
isCustom: false,
|
isCustom: false,
|
||||||
isActive: true,
|
isActive: true,
|
||||||
type: FieldMetadataType.DATE,
|
type: FieldMetadataType.DATE_TIME,
|
||||||
name: 'closeDate',
|
name: 'closeDate',
|
||||||
label: 'Close date',
|
label: 'Close date',
|
||||||
targetColumnMap: {
|
targetColumnMap: {
|
||||||
|
|||||||
@ -55,7 +55,7 @@ export const basicFieldsMetadata: Partial<FieldMetadataEntity>[] = [
|
|||||||
{
|
{
|
||||||
name: 'createdAt',
|
name: 'createdAt',
|
||||||
label: 'Creation date',
|
label: 'Creation date',
|
||||||
type: FieldMetadataType.DATE,
|
type: FieldMetadataType.DATE_TIME,
|
||||||
targetColumnMap: {
|
targetColumnMap: {
|
||||||
value: 'createdAt',
|
value: 'createdAt',
|
||||||
},
|
},
|
||||||
@ -68,7 +68,7 @@ export const basicFieldsMetadata: Partial<FieldMetadataEntity>[] = [
|
|||||||
{
|
{
|
||||||
name: 'updatedAt',
|
name: 'updatedAt',
|
||||||
label: 'Update date',
|
label: 'Update date',
|
||||||
type: FieldMetadataType.DATE,
|
type: FieldMetadataType.DATE_TIME,
|
||||||
targetColumnMap: {
|
targetColumnMap: {
|
||||||
value: 'updatedAt',
|
value: 'updatedAt',
|
||||||
},
|
},
|
||||||
|
|||||||
@ -58,7 +58,7 @@ export class TypeMapperService {
|
|||||||
[FieldMetadataType.TEXT, GraphQLString],
|
[FieldMetadataType.TEXT, GraphQLString],
|
||||||
[FieldMetadataType.PHONE, GraphQLString],
|
[FieldMetadataType.PHONE, GraphQLString],
|
||||||
[FieldMetadataType.EMAIL, GraphQLString],
|
[FieldMetadataType.EMAIL, GraphQLString],
|
||||||
[FieldMetadataType.DATE, dateScalar],
|
[FieldMetadataType.DATE_TIME, dateScalar],
|
||||||
[FieldMetadataType.BOOLEAN, GraphQLBoolean],
|
[FieldMetadataType.BOOLEAN, GraphQLBoolean],
|
||||||
[FieldMetadataType.NUMBER, numberScalar],
|
[FieldMetadataType.NUMBER, numberScalar],
|
||||||
[FieldMetadataType.PROBABILITY, GraphQLFloat],
|
[FieldMetadataType.PROBABILITY, GraphQLFloat],
|
||||||
@ -87,7 +87,7 @@ export class TypeMapperService {
|
|||||||
[FieldMetadataType.TEXT, StringFilterType],
|
[FieldMetadataType.TEXT, StringFilterType],
|
||||||
[FieldMetadataType.PHONE, StringFilterType],
|
[FieldMetadataType.PHONE, StringFilterType],
|
||||||
[FieldMetadataType.EMAIL, StringFilterType],
|
[FieldMetadataType.EMAIL, StringFilterType],
|
||||||
[FieldMetadataType.DATE, dateFilter],
|
[FieldMetadataType.DATE_TIME, dateFilter],
|
||||||
[FieldMetadataType.BOOLEAN, BooleanFilterType],
|
[FieldMetadataType.BOOLEAN, BooleanFilterType],
|
||||||
[FieldMetadataType.NUMBER, numberScalar],
|
[FieldMetadataType.NUMBER, numberScalar],
|
||||||
[FieldMetadataType.PROBABILITY, FloatFilterType],
|
[FieldMetadataType.PROBABILITY, FloatFilterType],
|
||||||
@ -106,7 +106,7 @@ export class TypeMapperService {
|
|||||||
[FieldMetadataType.TEXT, OrderByDirectionType],
|
[FieldMetadataType.TEXT, OrderByDirectionType],
|
||||||
[FieldMetadataType.PHONE, OrderByDirectionType],
|
[FieldMetadataType.PHONE, OrderByDirectionType],
|
||||||
[FieldMetadataType.EMAIL, OrderByDirectionType],
|
[FieldMetadataType.EMAIL, OrderByDirectionType],
|
||||||
[FieldMetadataType.DATE, OrderByDirectionType],
|
[FieldMetadataType.DATE_TIME, OrderByDirectionType],
|
||||||
[FieldMetadataType.BOOLEAN, OrderByDirectionType],
|
[FieldMetadataType.BOOLEAN, OrderByDirectionType],
|
||||||
[FieldMetadataType.NUMBER, OrderByDirectionType],
|
[FieldMetadataType.NUMBER, OrderByDirectionType],
|
||||||
[FieldMetadataType.PROBABILITY, OrderByDirectionType],
|
[FieldMetadataType.PROBABILITY, OrderByDirectionType],
|
||||||
|
|||||||
@ -4,7 +4,7 @@ import { getFieldMetadataType } from 'src/workspace/workspace-schema-builder/uti
|
|||||||
describe('getFieldMetadataType', () => {
|
describe('getFieldMetadataType', () => {
|
||||||
it.each([
|
it.each([
|
||||||
['uuid', FieldMetadataType.UUID],
|
['uuid', FieldMetadataType.UUID],
|
||||||
['timestamp', FieldMetadataType.DATE],
|
['timestamp', FieldMetadataType.DATE_TIME],
|
||||||
])(
|
])(
|
||||||
'should return correct FieldMetadataType for type %s',
|
'should return correct FieldMetadataType for type %s',
|
||||||
(type, expectedMetadataType) => {
|
(type, expectedMetadataType) => {
|
||||||
|
|||||||
@ -2,7 +2,7 @@ import { FieldMetadataType } from 'src/metadata/field-metadata/field-metadata.en
|
|||||||
|
|
||||||
const typeOrmTypeMapping = new Map<string, FieldMetadataType>([
|
const typeOrmTypeMapping = new Map<string, FieldMetadataType>([
|
||||||
['uuid', FieldMetadataType.UUID],
|
['uuid', FieldMetadataType.UUID],
|
||||||
['timestamp', FieldMetadataType.DATE],
|
['timestamp', FieldMetadataType.DATE_TIME],
|
||||||
// Add more types here if we need to support more than id, and createdAt/updatedAt/deletedAt
|
// Add more types here if we need to support more than id, and createdAt/updatedAt/deletedAt
|
||||||
]);
|
]);
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user