chore: extend root eslint config in twenty-server (#5101)

Reopening @thaisguigon work from
https://github.com/twentyhq/twenty/pull/4781

---------

Co-authored-by: Thaïs Guigon <guigon.thais@gmail.com>
This commit is contained in:
Weiko
2024-04-22 17:34:24 +02:00
committed by GitHub
parent b9a7eb5a98
commit fa4670b14d
66 changed files with 645 additions and 628 deletions

View File

@ -84,7 +84,7 @@ describe('FindDuplicatesQueryFactory', () => {
});
expect(query.trim()).toEqual(`query {
personCollection(filter: {or:[{nameFirstName:{eq:\"John\"},nameLastName:{eq:\"Doe\"}}]}) {
personCollection(filter: {or:[{nameFirstName:{eq:"John"},nameLastName:{eq:"Doe"}}]}) {
fieldsString
}
}`);
@ -171,7 +171,7 @@ describe('FindDuplicatesQueryFactory', () => {
);
expect(query.trim()).toEqual(`query {
personCollection(filter: {id:{neq:\"uuid\"},or:[{nameFirstName:{eq:\"Peter\"},nameLastName:{eq:\"Parker\"}}]}) {
personCollection(filter: {id:{neq:"uuid"},or:[{nameFirstName:{eq:"Peter"},nameLastName:{eq:"Parker"}}]}) {
fieldsString
}
}`);
@ -189,7 +189,7 @@ describe('FindDuplicatesQueryFactory', () => {
});
expect(query.trim()).toEqual(`query {
personCollection(filter: { id: { eq: \"uuid\" }}){
personCollection(filter: { id: { eq: "uuid" }}){
edges {
node {
__typename

View File

@ -10,7 +10,7 @@ import { ObjectMetadataInterface } from 'src/engine/metadata-modules/field-metad
import { computeObjectTargetTable } from 'src/engine/utils/compute-object-target-table.util';
import { stringifyWithoutKeyQuote } from 'src/engine/api/graphql/workspace-query-builder/utils/stringify-without-key-quote.util';
import { ArgsAliasFactory } from 'src/engine/api/graphql/workspace-query-builder/factories/args-alias.factory';
import { duplicateCriteriaCollection } from 'src/engine/api/graphql/workspace-resolver-builder/constants/duplicate-criteria.constants';
import { DUPLICATE_CRITERIA_COLLECTION } from 'src/engine/api/graphql/workspace-resolver-builder/constants/duplicate-criteria.constants';
import { settings } from 'src/engine/constants/settings';
import { FieldsStringFactory } from './fields-string.factory';
@ -145,7 +145,7 @@ export class FindDuplicatesQueryFactory {
private getApplicableDuplicateCriteriaCollection(
objectMetadataItem: ObjectMetadataInterface,
) {
return duplicateCriteriaCollection.filter(
return DUPLICATE_CRITERIA_COLLECTION.filter(
(duplicateCriteria) =>
duplicateCriteria.objectName === objectMetadataItem.nameSingular,
);

View File

@ -34,6 +34,7 @@ export const parseResult = (obj: any): any => {
const result: any = {};
for (const key in obj) {
// eslint-disable-next-line no-prototype-builtins
if (obj.hasOwnProperty(key)) {
if (typeof obj[key] === 'object' && obj[key] !== null) {
result[key] = parseResult(obj[key]);

View File

@ -6,7 +6,7 @@ import { RecordDuplicateCriteria } from 'src/engine/api/graphql/workspace-query-
* So if we need to reference a custom field, we should directly add the column name like `_customColumn`.
* If we need to terence a composite field, we should add all children of the composite like `nameFirstName` and `nameLastName`
*/
export const duplicateCriteriaCollection: RecordDuplicateCriteria[] = [
export const DUPLICATE_CRITERIA_COLLECTION: RecordDuplicateCriteria[] = [
{
objectName: 'company',
columnNames: ['domainName'],

View File

@ -24,6 +24,7 @@ export class ArgsFactory {
const fieldConfigMap: GraphQLFieldConfigArgumentMap = {};
for (const key in args) {
// eslint-disable-next-line no-prototype-builtins
if (!args.hasOwnProperty(key)) {
continue;
}

View File

@ -1,11 +1,11 @@
export * from './big-float-filter.input-type';
export * from './big-int-filter.input-type';
export * from './boolean-filter.input-type';
export * from './date-filter.input-type';
export * from './date-time-filter.input-type';
export * from './float-filter.input-type';
export * from './int-filter.input-type';
export * from './raw-json-filter.input-type';
export * from './string-filter.input-type';
export * from './time-filter.input-type';
export * from './uuid-filter.input-type';
export * from './boolean-filter.input-type';
export * from './raw-json-filter.input-type';

View File

@ -1,4 +1,4 @@
import { Injectable } from '@nestjs/common';
import { Injectable, Logger } from '@nestjs/common';
import { HttpService } from '@nestjs/axios';
import { Request } from 'express';
@ -12,6 +12,8 @@ import { CreateAnalyticsInput } from './dto/create-analytics.input';
@Injectable()
export class AnalyticsService {
private readonly logger = new Logger(AnalyticsService.name);
constructor(
private readonly environmentService: EnvironmentService,
private readonly httpService: HttpService,
@ -53,7 +55,11 @@ export class AnalyticsService {
try {
await this.httpService.axiosRef.post('/v1', data);
} catch {}
} catch {
this.logger.error('Failed to send analytics event');
return { success: false };
}
return { success: true };
}

View File

@ -10,18 +10,14 @@ export class GoogleAPIsOauthGuard extends AuthGuard('google-apis') {
}
async canActivate(context: ExecutionContext) {
try {
const request = context.switchToHttp().getRequest();
const transientToken = request.query.transientToken;
const request = context.switchToHttp().getRequest();
const transientToken = request.query.transientToken;
if (transientToken && typeof transientToken === 'string') {
request.params.transientToken = transientToken;
}
const activate = (await super.canActivate(context)) as boolean;
return activate;
} catch (ex) {
throw ex;
if (transientToken && typeof transientToken === 'string') {
request.params.transientToken = transientToken;
}
const activate = (await super.canActivate(context)) as boolean;
return activate;
}
}

View File

@ -10,18 +10,14 @@ export class GoogleOauthGuard extends AuthGuard('google') {
}
async canActivate(context: ExecutionContext) {
try {
const request = context.switchToHttp().getRequest();
const workspaceInviteHash = request.query.inviteHash;
const request = context.switchToHttp().getRequest();
const workspaceInviteHash = request.query.inviteHash;
if (workspaceInviteHash && typeof workspaceInviteHash === 'string') {
request.params.workspaceInviteHash = workspaceInviteHash;
}
const activate = (await super.canActivate(context)) as boolean;
return activate;
} catch (ex) {
throw ex;
if (workspaceInviteHash && typeof workspaceInviteHash === 'string') {
request.params.workspaceInviteHash = workspaceInviteHash;
}
const activate = (await super.canActivate(context)) as boolean;
return activate;
}
}

View File

@ -202,7 +202,11 @@ export class BillingService {
quantity = await this.userWorkspaceService.getWorkspaceMemberCount(
user.defaultWorkspaceId,
);
} catch (e) {}
} catch (e) {
this.logger.error(
`Failed to get workspace member count for workspace ${user.defaultWorkspaceId}`,
);
}
const session = await this.stripeService.createCheckoutSession(
user,

View File

@ -32,7 +32,7 @@ export class TimelineCalendarEventService {
workspaceMemberId: string,
workspaceId: string,
personIds: string[],
page: number = 1,
page = 1,
pageSize: number = TIMELINE_CALENDAR_EVENTS_DEFAULT_PAGE_SIZE,
): Promise<TimelineCalendarEventsWithTotal> {
const offset = (page - 1) * pageSize;
@ -234,7 +234,7 @@ export class TimelineCalendarEventService {
workspaceMemberId: string,
workspaceId: string,
companyId: string,
page: number = 1,
page = 1,
pageSize: number = TIMELINE_CALENDAR_EVENTS_DEFAULT_PAGE_SIZE,
): Promise<TimelineCalendarEventsWithTotal> {
const dataSourceSchema =

View File

@ -24,7 +24,7 @@ export class TimelineMessagingService {
workspaceMemberId: string,
workspaceId: string,
personIds: string[],
page: number = 1,
page = 1,
pageSize: number = TIMELINE_THREADS_DEFAULT_PAGE_SIZE,
): Promise<TimelineThreadsWithTotal> {
const offset = (page - 1) * pageSize;
@ -478,7 +478,7 @@ export class TimelineMessagingService {
workspaceMemberId: string,
workspaceId: string,
companyId: string,
page: number = 1,
page = 1,
pageSize: number = TIMELINE_THREADS_DEFAULT_PAGE_SIZE,
): Promise<TimelineThreadsWithTotal> {
const dataSourceSchema =

View File

@ -13,7 +13,7 @@ export function IsValidMetadataName(validationOptions?: ValidationOptions) {
options: validationOptions,
validator: {
validate(value: any) {
return /^(?!(?:not|or|and|Int|Float|Boolean|String|ID)$)[^'\"\\;.=*/]+$/.test(
return /^(?!(?:not|or|and|Int|Float|Boolean|String|ID)$)[^'"\\;.=*/]+$/.test(
value,
);
},

View File

@ -44,7 +44,7 @@ export class CacheStorageService {
});
}
async setPop(key: string, size: number = 1) {
async setPop(key: string, size = 1) {
if (this.isRedisCache()) {
return (this.cache as RedisCache).store.client.sPop(
`${this.namespace}:${key}`,

View File

@ -38,24 +38,24 @@ export class EnvironmentVariables {
@CastToBoolean()
@IsOptional()
@IsBoolean()
DEBUG_MODE: boolean = false;
DEBUG_MODE = false;
@CastToPositiveNumber()
@IsOptional()
@IsNumber()
@Min(0)
@Max(65535)
DEBUG_PORT: number = 9000;
DEBUG_PORT = 9000;
@CastToBoolean()
@IsOptional()
@IsBoolean()
SIGN_IN_PREFILLED: boolean = false;
SIGN_IN_PREFILLED = false;
@CastToBoolean()
@IsOptional()
@IsBoolean()
IS_BILLING_ENABLED: boolean = false;
IS_BILLING_ENABLED = false;
@IsString()
@ValidateIf((env) => env.IS_BILLING_ENABLED === true)
@ -69,7 +69,7 @@ export class EnvironmentVariables {
@CastToPositiveNumber()
@IsOptional()
@ValidateIf((env) => env.IS_BILLING_ENABLED === true)
BILLING_FREE_TRIAL_DURATION_IN_DAYS: number = 7;
BILLING_FREE_TRIAL_DURATION_IN_DAYS = 7;
@IsString()
@ValidateIf((env) => env.IS_BILLING_ENABLED === true)
@ -82,17 +82,17 @@ export class EnvironmentVariables {
@CastToBoolean()
@IsOptional()
@IsBoolean()
TELEMETRY_ENABLED: boolean = true;
TELEMETRY_ENABLED = true;
@CastToBoolean()
@IsOptional()
@IsBoolean()
TELEMETRY_ANONYMIZATION_ENABLED: boolean = true;
TELEMETRY_ANONYMIZATION_ENABLED = true;
@CastToPositiveNumber()
@IsNumber()
@IsOptional()
PORT: number = 3000;
PORT = 3000;
// Database
@IsDefined()
@ -118,33 +118,33 @@ export class EnvironmentVariables {
@IsDuration()
@IsOptional()
ACCESS_TOKEN_EXPIRES_IN: string = '30m';
ACCESS_TOKEN_EXPIRES_IN = '30m';
@IsString()
REFRESH_TOKEN_SECRET: string;
@IsDuration()
@IsOptional()
REFRESH_TOKEN_EXPIRES_IN: string = '30m';
REFRESH_TOKEN_EXPIRES_IN = '30m';
@IsDuration()
@IsOptional()
REFRESH_TOKEN_COOL_DOWN: string = '1m';
REFRESH_TOKEN_COOL_DOWN = '1m';
@IsString()
LOGIN_TOKEN_SECRET: string = '30m';
LOGIN_TOKEN_SECRET = '30m';
@IsDuration()
@IsOptional()
LOGIN_TOKEN_EXPIRES_IN: string = '15m';
LOGIN_TOKEN_EXPIRES_IN = '15m';
@IsString()
@IsOptional()
FILE_TOKEN_SECRET: string = 'random_string';
FILE_TOKEN_SECRET = 'random_string';
@IsDuration()
@IsOptional()
FILE_TOKEN_EXPIRES_IN: string = '1d';
FILE_TOKEN_EXPIRES_IN = '1d';
// Auth
@IsUrl({ require_tld: false })
@ -154,7 +154,7 @@ export class EnvironmentVariables {
@CastToBoolean()
@IsOptional()
@IsBoolean()
AUTH_GOOGLE_ENABLED: boolean = false;
AUTH_GOOGLE_ENABLED = false;
@IsString()
@ValidateIf((env) => env.AUTH_GOOGLE_ENABLED === true)
@ -188,7 +188,7 @@ export class EnvironmentVariables {
@IsString()
@ValidateIf((env) => env.STORAGE_TYPE === StorageDriverType.Local)
STORAGE_LOCAL_PATH: string = '.local-storage';
STORAGE_LOCAL_PATH = '.local-storage';
// Support
@IsEnum(SupportDriver)
@ -210,7 +210,7 @@ export class EnvironmentVariables {
@CastToBoolean()
@IsBoolean()
@IsOptional()
LOGGER_IS_BUFFER_ENABLED: boolean = true;
LOGGER_IS_BUFFER_ENABLED = true;
@IsEnum(ExceptionHandlerDriver)
@IsOptional()
@ -253,7 +253,7 @@ export class EnvironmentVariables {
@IsDuration()
@IsOptional()
PASSWORD_RESET_TOKEN_EXPIRES_IN: string = '5m';
PASSWORD_RESET_TOKEN_EXPIRES_IN = '5m';
@CastToPositiveNumber()
@IsNumber()
@ -263,49 +263,49 @@ export class EnvironmentVariables {
'"WORKSPACE_INACTIVE_DAYS_BEFORE_NOTIFICATION" should be strictly lower that "WORKSPACE_INACTIVE_DAYS_BEFORE_DELETION"',
})
@ValidateIf((env) => env.WORKSPACE_INACTIVE_DAYS_BEFORE_DELETION > 0)
WORKSPACE_INACTIVE_DAYS_BEFORE_NOTIFICATION: number = 30;
WORKSPACE_INACTIVE_DAYS_BEFORE_NOTIFICATION = 30;
@CastToPositiveNumber()
@IsNumber()
@ValidateIf((env) => env.WORKSPACE_INACTIVE_DAYS_BEFORE_NOTIFICATION > 0)
WORKSPACE_INACTIVE_DAYS_BEFORE_DELETION: number = 60;
WORKSPACE_INACTIVE_DAYS_BEFORE_DELETION = 60;
@CastToBoolean()
@IsOptional()
@IsBoolean()
IS_SIGN_UP_DISABLED: boolean = false;
IS_SIGN_UP_DISABLED = false;
@CastToPositiveNumber()
@IsOptional()
@IsNumber()
MUTATION_MAXIMUM_RECORD_AFFECTED: number = 100;
MUTATION_MAXIMUM_RECORD_AFFECTED = 100;
REDIS_HOST: string = '127.0.0.1';
REDIS_HOST = '127.0.0.1';
@CastToPositiveNumber()
REDIS_PORT: number = 6379;
REDIS_PORT = 6379;
API_TOKEN_EXPIRES_IN: string = '100y';
API_TOKEN_EXPIRES_IN = '100y';
SHORT_TERM_TOKEN_EXPIRES_IN: string = '5m';
SHORT_TERM_TOKEN_EXPIRES_IN = '5m';
@CastToBoolean()
MESSAGING_PROVIDER_GMAIL_ENABLED: boolean = false;
MESSAGING_PROVIDER_GMAIL_ENABLED = false;
MESSAGE_QUEUE_TYPE: string = MessageQueueDriverType.Sync;
EMAIL_FROM_ADDRESS: string = 'noreply@yourdomain.com';
EMAIL_FROM_ADDRESS = 'noreply@yourdomain.com';
EMAIL_SYSTEM_ADDRESS: string = 'system@yourdomain.com';
EMAIL_SYSTEM_ADDRESS = 'system@yourdomain.com';
EMAIL_FROM_NAME: string = 'Felix from Twenty';
EMAIL_FROM_NAME = 'Felix from Twenty';
EMAIL_DRIVER: EmailDriver = EmailDriver.Logger;
EMAIL_SMTP_HOST: string;
@CastToPositiveNumber()
EMAIL_SMTP_PORT: number = 587;
EMAIL_SMTP_PORT = 587;
EMAIL_SMTP_USER: string;
@ -314,18 +314,18 @@ export class EnvironmentVariables {
OPENROUTER_API_KEY: string;
@CastToPositiveNumber()
API_RATE_LIMITING_TTL: number = 100;
API_RATE_LIMITING_TTL = 100;
@CastToPositiveNumber()
API_RATE_LIMITING_LIMIT: number = 500;
API_RATE_LIMITING_LIMIT = 500;
CACHE_STORAGE_TYPE: string = 'memory';
CACHE_STORAGE_TYPE = 'memory';
@CastToPositiveNumber()
CACHE_STORAGE_TTL: number = 3600 * 24 * 7;
@CastToBoolean()
CALENDAR_PROVIDER_GOOGLE_ENABLED: boolean = false;
CALENDAR_PROVIDER_GOOGLE_ENABLED = false;
AUTH_GOOGLE_APIS_CALLBACK_URL: string;

View File

@ -33,18 +33,19 @@ export class MessageQueueModule {
const config = await options.useFactory(...args);
switch (config.type) {
case MessageQueueDriverType.PgBoss:
case MessageQueueDriverType.PgBoss: {
const boss = new PgBossDriver(config.options);
await boss.init();
return boss;
case MessageQueueDriverType.BullMQ:
}
case MessageQueueDriverType.BullMQ: {
return new BullMQDriver(config.options);
default:
}
default: {
return new SyncDriver(JobsModule.moduleRef);
}
}
},
inject: options.inject || [],

View File

@ -52,6 +52,7 @@ export class BeforeUpdateOneObject<T extends UpdateObjectInput>
if (!objectMetadata.isCustom) {
if (
Object.keys(instance.update).length === 1 &&
// eslint-disable-next-line no-prototype-builtins
instance.update.hasOwnProperty('isActive') &&
instance.update.isActive !== undefined
) {

View File

@ -40,12 +40,12 @@ import { DeleteOneObjectInput } from 'src/engine/metadata-modules/object-metadat
import { RelationToDelete } from 'src/engine/metadata-modules/relation-metadata/types/relation-to-delete';
import { generateMigrationName } from 'src/engine/metadata-modules/workspace-migration/utils/generate-migration-name.util';
import {
activityTargetStandardFieldIds,
attachmentStandardFieldIds,
baseObjectStandardFieldIds,
customObjectStandardFieldIds,
favoriteStandardFieldIds,
timelineActivityStandardFieldIds,
ACTIVITY_TARGET_STANDARD_FIELD_IDS,
ATTACHMENT_STANDARD_FIELD_IDS,
BASE_OBJECT_STANDARD_FIELD_IDS,
CUSTOM_OBJECT_STANDARD_FIELD_IDS,
FAVORITE_STANDARD_FIELD_IDS,
TIMELINE_ACTIVITY_STANDARD_FIELD_IDS,
} from 'src/engine/workspace-manager/workspace-sync-metadata/constants/standard-field-ids';
import {
createForeignKeyDeterministicUuid,
@ -262,7 +262,7 @@ export class ObjectMetadataService extends TypeOrmQueryService<ObjectMetadataEnt
// created with default values which is not supported yet by workspace migrations.
[
{
standardId: baseObjectStandardFieldIds.id,
standardId: BASE_OBJECT_STANDARD_FIELD_IDS.id,
type: FieldMetadataType.UUID,
name: 'id',
label: 'Id',
@ -276,7 +276,7 @@ export class ObjectMetadataService extends TypeOrmQueryService<ObjectMetadataEnt
defaultValue: 'uuid',
},
{
standardId: customObjectStandardFieldIds.name,
standardId: CUSTOM_OBJECT_STANDARD_FIELD_IDS.name,
type: FieldMetadataType.TEXT,
name: 'name',
label: 'Name',
@ -289,7 +289,7 @@ export class ObjectMetadataService extends TypeOrmQueryService<ObjectMetadataEnt
defaultValue: "'Untitled'",
},
{
standardId: baseObjectStandardFieldIds.createdAt,
standardId: BASE_OBJECT_STANDARD_FIELD_IDS.createdAt,
type: FieldMetadataType.DATE_TIME,
name: 'createdAt',
label: 'Creation date',
@ -302,7 +302,7 @@ export class ObjectMetadataService extends TypeOrmQueryService<ObjectMetadataEnt
defaultValue: 'now',
},
{
standardId: baseObjectStandardFieldIds.updatedAt,
standardId: BASE_OBJECT_STANDARD_FIELD_IDS.updatedAt,
type: FieldMetadataType.DATE_TIME,
name: 'updatedAt',
label: 'Update date',
@ -316,7 +316,7 @@ export class ObjectMetadataService extends TypeOrmQueryService<ObjectMetadataEnt
defaultValue: 'now',
},
{
standardId: customObjectStandardFieldIds.position,
standardId: CUSTOM_OBJECT_STANDARD_FIELD_IDS.position,
type: FieldMetadataType.POSITION,
name: 'position',
label: 'Position',
@ -464,7 +464,7 @@ export class ObjectMetadataService extends TypeOrmQueryService<ObjectMetadataEnt
createdObjectMetadata: ObjectMetadataEntity,
lastDataSourceMetadata: DataSourceEntity,
workspaceDataSource: DataSource | undefined,
isRemoteObject: boolean = false,
isRemoteObject = false,
) {
const isRelationEnabledForRemoteObjects =
await this.isRelationEnabledForRemoteObjects(
@ -535,7 +535,7 @@ export class ObjectMetadataService extends TypeOrmQueryService<ObjectMetadataEnt
await this.fieldMetadataRepository.save([
// FROM
{
standardId: customObjectStandardFieldIds.activityTargets,
standardId: CUSTOM_OBJECT_STANDARD_FIELD_IDS.activityTargets,
objectMetadataId: createdObjectMetadata.id,
workspaceId: workspaceId,
isCustom: false,
@ -551,7 +551,7 @@ export class ObjectMetadataService extends TypeOrmQueryService<ObjectMetadataEnt
{
standardId: createRelationDeterministicUuid({
objectId: createdObjectMetadata.id,
standardId: activityTargetStandardFieldIds.custom,
standardId: ACTIVITY_TARGET_STANDARD_FIELD_IDS.custom,
}),
objectMetadataId: activityTargetObjectMetadata.id,
workspaceId: workspaceId,
@ -568,7 +568,7 @@ export class ObjectMetadataService extends TypeOrmQueryService<ObjectMetadataEnt
{
standardId: createForeignKeyDeterministicUuid({
objectId: createdObjectMetadata.id,
standardId: activityTargetStandardFieldIds.custom,
standardId: ACTIVITY_TARGET_STANDARD_FIELD_IDS.custom,
}),
objectMetadataId: activityTargetObjectMetadata.id,
workspaceId: workspaceId,
@ -630,7 +630,7 @@ export class ObjectMetadataService extends TypeOrmQueryService<ObjectMetadataEnt
await this.fieldMetadataRepository.save([
// FROM
{
standardId: customObjectStandardFieldIds.attachments,
standardId: CUSTOM_OBJECT_STANDARD_FIELD_IDS.attachments,
objectMetadataId: createdObjectMetadata.id,
workspaceId: workspaceId,
isCustom: false,
@ -646,7 +646,7 @@ export class ObjectMetadataService extends TypeOrmQueryService<ObjectMetadataEnt
{
standardId: createRelationDeterministicUuid({
objectId: createdObjectMetadata.id,
standardId: attachmentStandardFieldIds.custom,
standardId: ATTACHMENT_STANDARD_FIELD_IDS.custom,
}),
objectMetadataId: attachmentObjectMetadata.id,
workspaceId: workspaceId,
@ -663,7 +663,7 @@ export class ObjectMetadataService extends TypeOrmQueryService<ObjectMetadataEnt
{
standardId: createForeignKeyDeterministicUuid({
objectId: createdObjectMetadata.id,
standardId: attachmentStandardFieldIds.custom,
standardId: ATTACHMENT_STANDARD_FIELD_IDS.custom,
}),
objectMetadataId: attachmentObjectMetadata.id,
workspaceId: workspaceId,
@ -723,7 +723,7 @@ export class ObjectMetadataService extends TypeOrmQueryService<ObjectMetadataEnt
await this.fieldMetadataRepository.save([
// FROM
{
standardId: customObjectStandardFieldIds.timelineActivities,
standardId: CUSTOM_OBJECT_STANDARD_FIELD_IDS.timelineActivities,
objectMetadataId: createdObjectMetadata.id,
workspaceId: workspaceId,
isCustom: false,
@ -739,7 +739,7 @@ export class ObjectMetadataService extends TypeOrmQueryService<ObjectMetadataEnt
{
standardId: createRelationDeterministicUuid({
objectId: createdObjectMetadata.id,
standardId: timelineActivityStandardFieldIds.custom,
standardId: TIMELINE_ACTIVITY_STANDARD_FIELD_IDS.custom,
}),
objectMetadataId: timelineActivityObjectMetadata.id,
workspaceId: workspaceId,
@ -756,7 +756,7 @@ export class ObjectMetadataService extends TypeOrmQueryService<ObjectMetadataEnt
{
standardId: createForeignKeyDeterministicUuid({
objectId: createdObjectMetadata.id,
standardId: timelineActivityStandardFieldIds.custom,
standardId: TIMELINE_ACTIVITY_STANDARD_FIELD_IDS.custom,
}),
objectMetadataId: timelineActivityObjectMetadata.id,
workspaceId: workspaceId,
@ -818,7 +818,7 @@ export class ObjectMetadataService extends TypeOrmQueryService<ObjectMetadataEnt
await this.fieldMetadataRepository.save([
// FROM
{
standardId: customObjectStandardFieldIds.favorites,
standardId: CUSTOM_OBJECT_STANDARD_FIELD_IDS.favorites,
objectMetadataId: createdObjectMetadata.id,
workspaceId: workspaceId,
isCustom: false,
@ -835,7 +835,7 @@ export class ObjectMetadataService extends TypeOrmQueryService<ObjectMetadataEnt
{
standardId: createRelationDeterministicUuid({
objectId: createdObjectMetadata.id,
standardId: favoriteStandardFieldIds.custom,
standardId: FAVORITE_STANDARD_FIELD_IDS.custom,
}),
objectMetadataId: favoriteObjectMetadata.id,
workspaceId: workspaceId,
@ -852,7 +852,7 @@ export class ObjectMetadataService extends TypeOrmQueryService<ObjectMetadataEnt
{
standardId: createForeignKeyDeterministicUuid({
objectId: createdObjectMetadata.id,
standardId: favoriteStandardFieldIds.custom,
standardId: FAVORITE_STANDARD_FIELD_IDS.custom,
}),
objectMetadataId: favoriteObjectMetadata.id,
workspaceId: workspaceId,

View File

@ -1,9 +1,9 @@
import { ObjectMetadataEntity } from 'src/engine/metadata-modules/object-metadata/object-metadata.entity';
import {
baseObjectStandardFieldIds,
companyStandardFieldIds,
BASE_OBJECT_STANDARD_FIELD_IDS,
COMPANY_STANDARD_FIELD_IDS,
} from 'src/engine/workspace-manager/workspace-sync-metadata/constants/standard-field-ids';
import { standardObjectIds } from 'src/engine/workspace-manager/workspace-sync-metadata/constants/standard-object-ids';
import { STANDARD_OBJECT_IDS } from 'src/engine/workspace-manager/workspace-sync-metadata/constants/standard-object-ids';
export const viewCompanyFields = (
viewId: string,
@ -12,8 +12,8 @@ export const viewCompanyFields = (
return [
{
fieldMetadataId:
objectMetadataMap[standardObjectIds.company].fields[
companyStandardFieldIds.name
objectMetadataMap[STANDARD_OBJECT_IDS.company].fields[
COMPANY_STANDARD_FIELD_IDS.name
],
viewId: viewId,
position: 0,
@ -22,8 +22,8 @@ export const viewCompanyFields = (
},
{
fieldMetadataId:
objectMetadataMap[standardObjectIds.company].fields[
companyStandardFieldIds.domainName
objectMetadataMap[STANDARD_OBJECT_IDS.company].fields[
COMPANY_STANDARD_FIELD_IDS.domainName
],
viewId: viewId,
position: 1,
@ -32,8 +32,8 @@ export const viewCompanyFields = (
},
{
fieldMetadataId:
objectMetadataMap[standardObjectIds.company].fields[
companyStandardFieldIds.accountOwner
objectMetadataMap[STANDARD_OBJECT_IDS.company].fields[
COMPANY_STANDARD_FIELD_IDS.accountOwner
],
viewId: viewId,
position: 2,
@ -42,8 +42,8 @@ export const viewCompanyFields = (
},
{
fieldMetadataId:
objectMetadataMap[standardObjectIds.company].fields[
baseObjectStandardFieldIds.createdAt
objectMetadataMap[STANDARD_OBJECT_IDS.company].fields[
BASE_OBJECT_STANDARD_FIELD_IDS.createdAt
],
viewId: viewId,
position: 3,
@ -52,8 +52,8 @@ export const viewCompanyFields = (
},
{
fieldMetadataId:
objectMetadataMap[standardObjectIds.company].fields[
companyStandardFieldIds.employees
objectMetadataMap[STANDARD_OBJECT_IDS.company].fields[
COMPANY_STANDARD_FIELD_IDS.employees
],
viewId: viewId,
position: 4,
@ -62,8 +62,8 @@ export const viewCompanyFields = (
},
{
fieldMetadataId:
objectMetadataMap[standardObjectIds.company].fields[
companyStandardFieldIds.linkedinLink
objectMetadataMap[STANDARD_OBJECT_IDS.company].fields[
COMPANY_STANDARD_FIELD_IDS.linkedinLink
],
viewId: viewId,
position: 5,
@ -72,8 +72,8 @@ export const viewCompanyFields = (
},
{
fieldMetadataId:
objectMetadataMap[standardObjectIds.company].fields[
companyStandardFieldIds.address
objectMetadataMap[STANDARD_OBJECT_IDS.company].fields[
COMPANY_STANDARD_FIELD_IDS.address
],
viewId: viewId,
position: 6,

View File

@ -1,6 +1,6 @@
import { ObjectMetadataEntity } from 'src/engine/metadata-modules/object-metadata/object-metadata.entity';
import { opportunityStandardFieldIds } from 'src/engine/workspace-manager/workspace-sync-metadata/constants/standard-field-ids';
import { standardObjectIds } from 'src/engine/workspace-manager/workspace-sync-metadata/constants/standard-object-ids';
import { OPPORTUNITY_STANDARD_FIELD_IDS } from 'src/engine/workspace-manager/workspace-sync-metadata/constants/standard-field-ids';
import { STANDARD_OBJECT_IDS } from 'src/engine/workspace-manager/workspace-sync-metadata/constants/standard-object-ids';
export const viewOpportunityFields = (
viewId: string,
@ -9,8 +9,8 @@ export const viewOpportunityFields = (
return [
{
fieldMetadataId:
objectMetadataMap[standardObjectIds.opportunity].fields[
opportunityStandardFieldIds.name
objectMetadataMap[STANDARD_OBJECT_IDS.opportunity].fields[
OPPORTUNITY_STANDARD_FIELD_IDS.name
],
viewId: viewId,
position: 0,
@ -19,8 +19,8 @@ export const viewOpportunityFields = (
},
{
fieldMetadataId:
objectMetadataMap[standardObjectIds.opportunity].fields[
opportunityStandardFieldIds.amount
objectMetadataMap[STANDARD_OBJECT_IDS.opportunity].fields[
OPPORTUNITY_STANDARD_FIELD_IDS.amount
],
viewId: viewId,
position: 1,
@ -29,8 +29,8 @@ export const viewOpportunityFields = (
},
{
fieldMetadataId:
objectMetadataMap[standardObjectIds.opportunity].fields[
opportunityStandardFieldIds.closeDate
objectMetadataMap[STANDARD_OBJECT_IDS.opportunity].fields[
OPPORTUNITY_STANDARD_FIELD_IDS.closeDate
],
viewId: viewId,
position: 2,
@ -39,8 +39,8 @@ export const viewOpportunityFields = (
},
{
fieldMetadataId:
objectMetadataMap[standardObjectIds.opportunity].fields[
opportunityStandardFieldIds.probability
objectMetadataMap[STANDARD_OBJECT_IDS.opportunity].fields[
OPPORTUNITY_STANDARD_FIELD_IDS.probability
],
viewId: viewId,
position: 3,
@ -49,8 +49,8 @@ export const viewOpportunityFields = (
},
{
fieldMetadataId:
objectMetadataMap[standardObjectIds.opportunity].fields[
opportunityStandardFieldIds.pointOfContact
objectMetadataMap[STANDARD_OBJECT_IDS.opportunity].fields[
OPPORTUNITY_STANDARD_FIELD_IDS.pointOfContact
],
viewId: viewId,
position: 4,

View File

@ -1,9 +1,9 @@
import { ObjectMetadataEntity } from 'src/engine/metadata-modules/object-metadata/object-metadata.entity';
import {
baseObjectStandardFieldIds,
personStandardFieldIds,
BASE_OBJECT_STANDARD_FIELD_IDS,
PERSON_STANDARD_FIELD_IDS,
} from 'src/engine/workspace-manager/workspace-sync-metadata/constants/standard-field-ids';
import { standardObjectIds } from 'src/engine/workspace-manager/workspace-sync-metadata/constants/standard-object-ids';
import { STANDARD_OBJECT_IDS } from 'src/engine/workspace-manager/workspace-sync-metadata/constants/standard-object-ids';
export const viewPersonFields = (
viewId: string,
@ -12,8 +12,8 @@ export const viewPersonFields = (
return [
{
fieldMetadataId:
objectMetadataMap[standardObjectIds.person].fields[
personStandardFieldIds.name
objectMetadataMap[STANDARD_OBJECT_IDS.person].fields[
PERSON_STANDARD_FIELD_IDS.name
],
viewId: viewId,
position: 0,
@ -22,8 +22,8 @@ export const viewPersonFields = (
},
{
fieldMetadataId:
objectMetadataMap[standardObjectIds.person].fields[
personStandardFieldIds.email
objectMetadataMap[STANDARD_OBJECT_IDS.person].fields[
PERSON_STANDARD_FIELD_IDS.email
],
viewId: viewId,
position: 1,
@ -32,8 +32,8 @@ export const viewPersonFields = (
},
{
fieldMetadataId:
objectMetadataMap[standardObjectIds.person].fields[
personStandardFieldIds.company
objectMetadataMap[STANDARD_OBJECT_IDS.person].fields[
PERSON_STANDARD_FIELD_IDS.company
],
viewId: viewId,
position: 2,
@ -42,8 +42,8 @@ export const viewPersonFields = (
},
{
fieldMetadataId:
objectMetadataMap[standardObjectIds.person].fields[
personStandardFieldIds.phone
objectMetadataMap[STANDARD_OBJECT_IDS.person].fields[
PERSON_STANDARD_FIELD_IDS.phone
],
viewId: viewId,
position: 3,
@ -52,8 +52,8 @@ export const viewPersonFields = (
},
{
fieldMetadataId:
objectMetadataMap[standardObjectIds.person].fields[
baseObjectStandardFieldIds.createdAt
objectMetadataMap[STANDARD_OBJECT_IDS.person].fields[
BASE_OBJECT_STANDARD_FIELD_IDS.createdAt
],
viewId: viewId,
position: 4,
@ -62,8 +62,8 @@ export const viewPersonFields = (
},
{
fieldMetadataId:
objectMetadataMap[standardObjectIds.person].fields[
personStandardFieldIds.city
objectMetadataMap[STANDARD_OBJECT_IDS.person].fields[
PERSON_STANDARD_FIELD_IDS.city
],
viewId: viewId,
position: 5,
@ -72,8 +72,8 @@ export const viewPersonFields = (
},
{
fieldMetadataId:
objectMetadataMap[standardObjectIds.person].fields[
personStandardFieldIds.jobTitle
objectMetadataMap[STANDARD_OBJECT_IDS.person].fields[
PERSON_STANDARD_FIELD_IDS.jobTitle
],
viewId: viewId,
position: 6,
@ -82,8 +82,8 @@ export const viewPersonFields = (
},
{
fieldMetadataId:
objectMetadataMap[standardObjectIds.person].fields[
personStandardFieldIds.linkedinLink
objectMetadataMap[STANDARD_OBJECT_IDS.person].fields[
PERSON_STANDARD_FIELD_IDS.linkedinLink
],
viewId: viewId,
position: 7,
@ -92,8 +92,8 @@ export const viewPersonFields = (
},
{
fieldMetadataId:
objectMetadataMap[standardObjectIds.person].fields[
personStandardFieldIds.xLink
objectMetadataMap[STANDARD_OBJECT_IDS.person].fields[
PERSON_STANDARD_FIELD_IDS.xLink
],
viewId: viewId,
position: 8,

View File

@ -4,8 +4,8 @@ import { ObjectMetadataEntity } from 'src/engine/metadata-modules/object-metadat
import { viewCompanyFields } from 'src/engine/workspace-manager/standard-objects-prefill-data/view-company-fields';
import { viewPersonFields } from 'src/engine/workspace-manager/standard-objects-prefill-data/view-person-fields';
import { viewOpportunityFields } from 'src/engine/workspace-manager/standard-objects-prefill-data/view-opportunity-fields';
import { standardObjectIds } from 'src/engine/workspace-manager/workspace-sync-metadata/constants/standard-object-ids';
import { opportunityStandardFieldIds } from 'src/engine/workspace-manager/workspace-sync-metadata/constants/standard-field-ids';
import { STANDARD_OBJECT_IDS } from 'src/engine/workspace-manager/workspace-sync-metadata/constants/standard-object-ids';
import { OPPORTUNITY_STANDARD_FIELD_IDS } from 'src/engine/workspace-manager/workspace-sync-metadata/constants/standard-field-ids';
export const viewPrefillData = async (
entityManager: EntityManager,
@ -27,7 +27,7 @@ export const viewPrefillData = async (
.values([
{
name: 'All Companies',
objectMetadataId: objectMetadataMap[standardObjectIds.company].id,
objectMetadataId: objectMetadataMap[STANDARD_OBJECT_IDS.company].id,
type: 'table',
key: 'INDEX',
position: 0,
@ -36,7 +36,7 @@ export const viewPrefillData = async (
},
{
name: 'All People',
objectMetadataId: objectMetadataMap[standardObjectIds.person].id,
objectMetadataId: objectMetadataMap[STANDARD_OBJECT_IDS.person].id,
type: 'table',
key: 'INDEX',
position: 0,
@ -45,7 +45,7 @@ export const viewPrefillData = async (
},
{
name: 'All Opportunities',
objectMetadataId: objectMetadataMap[standardObjectIds.opportunity].id,
objectMetadataId: objectMetadataMap[STANDARD_OBJECT_IDS.opportunity].id,
type: 'table',
key: 'INDEX',
position: 0,
@ -54,14 +54,14 @@ export const viewPrefillData = async (
},
{
name: 'By Stage',
objectMetadataId: objectMetadataMap[standardObjectIds.opportunity].id,
objectMetadataId: objectMetadataMap[STANDARD_OBJECT_IDS.opportunity].id,
type: 'kanban',
key: null,
position: 1,
icon: 'IconLayoutKanban',
kanbanFieldMetadataId:
objectMetadataMap[standardObjectIds.opportunity].fields[
opportunityStandardFieldIds.stage
objectMetadataMap[STANDARD_OBJECT_IDS.opportunity].fields[
OPPORTUNITY_STANDARD_FIELD_IDS.stage
],
},
])

View File

@ -73,7 +73,7 @@ export class CleanInactiveWorkspaceJob
await workspaceDataSource?.query(
`SELECT MAX("updatedAt") FROM ${dataSource.schema}."${tableName}"`,
)
)[0].max;
)?.[0]?.max;
if (mostRecentTableUpdatedAt) {
const mostRecentTableUpdatedAtDate = new Date(mostRecentTableUpdatedAt);

View File

@ -54,13 +54,14 @@ export class WorkspaceRelationComparator {
for (const difference of relationMetadataDifference) {
switch (difference.type) {
case 'CREATE':
case 'CREATE': {
results.push({
action: ComparatorAction.CREATE,
object: difference.value,
});
break;
case 'REMOVE':
}
case 'REMOVE': {
if (difference.path[difference.path.length - 1] !== 'id') {
results.push({
action: ComparatorAction.DELETE,
@ -68,7 +69,8 @@ export class WorkspaceRelationComparator {
});
}
break;
case 'CHANGE':
}
case 'CHANGE': {
const fieldName = difference.path[0];
const property = difference.path[difference.path.length - 1];
@ -101,6 +103,7 @@ export class WorkspaceRelationComparator {
},
});
break;
}
}
}

View File

@ -5,7 +5,7 @@
* For readability keys can be edited but the values should not be changed.
*/
export const activityTargetStandardFieldIds = {
export const ACTIVITY_TARGET_STANDARD_FIELD_IDS = {
activity: '20202020-ca58-478c-a4f5-ae825671c30e',
person: '20202020-4afd-4ae7-99c2-de57d795a93f',
company: '20202020-7cc0-44a1-8068-f11171fdd02e',
@ -13,7 +13,7 @@ export const activityTargetStandardFieldIds = {
custom: '20202020-7f21-442f-94be-32462281b1ca',
};
export const activityStandardFieldIds = {
export const ACTIVITY_STANDARD_FIELD_IDS = {
title: '20202020-24a1-4d94-a071-617f3eeed7b0',
body: '20202020-209b-440a-b2a8-043fa36a7d37',
type: '20202020-0f2b-4aab-8827-ee5d3f07d993',
@ -27,13 +27,13 @@ export const activityStandardFieldIds = {
assignee: '20202020-4259-48e4-9e77-6b92991906d5',
};
export const apiKeyStandardFieldIds = {
export const API_KEY_STANDARD_FIELD_IDS = {
name: '20202020-72e6-4079-815b-436ce8a62f23',
expiresAt: '20202020-659b-4241-af59-66515b8e7d40',
revokedAt: '20202020-06ab-44b5-8faf-f6e407685001',
};
export const attachmentStandardFieldIds = {
export const ATTACHMENT_STANDARD_FIELD_IDS = {
name: '20202020-87a5-48f8-bbf7-ade388825a57',
fullPath: '20202020-0d19-453d-8e8d-fbcda8ca3747',
type: '20202020-a417-49b8-a40b-f6a7874caa0d',
@ -45,24 +45,24 @@ export const attachmentStandardFieldIds = {
custom: '20202020-302d-43b3-9aea-aa4f89282a9f',
};
export const baseObjectStandardFieldIds = {
export const BASE_OBJECT_STANDARD_FIELD_IDS = {
id: '20202020-eda0-4cee-9577-3eb357e3c22b',
createdAt: '20202020-66ac-4502-9975-e4d959c50311',
updatedAt: '20202020-d767-4622-bdcf-d8a084834d86',
};
export const blocklistStandardFieldIds = {
export const BLOCKLIST_STANDARD_FIELD_IDS = {
handle: '20202020-eef3-44ed-aa32-4641d7fd4a3e',
workspaceMember: '20202020-548d-4084-a947-fa20a39f7c06',
};
export const calendarChannelEventAssociationStandardFieldIds = {
export const CALENDAR_CHANNEL_EVENT_ASSOCIATION_STANDARD_FIELD_IDS = {
calendarChannel: '20202020-93ee-4da4-8d58-0282c4a9cb7d',
calendarEvent: '20202020-5aa5-437e-bb86-f42d457783e3',
eventExternalId: '20202020-9ec8-48bb-b279-21d0734a75a1',
};
export const calendarChannelStandardFieldIds = {
export const CALENDAR_CHANNEL_STANDARD_FIELD_IDS = {
connectedAccount: '20202020-95b1-4f44-82dc-61b042ae2414',
handle: '20202020-1d08-420a-9aa7-22e0f298232d',
visibility: '20202020-1b07-4796-9f01-d626bab7ca4d',
@ -72,7 +72,7 @@ export const calendarChannelStandardFieldIds = {
calendarChannelEventAssociations: '20202020-afb0-4a9f-979f-2d5087d71d09',
};
export const calendarEventParticipantStandardFieldIds = {
export const CALENDAR_EVENT_PARTICIPANT_STANDARD_FIELD_IDS = {
calendarEvent: '20202020-fe3a-401c-b889-af4f4657a861',
handle: '20202020-8692-4580-8210-9e09cbd031a7',
displayName: '20202020-ee1e-4f9f-8ac1-5c0b2f69691e',
@ -82,7 +82,7 @@ export const calendarEventParticipantStandardFieldIds = {
workspaceMember: '20202020-20e4-4591-93ed-aeb17a4dcbd2',
};
export const calendarEventStandardFieldIds = {
export const CALENDAR_EVENT_STANDARD_FIELD_IDS = {
title: '20202020-080e-49d1-b21d-9702a7e2525c',
isCanceled: '20202020-335b-4e04-b470-43b84b64863c',
isFullDay: '20202020-551c-402c-bb6d-dfe9efe86bcb',
@ -100,13 +100,13 @@ export const calendarEventStandardFieldIds = {
calendarEventParticipants: '20202020-e07e-4ccb-88f5-6f3d00458eec',
};
export const commentStandardFieldIds = {
export const COMMENT_STANDARD_FIELD_IDS = {
body: '20202020-d5eb-49d2-b3e0-1ed04145ebb7',
author: '20202020-2ab1-427e-a981-cf089de3a9bd',
activity: '20202020-c8d9-4c30-a35e-dc7f44388070',
};
export const companyStandardFieldIds = {
export const COMPANY_STANDARD_FIELD_IDS = {
name: '20202020-4d99-4e2e-a84c-4a27837b1ece',
domainName: '20202020-0c28-43d8-8ba5-3659924d3489',
address: '20202020-a82a-4ee2-96cc-a18a3259d953',
@ -125,7 +125,7 @@ export const companyStandardFieldIds = {
timelineActivities: '20202020-0414-4daf-9c0d-64fe7b27f89f',
};
export const connectedAccountStandardFieldIds = {
export const CONNECTED_ACCOUNT_STANDARD_FIELD_IDS = {
handle: '20202020-c804-4a50-bb05-b3a9e24f1dec',
provider: '20202020-ebb0-4516-befc-a9e95935efd5',
accessToken: '20202020-707b-4a0a-8753-2ad42efe1e29',
@ -137,7 +137,7 @@ export const connectedAccountStandardFieldIds = {
calendarChannels: '20202020-af4a-47bb-99ec-51911c1d3977',
};
export const eventStandardFieldIds = {
export const EVENT_STANDARD_FIELD_IDS = {
properties: '20202020-f142-4b04-b91b-6a2b4af3bf10',
workspaceMember: '20202020-af23-4479-9a30-868edc474b35',
person: '20202020-c414-45b9-a60a-ac27aa96229e',
@ -146,7 +146,7 @@ export const eventStandardFieldIds = {
custom: '20202020-4a71-41b0-9f83-9cdcca3f8b14',
};
export const auditLogStandardFieldIds = {
export const AUDIT_LOGS_STANDARD_FIELD_IDS = {
name: '20202020-2462-4b9d-b5d9-745febb3b095',
properties: '20202020-5d36-470e-8fad-d56ea3ab2fd0',
context: '20202020-b9d1-4058-9a75-7469cab5ca8c',
@ -155,7 +155,7 @@ export const auditLogStandardFieldIds = {
workspaceMember: '20202020-6e96-4300-b3f5-67a707147385',
};
export const behavioralEventStandardFieldIds = {
export const BEHAVIORAL_EVENT_STANDARD_FIELD_IDS = {
name: '20202020-2462-4b9d-b5d9-745febb3b095',
properties: '20202020-5d36-470e-8fad-d56ea3ab2fd0',
context: '20202020-bd62-4b5b-8385-6caeed8f8078',
@ -163,7 +163,7 @@ export const behavioralEventStandardFieldIds = {
recordId: '20202020-6d8b-4ca5-9869-f882cb335673',
};
export const timelineActivityStandardFieldIds = {
export const TIMELINE_ACTIVITY_STANDARD_FIELD_IDS = {
happensAt: '20202020-9526-4993-b339-c4318c4d39f0',
type: '20202020-5e7b-4ccd-8b8a-86b94b474134',
name: '20202020-7207-46e8-9dab-849505ae8497',
@ -178,7 +178,7 @@ export const timelineActivityStandardFieldIds = {
linkedObjectMetadataId: '20202020-c595-449d-9f89-562758c9ee69',
};
export const favoriteStandardFieldIds = {
export const FAVORITE_STANDARD_FIELD_IDS = {
position: '20202020-dd26-42c6-8c3c-2a7598c204f6',
workspaceMember: '20202020-ce63-49cb-9676-fdc0c45892cd',
person: '20202020-c428-4f40-b6f3-86091511c41c',
@ -187,7 +187,7 @@ export const favoriteStandardFieldIds = {
custom: '20202020-855a-4bc8-9861-79deef37011f',
};
export const messageChannelMessageAssociationStandardFieldIds = {
export const MESSAGE_CHANNEL_MESSAGE_ASSOCIATION_STANDARD_FIELD_IDS = {
messageChannel: '20202020-b658-408f-bd46-3bd2d15d7e52',
message: '20202020-da5d-4ac5-8743-342ab0a0336b',
messageExternalId: '20202020-37d6-438f-b6fd-6503596c8f34',
@ -195,7 +195,7 @@ export const messageChannelMessageAssociationStandardFieldIds = {
messageThreadExternalId: '20202020-35fb-421e-afa0-0b8e8f7f9018',
};
export const messageChannelStandardFieldIds = {
export const MESSAGE_CHANNEL_STANDARD_FIELD_IDS = {
visibility: '20202020-6a6b-4532-9767-cbc61b469453',
handle: '20202020-2c96-43c3-93e3-ed6b1acb69bc',
connectedAccount: '20202020-49a2-44a4-b470-282c0440d15d',
@ -209,7 +209,7 @@ export const messageChannelStandardFieldIds = {
ongoingSyncStartedAt: '20202020-8c61-4a42-ae63-73c1c3c52e06',
};
export const messageParticipantStandardFieldIds = {
export const MESSAGE_PARTICIPANT_STANDARD_FIELD_IDS = {
message: '20202020-985b-429a-9db9-9e55f4898a2a',
role: '20202020-65d1-42f4-8729-c9ec1f52aecd',
handle: '20202020-2456-464e-b422-b965a4db4a0b',
@ -218,12 +218,12 @@ export const messageParticipantStandardFieldIds = {
workspaceMember: '20202020-77a7-4845-99ed-1bcbb478be6f',
};
export const messageThreadStandardFieldIds = {
export const MESSAGE_THREAD_STANDARD_FIELD_IDS = {
messages: '20202020-3115-404f-aade-e1154b28e35a',
messageChannelMessageAssociations: '20202020-314e-40a4-906d-a5d5d6c285f6',
};
export const messageStandardFieldIds = {
export const MESSAGE_STANDARD_FIELD_IDS = {
headerMessageId: '20202020-72b5-416d-aed8-b55609067d01',
messageThread: '20202020-30f2-4ccd-9f5c-e41bb9d26214',
direction: '20202020-0203-4118-8e2a-05b9bdae6dab',
@ -234,7 +234,7 @@ export const messageStandardFieldIds = {
messageChannelMessageAssociations: '20202020-3cef-43a3-82c6-50e7cfbc9ae4',
};
export const opportunityStandardFieldIds = {
export const OPPORTUNITY_STANDARD_FIELD_IDS = {
name: '20202020-8609-4f65-a2d9-44009eb422b5',
amount: '20202020-583e-4642-8533-db761d5fa82f',
closeDate: '20202020-527e-44d6-b1ac-c4158d307b97',
@ -249,7 +249,7 @@ export const opportunityStandardFieldIds = {
timelineActivities: '20202020-30e2-421f-96c7-19c69d1cf631',
};
export const personStandardFieldIds = {
export const PERSON_STANDARD_FIELD_IDS = {
name: '20202020-3875-44d5-8c33-a6239011cab8',
email: '20202020-a740-42bb-8849-8980fb3f12e1',
linkedinLink: '20202020-f1af-48f7-893b-2007a73dd508',
@ -269,7 +269,7 @@ export const personStandardFieldIds = {
timelineActivities: '20202020-a43e-4873-9c23-e522de906ce5',
};
export const viewFieldStandardFieldIds = {
export const VIEW_FIELD_STANDARD_FIELD_IDS = {
fieldMetadataId: '20202020-135f-4c5b-b361-15f24870473c',
isVisible: '20202020-e966-473c-9c18-f00d3347e0ba',
size: '20202020-6fab-4bd0-ae72-20f3ee39d581',
@ -277,7 +277,7 @@ export const viewFieldStandardFieldIds = {
view: '20202020-e8da-4521-afab-d6d231f9fa18',
};
export const viewFilterStandardFieldIds = {
export const VIEW_FILTER_STANDARD_FIELD_IDS = {
fieldMetadataId: '20202020-c9aa-4c94-8d0e-9592f5008fb0',
operand: '20202020-bd23-48c4-9fab-29d1ffb80310',
value: '20202020-1e55-4a1e-a1d2-fefb86a5fce5',
@ -285,13 +285,13 @@ export const viewFilterStandardFieldIds = {
view: '20202020-4f5b-487e-829c-3d881c163611',
};
export const viewSortStandardFieldIds = {
export const VIEW_SORT_STANDARD_FIELD_IDS = {
fieldMetadataId: '20202020-8240-4657-aee4-7f0df8e94eca',
direction: '20202020-b06e-4eb3-9b58-0a62e5d79836',
view: '20202020-bd6c-422b-9167-5c105f2d02c8',
};
export const viewStandardFieldIds = {
export const VIEW_STANDARD_FIELD_IDS = {
name: '20202020-12c6-4f37-b588-c9b9bf57328d',
objectMetadataId: '20202020-d6de-4fd5-84dd-47f9e730368b',
type: '20202020-dd11-4607-9ec7-c57217262a7f',
@ -305,12 +305,12 @@ export const viewStandardFieldIds = {
viewSorts: '20202020-891b-45c3-9fe1-80a75b4aa043',
};
export const webhookStandardFieldIds = {
export const WEBHOOK_STANDARD_FIELD_IDS = {
targetUrl: '20202020-1229-45a8-8cf4-85c9172aae12',
operation: '20202020-15b7-458e-bf30-74770a54410c',
};
export const workspaceMemberStandardFieldIds = {
export const WORKSPACE_MEMBER_STANDARD_FIELD_IDS = {
name: '20202020-e914-43a6-9c26-3603c59065f4',
colorScheme: '20202020-66bc-47f2-adac-f2ef7c598b63',
locale: '20202020-402e-4695-b169-794fa015afbe',
@ -331,7 +331,7 @@ export const workspaceMemberStandardFieldIds = {
auditLogs: '20202020-2f54-4739-a5e2-99563385e83d',
};
export const customObjectStandardFieldIds = {
export const CUSTOM_OBJECT_STANDARD_FIELD_IDS = {
name: '20202020-ba07-4ffd-ba63-009491f5749c',
position: '20202020-c2bd-4e16-bb9a-c8b0411bf49d',
activityTargets: '20202020-7f42-40ae-b96c-c8a61acc83bf',

View File

@ -5,7 +5,7 @@
* For readability keys can be edited but the values should not be changed.
*/
export const standardObjectIds = {
export const STANDARD_OBJECT_IDS = {
activityTarget: '20202020-2945-440e-8d1a-f84672d33d5e',
activity: '20202020-39aa-4a89-843b-eb5f2a8b677f',
apiKey: '20202020-4c00-401d-8cda-ec6a4c41cd7d',

View File

@ -12,13 +12,13 @@ import { ActivityTargetObjectMetadata } from 'src/modules/activity/standard-obje
import { RelationMetadata } from 'src/engine/workspace-manager/workspace-sync-metadata/decorators/relation-metadata.decorator';
import { FavoriteObjectMetadata } from 'src/modules/favorite/standard-objects/favorite.object-metadata';
import { AttachmentObjectMetadata } from 'src/modules/attachment/standard-objects/attachment.object-metadata';
import { customObjectStandardFieldIds } from 'src/engine/workspace-manager/workspace-sync-metadata/constants/standard-field-ids';
import { CUSTOM_OBJECT_STANDARD_FIELD_IDS } from 'src/engine/workspace-manager/workspace-sync-metadata/constants/standard-field-ids';
import { TimelineActivityObjectMetadata } from 'src/modules/timeline/standard-objects/timeline-activity.object-metadata';
@BaseCustomObjectMetadata()
export class CustomObjectMetadata extends BaseObjectMetadata {
@FieldMetadata({
standardId: customObjectStandardFieldIds.name,
standardId: CUSTOM_OBJECT_STANDARD_FIELD_IDS.name,
label: 'Name',
description: 'Name',
type: FieldMetadataType.TEXT,
@ -28,7 +28,7 @@ export class CustomObjectMetadata extends BaseObjectMetadata {
name: string;
@FieldMetadata({
standardId: customObjectStandardFieldIds.position,
standardId: CUSTOM_OBJECT_STANDARD_FIELD_IDS.position,
label: 'Position',
description: 'Position',
type: FieldMetadataType.POSITION,
@ -39,7 +39,7 @@ export class CustomObjectMetadata extends BaseObjectMetadata {
position: number;
@FieldMetadata({
standardId: customObjectStandardFieldIds.activityTargets,
standardId: CUSTOM_OBJECT_STANDARD_FIELD_IDS.activityTargets,
type: FieldMetadataType.RELATION,
label: 'Activities',
description: (objectMetadata) =>
@ -55,7 +55,7 @@ export class CustomObjectMetadata extends BaseObjectMetadata {
activityTargets: ActivityTargetObjectMetadata[];
@FieldMetadata({
standardId: customObjectStandardFieldIds.favorites,
standardId: CUSTOM_OBJECT_STANDARD_FIELD_IDS.favorites,
type: FieldMetadataType.RELATION,
label: 'Favorites',
description: (objectMetadata) =>
@ -72,7 +72,7 @@ export class CustomObjectMetadata extends BaseObjectMetadata {
favorites: FavoriteObjectMetadata[];
@FieldMetadata({
standardId: customObjectStandardFieldIds.attachments,
standardId: CUSTOM_OBJECT_STANDARD_FIELD_IDS.attachments,
type: FieldMetadataType.RELATION,
label: 'Attachments',
description: (objectMetadata) =>
@ -88,7 +88,7 @@ export class CustomObjectMetadata extends BaseObjectMetadata {
attachments: AttachmentObjectMetadata[];
@FieldMetadata({
standardId: customObjectStandardFieldIds.timelineActivities,
standardId: CUSTOM_OBJECT_STANDARD_FIELD_IDS.timelineActivities,
type: FieldMetadataType.RELATION,
label: 'Timeline Activities',
description: (objectMetadata) =>

View File

@ -35,7 +35,7 @@ export class StandardObjectFactory {
if (!objectMetadata) {
throw new Error(
`Object metadata decorator not found, can\'t parse ${metadata.name}`,
`Object metadata decorator not found, can't parse ${metadata.name}`,
);
}

View File

@ -83,7 +83,7 @@ export class StandardRelationFactory {
if (!objectMetadata) {
throw new Error(
`Object metadata decorator not found, can\'t parse ${standardObjectMetadata.name}`,
`Object metadata decorator not found, can't parse ${standardObjectMetadata.name}`,
);
}

View File

@ -1,11 +1,11 @@
import { FieldMetadataType } from 'src/engine/metadata-modules/field-metadata/field-metadata.entity';
import { baseObjectStandardFieldIds } from 'src/engine/workspace-manager/workspace-sync-metadata/constants/standard-field-ids';
import { BASE_OBJECT_STANDARD_FIELD_IDS } from 'src/engine/workspace-manager/workspace-sync-metadata/constants/standard-field-ids';
import { FieldMetadata } from 'src/engine/workspace-manager/workspace-sync-metadata/decorators/field-metadata.decorator';
import { IsSystem } from 'src/engine/workspace-manager/workspace-sync-metadata/decorators/is-system.decorator';
export abstract class BaseObjectMetadata {
@FieldMetadata({
standardId: baseObjectStandardFieldIds.id,
standardId: BASE_OBJECT_STANDARD_FIELD_IDS.id,
type: FieldMetadataType.UUID,
label: 'Id',
description: 'Id',
@ -16,7 +16,7 @@ export abstract class BaseObjectMetadata {
id: string;
@FieldMetadata({
standardId: baseObjectStandardFieldIds.createdAt,
standardId: BASE_OBJECT_STANDARD_FIELD_IDS.createdAt,
type: FieldMetadataType.DATE_TIME,
label: 'Creation date',
description: 'Creation date',
@ -26,7 +26,7 @@ export abstract class BaseObjectMetadata {
createdAt: Date;
@FieldMetadata({
standardId: baseObjectStandardFieldIds.updatedAt,
standardId: BASE_OBJECT_STANDARD_FIELD_IDS.updatedAt,
type: FieldMetadataType.DATE_TIME,
label: 'Update date',
description: 'Update date',