@memberjunction/server 1.1.3 → 1.2.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/CHANGELOG.json +187 -1
- package/CHANGELOG.md +44 -2
- package/dist/generated/generated.d.ts +292 -5
- package/dist/generated/generated.d.ts.map +1 -1
- package/dist/generated/generated.js +1601 -16
- package/dist/generated/generated.js.map +1 -1
- package/dist/generic/RunViewResolver.d.ts +3 -0
- package/dist/generic/RunViewResolver.d.ts.map +1 -1
- package/dist/generic/RunViewResolver.js +21 -0
- package/dist/generic/RunViewResolver.js.map +1 -1
- package/dist/resolvers/AskSkipResolver.d.ts +7 -10
- package/dist/resolvers/AskSkipResolver.d.ts.map +1 -1
- package/dist/resolvers/AskSkipResolver.js +102 -40
- package/dist/resolvers/AskSkipResolver.js.map +1 -1
- package/package.json +13 -13
- package/src/generated/generated.ts +1223 -15
- package/src/generic/RunViewResolver.ts +21 -0
- package/src/resolvers/AskSkipResolver.ts +132 -52
|
@@ -2,7 +2,7 @@
|
|
|
2
2
|
* ALL ENTITIES - TypeGraphQL Type Class Definition - AUTO GENERATED FILE
|
|
3
3
|
* Generated Entities and Resolvers for Server
|
|
4
4
|
*
|
|
5
|
-
* GENERATED: 4/
|
|
5
|
+
* GENERATED: 4/30/2024, 12:16:26 PM
|
|
6
6
|
*
|
|
7
7
|
* >>> DO NOT MODIFY THIS FILE!!!!!!!!!!!!
|
|
8
8
|
* >>> YOUR CHANGES WILL BE OVERWRITTEN
|
|
@@ -20,7 +20,7 @@ import { mj_core_schema } from '../config';
|
|
|
20
20
|
|
|
21
21
|
import * as mj_core_schema_server_object_types from '@memberjunction/server'
|
|
22
22
|
|
|
23
|
-
import { CompanyEntity, EmployeeEntity, UserFavoriteEntity, EmployeeCompanyIntegrationEntity, EmployeeRoleEntity, EmployeeSkillEntity, RoleEntity, SkillEntity, IntegrationURLFormatEntity, IntegrationEntity, CompanyIntegrationEntity, EntityFieldEntity, EntityEntity, UserEntity, EntityRelationshipEntity, UserRecordLogEntity, UserViewEntity, CompanyIntegrationRunEntity, CompanyIntegrationRunDetailEntity, ErrorLogEntity, ApplicationEntity, ApplicationEntityEntity, EntityPermissionEntity, UserApplicationEntityEntity, UserApplicationEntity, CompanyIntegrationRunAPILogEntity, ListEntity, ListDetailEntity, UserViewRunEntity, UserViewRunDetailEntity, WorkflowRunEntity, WorkflowEntity, WorkflowEngineEntity, RecordChangeEntity, UserRoleEntity, RowLevelSecurityFilterEntity, AuditLogEntity, AuthorizationEntity, AuthorizationRoleEntity, AuditLogTypeEntity, EntityFieldValueEntity, AIModelEntity, AIActionEntity, AIModelActionEntity, EntityAIActionEntity, AIModelTypeEntity, QueueTypeEntity, QueueEntity, QueueTaskEntity, DashboardEntity, OutputTriggerTypeEntity, OutputFormatTypeEntity, OutputDeliveryTypeEntity, ReportEntity, ReportSnapshotEntity, ResourceTypeEntity, TagEntity, TaggedItemEntity, WorkspaceEntity, WorkspaceItemEntity, DatasetEntity, DatasetItemEntity, ConversationDetailEntity, ConversationEntity, UserNotificationEntity, SchemaInfoEntity, CompanyIntegrationRecordMapEntity, RecordMergeLogEntity, RecordMergeDeletionLogEntity, QueryFieldEntity, QueryCategoryEntity, QueryEntity, QueryPermissionEntity, VectorIndexEntity, EntityDocumentTypeEntity, EntityDocumentRunEntity, VectorDatabaseEntity, EntityRecordDocumentEntity, EntityDocumentEntity, DataContextItemEntity, DataContextEntity, UserViewCategoryEntity, DashboardCategoryEntity, ReportCategoryEntity, FileStorageProviderEntity, FileEntity, FileCategoryEntity, FileEntityRecordLinkEntity, VersionInstallationEntity } from '@memberjunction/core-entities';
|
|
23
|
+
import { CompanyEntity, EmployeeEntity, UserFavoriteEntity, EmployeeCompanyIntegrationEntity, EmployeeRoleEntity, EmployeeSkillEntity, RoleEntity, SkillEntity, IntegrationURLFormatEntity, IntegrationEntity, CompanyIntegrationEntity, EntityFieldEntity, EntityEntity, UserEntity, EntityRelationshipEntity, UserRecordLogEntity, UserViewEntity, CompanyIntegrationRunEntity, CompanyIntegrationRunDetailEntity, ErrorLogEntity, ApplicationEntity, ApplicationEntityEntity, EntityPermissionEntity, UserApplicationEntityEntity, UserApplicationEntity, CompanyIntegrationRunAPILogEntity, ListEntity, ListDetailEntity, UserViewRunEntity, UserViewRunDetailEntity, WorkflowRunEntity, WorkflowEntity, WorkflowEngineEntity, RecordChangeEntity, UserRoleEntity, RowLevelSecurityFilterEntity, AuditLogEntity, AuthorizationEntity, AuthorizationRoleEntity, AuditLogTypeEntity, EntityFieldValueEntity, AIModelEntity, AIActionEntity, AIModelActionEntity, EntityAIActionEntity, AIModelTypeEntity, QueueTypeEntity, QueueEntity, QueueTaskEntity, DashboardEntity, OutputTriggerTypeEntity, OutputFormatTypeEntity, OutputDeliveryTypeEntity, ReportEntity, ReportSnapshotEntity, ResourceTypeEntity, TagEntity, TaggedItemEntity, WorkspaceEntity, WorkspaceItemEntity, DatasetEntity, DatasetItemEntity, ConversationDetailEntity, ConversationEntity, UserNotificationEntity, SchemaInfoEntity, CompanyIntegrationRecordMapEntity, RecordMergeLogEntity, RecordMergeDeletionLogEntity, QueryFieldEntity, QueryCategoryEntity, QueryEntity, QueryPermissionEntity, VectorIndexEntity, EntityDocumentTypeEntity, EntityDocumentRunEntity, VectorDatabaseEntity, EntityRecordDocumentEntity, EntityDocumentEntity, DataContextItemEntity, DataContextEntity, UserViewCategoryEntity, DashboardCategoryEntity, ReportCategoryEntity, FileStorageProviderEntity, FileEntity, FileCategoryEntity, FileEntityRecordLinkEntity, VersionInstallationEntity, DuplicateRunDetailMatchEntity, EntityDocumentSettingEntity, EntitySettingEntity, DuplicateRunEntity, DuplicateRunDetailEntity } from '@memberjunction/core-entities';
|
|
24
24
|
|
|
25
25
|
|
|
26
26
|
//****************************************************************************
|
|
@@ -2976,6 +2976,12 @@ export class Entity_ {
|
|
|
2976
2976
|
@Field(() => [mj_core_schema_server_object_types.UserViewCategory_])
|
|
2977
2977
|
UserViewCategoriesArray: mj_core_schema_server_object_types.UserViewCategory_[]; // Link to UserViewCategories
|
|
2978
2978
|
|
|
2979
|
+
@Field(() => [mj_core_schema_server_object_types.EntitySetting_])
|
|
2980
|
+
EntitySettingsArray: mj_core_schema_server_object_types.EntitySetting_[]; // Link to EntitySettings
|
|
2981
|
+
|
|
2982
|
+
@Field(() => [mj_core_schema_server_object_types.DuplicateRun_])
|
|
2983
|
+
DuplicateRunsArray: mj_core_schema_server_object_types.DuplicateRun_[]; // Link to DuplicateRuns
|
|
2984
|
+
|
|
2979
2985
|
}
|
|
2980
2986
|
|
|
2981
2987
|
//****************************************************************************
|
|
@@ -3496,6 +3502,22 @@ export class EntityResolverBase extends ResolverBase {
|
|
|
3496
3502
|
const result = this.ArrayMapFieldNamesToCodeNames('User View Categories', await dataSource.query(sSQL));
|
|
3497
3503
|
return result;
|
|
3498
3504
|
}
|
|
3505
|
+
|
|
3506
|
+
@FieldResolver(() => [mj_core_schema_server_object_types.EntitySetting_])
|
|
3507
|
+
async EntitySettingsArray(@Root() entity_: Entity_, @Ctx() { dataSource, userPayload }: AppContext, @PubSub() pubSub: PubSubEngine) {
|
|
3508
|
+
this.CheckUserReadPermissions('Entity Settings', userPayload);
|
|
3509
|
+
const sSQL = `SELECT * FROM [${Metadata.Provider.ConfigData.MJCoreSchemaName}].[vwEntitySettings] WHERE [EntityID]=${entity_.ID} ` + this.getRowLevelSecurityWhereClause('Entity Settings', userPayload, EntityPermissionType.Read, 'AND');
|
|
3510
|
+
const result = this.ArrayMapFieldNamesToCodeNames('Entity Settings', await dataSource.query(sSQL));
|
|
3511
|
+
return result;
|
|
3512
|
+
}
|
|
3513
|
+
|
|
3514
|
+
@FieldResolver(() => [mj_core_schema_server_object_types.DuplicateRun_])
|
|
3515
|
+
async DuplicateRunsArray(@Root() entity_: Entity_, @Ctx() { dataSource, userPayload }: AppContext, @PubSub() pubSub: PubSubEngine) {
|
|
3516
|
+
this.CheckUserReadPermissions('Duplicate Runs', userPayload);
|
|
3517
|
+
const sSQL = `SELECT * FROM [${Metadata.Provider.ConfigData.MJCoreSchemaName}].[vwDuplicateRuns] WHERE [EntityID]=${entity_.ID} ` + this.getRowLevelSecurityWhereClause('Duplicate Runs', userPayload, EntityPermissionType.Read, 'AND');
|
|
3518
|
+
const result = this.ArrayMapFieldNamesToCodeNames('Duplicate Runs', await dataSource.query(sSQL));
|
|
3519
|
+
return result;
|
|
3520
|
+
}
|
|
3499
3521
|
|
|
3500
3522
|
@Mutation(() => Entity_)
|
|
3501
3523
|
async CreateEntity(
|
|
@@ -3732,6 +3754,9 @@ export class User_ {
|
|
|
3732
3754
|
@Field(() => [mj_core_schema_server_object_types.QueryCategory_])
|
|
3733
3755
|
QueryCategoriesArray: mj_core_schema_server_object_types.QueryCategory_[]; // Link to QueryCategories
|
|
3734
3756
|
|
|
3757
|
+
@Field(() => [mj_core_schema_server_object_types.DuplicateRun_])
|
|
3758
|
+
DuplicateRunsArray: mj_core_schema_server_object_types.DuplicateRun_[]; // Link to DuplicateRuns
|
|
3759
|
+
|
|
3735
3760
|
}
|
|
3736
3761
|
|
|
3737
3762
|
//****************************************************************************
|
|
@@ -4051,6 +4076,14 @@ export class UserResolverBase extends ResolverBase {
|
|
|
4051
4076
|
const result = this.ArrayMapFieldNamesToCodeNames('Query Categories', await dataSource.query(sSQL));
|
|
4052
4077
|
return result;
|
|
4053
4078
|
}
|
|
4079
|
+
|
|
4080
|
+
@FieldResolver(() => [mj_core_schema_server_object_types.DuplicateRun_])
|
|
4081
|
+
async DuplicateRunsArray(@Root() user_: User_, @Ctx() { dataSource, userPayload }: AppContext, @PubSub() pubSub: PubSubEngine) {
|
|
4082
|
+
this.CheckUserReadPermissions('Duplicate Runs', userPayload);
|
|
4083
|
+
const sSQL = `SELECT * FROM [${Metadata.Provider.ConfigData.MJCoreSchemaName}].[vwDuplicateRuns] WHERE [StartedByUserID]=${user_.ID} ` + this.getRowLevelSecurityWhereClause('Duplicate Runs', userPayload, EntityPermissionType.Read, 'AND');
|
|
4084
|
+
const result = this.ArrayMapFieldNamesToCodeNames('Duplicate Runs', await dataSource.query(sSQL));
|
|
4085
|
+
return result;
|
|
4086
|
+
}
|
|
4054
4087
|
|
|
4055
4088
|
@Mutation(() => User_)
|
|
4056
4089
|
async CreateUser(
|
|
@@ -6892,6 +6925,9 @@ export class List_ {
|
|
|
6892
6925
|
@Field(() => [mj_core_schema_server_object_types.ListDetail_])
|
|
6893
6926
|
ListDetailsArray: mj_core_schema_server_object_types.ListDetail_[]; // Link to ListDetails
|
|
6894
6927
|
|
|
6928
|
+
@Field(() => [mj_core_schema_server_object_types.DuplicateRun_])
|
|
6929
|
+
DuplicateRunsArray: mj_core_schema_server_object_types.DuplicateRun_[]; // Link to DuplicateRuns
|
|
6930
|
+
|
|
6895
6931
|
}
|
|
6896
6932
|
|
|
6897
6933
|
//****************************************************************************
|
|
@@ -7005,6 +7041,14 @@ export class ListResolver extends ResolverBase {
|
|
|
7005
7041
|
const result = this.ArrayMapFieldNamesToCodeNames('List Details', await dataSource.query(sSQL));
|
|
7006
7042
|
return result;
|
|
7007
7043
|
}
|
|
7044
|
+
|
|
7045
|
+
@FieldResolver(() => [mj_core_schema_server_object_types.DuplicateRun_])
|
|
7046
|
+
async DuplicateRunsArray(@Root() list_: List_, @Ctx() { dataSource, userPayload }: AppContext, @PubSub() pubSub: PubSubEngine) {
|
|
7047
|
+
this.CheckUserReadPermissions('Duplicate Runs', userPayload);
|
|
7048
|
+
const sSQL = `SELECT * FROM [${Metadata.Provider.ConfigData.MJCoreSchemaName}].[vwDuplicateRuns] WHERE [SourceListID]=${list_.ID} ` + this.getRowLevelSecurityWhereClause('Duplicate Runs', userPayload, EntityPermissionType.Read, 'AND');
|
|
7049
|
+
const result = this.ArrayMapFieldNamesToCodeNames('Duplicate Runs', await dataSource.query(sSQL));
|
|
7050
|
+
return result;
|
|
7051
|
+
}
|
|
7008
7052
|
|
|
7009
7053
|
@Mutation(() => List_)
|
|
7010
7054
|
async CreateList(
|
|
@@ -9269,7 +9313,7 @@ export class EntityFieldValueResolver extends ResolverBase {
|
|
|
9269
9313
|
//****************************************************************************
|
|
9270
9314
|
// ENTITY CLASS for AI Models
|
|
9271
9315
|
//****************************************************************************
|
|
9272
|
-
@ObjectType({ description: 'Catalog of all AI Models configured in the system
|
|
9316
|
+
@ObjectType({ description: 'Catalog of all AI Models configured in the system' })
|
|
9273
9317
|
export class AIModel_ {
|
|
9274
9318
|
@Field(() => Int)
|
|
9275
9319
|
ID: number;
|
|
@@ -9330,6 +9374,9 @@ export class AIModel_ {
|
|
|
9330
9374
|
@Field(() => [mj_core_schema_server_object_types.VectorIndex_])
|
|
9331
9375
|
VectorIndexesArray: mj_core_schema_server_object_types.VectorIndex_[]; // Link to VectorIndexes
|
|
9332
9376
|
|
|
9377
|
+
@Field(() => [mj_core_schema_server_object_types.EntityDocument_])
|
|
9378
|
+
EntityDocumentsArray: mj_core_schema_server_object_types.EntityDocument_[]; // Link to EntityDocuments
|
|
9379
|
+
|
|
9333
9380
|
}
|
|
9334
9381
|
|
|
9335
9382
|
//****************************************************************************
|
|
@@ -9459,6 +9506,14 @@ export class AIModelResolver extends ResolverBase {
|
|
|
9459
9506
|
const result = this.ArrayMapFieldNamesToCodeNames('Vector Indexes', await dataSource.query(sSQL));
|
|
9460
9507
|
return result;
|
|
9461
9508
|
}
|
|
9509
|
+
|
|
9510
|
+
@FieldResolver(() => [mj_core_schema_server_object_types.EntityDocument_])
|
|
9511
|
+
async EntityDocumentsArray(@Root() aimodel_: AIModel_, @Ctx() { dataSource, userPayload }: AppContext, @PubSub() pubSub: PubSubEngine) {
|
|
9512
|
+
this.CheckUserReadPermissions('Entity Documents', userPayload);
|
|
9513
|
+
const sSQL = `SELECT * FROM [${Metadata.Provider.ConfigData.MJCoreSchemaName}].[vwEntityDocuments] WHERE [AIModelID]=${aimodel_.ID} ` + this.getRowLevelSecurityWhereClause('Entity Documents', userPayload, EntityPermissionType.Read, 'AND');
|
|
9514
|
+
const result = this.ArrayMapFieldNamesToCodeNames('Entity Documents', await dataSource.query(sSQL));
|
|
9515
|
+
return result;
|
|
9516
|
+
}
|
|
9462
9517
|
|
|
9463
9518
|
@Mutation(() => AIModel_)
|
|
9464
9519
|
async UpdateAIModel(
|
|
@@ -13053,8 +13108,9 @@ export class Conversation_ {
|
|
|
13053
13108
|
@Field(() => Int, {nullable: true})
|
|
13054
13109
|
LinkedEntityID?: number;
|
|
13055
13110
|
|
|
13056
|
-
@Field(
|
|
13057
|
-
|
|
13111
|
+
@Field({nullable: true})
|
|
13112
|
+
@MaxLength(1000)
|
|
13113
|
+
LinkedRecordID?: string;
|
|
13058
13114
|
|
|
13059
13115
|
@Field(() => Int, {nullable: true})
|
|
13060
13116
|
DataContextID?: number;
|
|
@@ -13109,8 +13165,8 @@ export class CreateConversationInput {
|
|
|
13109
13165
|
@Field(() => Int, { nullable: true })
|
|
13110
13166
|
LinkedEntityID: number;
|
|
13111
13167
|
|
|
13112
|
-
@Field(
|
|
13113
|
-
LinkedRecordID:
|
|
13168
|
+
@Field({ nullable: true })
|
|
13169
|
+
LinkedRecordID: string;
|
|
13114
13170
|
|
|
13115
13171
|
@Field(() => Int, { nullable: true })
|
|
13116
13172
|
DataContextID: number;
|
|
@@ -13146,8 +13202,8 @@ export class UpdateConversationInput {
|
|
|
13146
13202
|
@Field(() => Int, { nullable: true })
|
|
13147
13203
|
LinkedEntityID: number;
|
|
13148
13204
|
|
|
13149
|
-
@Field(
|
|
13150
|
-
LinkedRecordID:
|
|
13205
|
+
@Field({ nullable: true })
|
|
13206
|
+
LinkedRecordID: string;
|
|
13151
13207
|
|
|
13152
13208
|
@Field(() => Int, { nullable: true })
|
|
13153
13209
|
DataContextID: number;
|
|
@@ -14002,6 +14058,9 @@ export class RecordMergeLog_ {
|
|
|
14002
14058
|
@Field(() => [mj_core_schema_server_object_types.RecordMergeDeletionLog_])
|
|
14003
14059
|
RecordMergeDeletionLogsArray: mj_core_schema_server_object_types.RecordMergeDeletionLog_[]; // Link to RecordMergeDeletionLogs
|
|
14004
14060
|
|
|
14061
|
+
@Field(() => [mj_core_schema_server_object_types.DuplicateRunDetailMatch_])
|
|
14062
|
+
DuplicateRunDetailMatchesArray: mj_core_schema_server_object_types.DuplicateRunDetailMatch_[]; // Link to DuplicateRunDetailMatches
|
|
14063
|
+
|
|
14005
14064
|
}
|
|
14006
14065
|
|
|
14007
14066
|
//****************************************************************************
|
|
@@ -14139,6 +14198,14 @@ export class RecordMergeLogResolver extends ResolverBase {
|
|
|
14139
14198
|
const result = this.ArrayMapFieldNamesToCodeNames('Record Merge Deletion Logs', await dataSource.query(sSQL));
|
|
14140
14199
|
return result;
|
|
14141
14200
|
}
|
|
14201
|
+
|
|
14202
|
+
@FieldResolver(() => [mj_core_schema_server_object_types.DuplicateRunDetailMatch_])
|
|
14203
|
+
async DuplicateRunDetailMatchesArray(@Root() recordmergelog_: RecordMergeLog_, @Ctx() { dataSource, userPayload }: AppContext, @PubSub() pubSub: PubSubEngine) {
|
|
14204
|
+
this.CheckUserReadPermissions('Duplicate Run Detail Matches', userPayload);
|
|
14205
|
+
const sSQL = `SELECT * FROM [${Metadata.Provider.ConfigData.MJCoreSchemaName}].[vwDuplicateRunDetailMatches] WHERE [RecordMergeLogID]=${recordmergelog_.ID} ` + this.getRowLevelSecurityWhereClause('Duplicate Run Detail Matches', userPayload, EntityPermissionType.Read, 'AND');
|
|
14206
|
+
const result = this.ArrayMapFieldNamesToCodeNames('Duplicate Run Detail Matches', await dataSource.query(sSQL));
|
|
14207
|
+
return result;
|
|
14208
|
+
}
|
|
14142
14209
|
|
|
14143
14210
|
@Mutation(() => RecordMergeLog_)
|
|
14144
14211
|
async CreateRecordMergeLog(
|
|
@@ -16353,6 +16420,18 @@ export class EntityDocument_ {
|
|
|
16353
16420
|
@Field({nullable: true})
|
|
16354
16421
|
Template?: string;
|
|
16355
16422
|
|
|
16423
|
+
@Field(() => Int)
|
|
16424
|
+
VectorDatabaseID: number;
|
|
16425
|
+
|
|
16426
|
+
@Field(() => Int)
|
|
16427
|
+
AIModelID: number;
|
|
16428
|
+
|
|
16429
|
+
@Field(() => Float, {description: 'Value between 0 and 1 that determines what is considered a potential matching record. Value must be <= AbsoluteMatchThreshold. This is primarily used for duplicate detection but can be used for other applications as well where matching is relevant.'})
|
|
16430
|
+
PotentialMatchThreshold: number;
|
|
16431
|
+
|
|
16432
|
+
@Field(() => Float, {description: 'Value between 0 and 1 that determines what is considered an absolute matching record. Value must be >= PotentialMatchThreshold. This is primarily used for duplicate detection but can be used for other applications as well where matching is relevant.'})
|
|
16433
|
+
AbsoluteMatchThreshold: number;
|
|
16434
|
+
|
|
16356
16435
|
@Field()
|
|
16357
16436
|
@MaxLength(8)
|
|
16358
16437
|
CreatedAt: Date;
|
|
@@ -16361,12 +16440,6 @@ export class EntityDocument_ {
|
|
|
16361
16440
|
@MaxLength(8)
|
|
16362
16441
|
UpdatedAt: Date;
|
|
16363
16442
|
|
|
16364
|
-
@Field(() => Int)
|
|
16365
|
-
VectorDatabaseID: number;
|
|
16366
|
-
|
|
16367
|
-
@Field(() => Int)
|
|
16368
|
-
AIModelID: number;
|
|
16369
|
-
|
|
16370
16443
|
@Field()
|
|
16371
16444
|
@MaxLength(510)
|
|
16372
16445
|
Entity: string;
|
|
@@ -16378,6 +16451,9 @@ export class EntityDocument_ {
|
|
|
16378
16451
|
@Field(() => [mj_core_schema_server_object_types.EntityDocumentRun_])
|
|
16379
16452
|
EntityDocumentRunsArray: mj_core_schema_server_object_types.EntityDocumentRun_[]; // Link to EntityDocumentRuns
|
|
16380
16453
|
|
|
16454
|
+
@Field(() => [mj_core_schema_server_object_types.EntityDocumentSetting_])
|
|
16455
|
+
EntityDocumentSettingsArray: mj_core_schema_server_object_types.EntityDocumentSetting_[]; // Link to EntityDocumentSettings
|
|
16456
|
+
|
|
16381
16457
|
}
|
|
16382
16458
|
|
|
16383
16459
|
//****************************************************************************
|
|
@@ -16405,6 +16481,12 @@ export class CreateEntityDocumentInput {
|
|
|
16405
16481
|
|
|
16406
16482
|
@Field(() => Int)
|
|
16407
16483
|
AIModelID: number;
|
|
16484
|
+
|
|
16485
|
+
@Field(() => Float)
|
|
16486
|
+
PotentialMatchThreshold: number;
|
|
16487
|
+
|
|
16488
|
+
@Field(() => Float)
|
|
16489
|
+
AbsoluteMatchThreshold: number;
|
|
16408
16490
|
}
|
|
16409
16491
|
|
|
16410
16492
|
|
|
@@ -16436,6 +16518,12 @@ export class UpdateEntityDocumentInput {
|
|
|
16436
16518
|
|
|
16437
16519
|
@Field(() => Int)
|
|
16438
16520
|
AIModelID: number;
|
|
16521
|
+
|
|
16522
|
+
@Field(() => Float)
|
|
16523
|
+
PotentialMatchThreshold: number;
|
|
16524
|
+
|
|
16525
|
+
@Field(() => Float)
|
|
16526
|
+
AbsoluteMatchThreshold: number;
|
|
16439
16527
|
}
|
|
16440
16528
|
|
|
16441
16529
|
//****************************************************************************
|
|
@@ -16497,6 +16585,14 @@ export class EntityDocumentResolver extends ResolverBase {
|
|
|
16497
16585
|
const result = this.ArrayMapFieldNamesToCodeNames('Entity Document Runs', await dataSource.query(sSQL));
|
|
16498
16586
|
return result;
|
|
16499
16587
|
}
|
|
16588
|
+
|
|
16589
|
+
@FieldResolver(() => [mj_core_schema_server_object_types.EntityDocumentSetting_])
|
|
16590
|
+
async EntityDocumentSettingsArray(@Root() entitydocument_: EntityDocument_, @Ctx() { dataSource, userPayload }: AppContext, @PubSub() pubSub: PubSubEngine) {
|
|
16591
|
+
this.CheckUserReadPermissions('Entity Document Settings', userPayload);
|
|
16592
|
+
const sSQL = `SELECT * FROM [${Metadata.Provider.ConfigData.MJCoreSchemaName}].[vwEntityDocumentSettings] WHERE [EntityDocumentID]=${entitydocument_.ID} ` + this.getRowLevelSecurityWhereClause('Entity Document Settings', userPayload, EntityPermissionType.Read, 'AND');
|
|
16593
|
+
const result = this.ArrayMapFieldNamesToCodeNames('Entity Document Settings', await dataSource.query(sSQL));
|
|
16594
|
+
return result;
|
|
16595
|
+
}
|
|
16500
16596
|
|
|
16501
16597
|
@Mutation(() => EntityDocument_)
|
|
16502
16598
|
async CreateEntityDocument(
|
|
@@ -18876,4 +18972,1116 @@ export class VersionInstallationResolver extends ResolverBase {
|
|
|
18876
18972
|
const i = input, d = dataSource; // prevent error
|
|
18877
18973
|
}
|
|
18878
18974
|
|
|
18975
|
+
}
|
|
18976
|
+
|
|
18977
|
+
//****************************************************************************
|
|
18978
|
+
// ENTITY CLASS for Duplicate Run Detail Matches
|
|
18979
|
+
//****************************************************************************
|
|
18980
|
+
@ObjectType()
|
|
18981
|
+
export class DuplicateRunDetailMatch_ {
|
|
18982
|
+
@Field(() => Int)
|
|
18983
|
+
ID: number;
|
|
18984
|
+
|
|
18985
|
+
@Field(() => Int)
|
|
18986
|
+
DuplicateRunDetailID: number;
|
|
18987
|
+
|
|
18988
|
+
@Field()
|
|
18989
|
+
@MaxLength(1000)
|
|
18990
|
+
MatchRecordID: string;
|
|
18991
|
+
|
|
18992
|
+
@Field(() => Float, {description: 'Value between 0 and 1 designating the computed probability of a match'})
|
|
18993
|
+
MatchProbability: number;
|
|
18994
|
+
|
|
18995
|
+
@Field()
|
|
18996
|
+
@MaxLength(8)
|
|
18997
|
+
MatchedAt: Date;
|
|
18998
|
+
|
|
18999
|
+
@Field()
|
|
19000
|
+
@MaxLength(40)
|
|
19001
|
+
Action: string;
|
|
19002
|
+
|
|
19003
|
+
@Field()
|
|
19004
|
+
@MaxLength(40)
|
|
19005
|
+
ApprovalStatus: string;
|
|
19006
|
+
|
|
19007
|
+
@Field()
|
|
19008
|
+
@MaxLength(40)
|
|
19009
|
+
MergeStatus: string;
|
|
19010
|
+
|
|
19011
|
+
@Field()
|
|
19012
|
+
@MaxLength(8)
|
|
19013
|
+
MergedAt: Date;
|
|
19014
|
+
|
|
19015
|
+
@Field(() => Int, {nullable: true})
|
|
19016
|
+
RecordMergeLogID?: number;
|
|
19017
|
+
|
|
19018
|
+
@Field()
|
|
19019
|
+
@MaxLength(8)
|
|
19020
|
+
CreatedAt: Date;
|
|
19021
|
+
|
|
19022
|
+
@Field()
|
|
19023
|
+
@MaxLength(8)
|
|
19024
|
+
UpdatedAt: Date;
|
|
19025
|
+
|
|
19026
|
+
}
|
|
19027
|
+
|
|
19028
|
+
//****************************************************************************
|
|
19029
|
+
// INPUT TYPE for Duplicate Run Detail Matches
|
|
19030
|
+
//****************************************************************************
|
|
19031
|
+
@InputType()
|
|
19032
|
+
export class CreateDuplicateRunDetailMatchInput {
|
|
19033
|
+
@Field(() => Int)
|
|
19034
|
+
DuplicateRunDetailID: number;
|
|
19035
|
+
|
|
19036
|
+
@Field()
|
|
19037
|
+
MatchRecordID: string;
|
|
19038
|
+
|
|
19039
|
+
@Field(() => Float)
|
|
19040
|
+
MatchProbability: number;
|
|
19041
|
+
|
|
19042
|
+
@Field()
|
|
19043
|
+
MatchedAt: Date;
|
|
19044
|
+
|
|
19045
|
+
@Field()
|
|
19046
|
+
Action: string;
|
|
19047
|
+
|
|
19048
|
+
@Field()
|
|
19049
|
+
ApprovalStatus: string;
|
|
19050
|
+
|
|
19051
|
+
@Field()
|
|
19052
|
+
MergeStatus: string;
|
|
19053
|
+
|
|
19054
|
+
@Field()
|
|
19055
|
+
MergedAt: Date;
|
|
19056
|
+
|
|
19057
|
+
@Field(() => Int, { nullable: true })
|
|
19058
|
+
RecordMergeLogID: number;
|
|
19059
|
+
}
|
|
19060
|
+
|
|
19061
|
+
|
|
19062
|
+
//****************************************************************************
|
|
19063
|
+
// INPUT TYPE for Duplicate Run Detail Matches
|
|
19064
|
+
//****************************************************************************
|
|
19065
|
+
@InputType()
|
|
19066
|
+
export class UpdateDuplicateRunDetailMatchInput {
|
|
19067
|
+
@Field(() => Int)
|
|
19068
|
+
ID: number;
|
|
19069
|
+
|
|
19070
|
+
@Field(() => Int)
|
|
19071
|
+
DuplicateRunDetailID: number;
|
|
19072
|
+
|
|
19073
|
+
@Field()
|
|
19074
|
+
MatchRecordID: string;
|
|
19075
|
+
|
|
19076
|
+
@Field(() => Float)
|
|
19077
|
+
MatchProbability: number;
|
|
19078
|
+
|
|
19079
|
+
@Field()
|
|
19080
|
+
MatchedAt: Date;
|
|
19081
|
+
|
|
19082
|
+
@Field()
|
|
19083
|
+
Action: string;
|
|
19084
|
+
|
|
19085
|
+
@Field()
|
|
19086
|
+
ApprovalStatus: string;
|
|
19087
|
+
|
|
19088
|
+
@Field()
|
|
19089
|
+
MergeStatus: string;
|
|
19090
|
+
|
|
19091
|
+
@Field()
|
|
19092
|
+
MergedAt: Date;
|
|
19093
|
+
|
|
19094
|
+
@Field(() => Int, { nullable: true })
|
|
19095
|
+
RecordMergeLogID: number;
|
|
19096
|
+
}
|
|
19097
|
+
|
|
19098
|
+
//****************************************************************************
|
|
19099
|
+
// RESOLVER for Duplicate Run Detail Matches
|
|
19100
|
+
//****************************************************************************
|
|
19101
|
+
@ObjectType()
|
|
19102
|
+
export class RunDuplicateRunDetailMatchViewResult {
|
|
19103
|
+
@Field(() => [DuplicateRunDetailMatch_])
|
|
19104
|
+
Results: DuplicateRunDetailMatch_[];
|
|
19105
|
+
|
|
19106
|
+
@Field(() => Int, {nullable: true})
|
|
19107
|
+
UserViewRunID?: number;
|
|
19108
|
+
|
|
19109
|
+
@Field(() => Int, {nullable: true})
|
|
19110
|
+
RowCount: number;
|
|
19111
|
+
|
|
19112
|
+
@Field(() => Int, {nullable: true})
|
|
19113
|
+
TotalRowCount: number;
|
|
19114
|
+
|
|
19115
|
+
@Field(() => Int, {nullable: true})
|
|
19116
|
+
ExecutionTime: number;
|
|
19117
|
+
|
|
19118
|
+
@Field({nullable: true})
|
|
19119
|
+
ErrorMessage?: string;
|
|
19120
|
+
|
|
19121
|
+
@Field(() => Boolean, {nullable: false})
|
|
19122
|
+
Success: boolean;
|
|
19123
|
+
}
|
|
19124
|
+
|
|
19125
|
+
@Resolver(DuplicateRunDetailMatch_)
|
|
19126
|
+
export class DuplicateRunDetailMatchResolver extends ResolverBase {
|
|
19127
|
+
@Query(() => RunDuplicateRunDetailMatchViewResult)
|
|
19128
|
+
async RunDuplicateRunDetailMatchViewByID(@Arg('input', () => RunViewByIDInput) input: RunViewByIDInput, @Ctx() { dataSource, userPayload }: AppContext, @PubSub() pubSub: PubSubEngine) {
|
|
19129
|
+
return super.RunViewByIDGeneric(input, dataSource, userPayload, pubSub);
|
|
19130
|
+
}
|
|
19131
|
+
|
|
19132
|
+
@Query(() => RunDuplicateRunDetailMatchViewResult)
|
|
19133
|
+
async RunDuplicateRunDetailMatchViewByName(@Arg('input', () => RunViewByNameInput) input: RunViewByNameInput, @Ctx() { dataSource, userPayload }: AppContext, @PubSub() pubSub: PubSubEngine) {
|
|
19134
|
+
return super.RunViewByNameGeneric(input, dataSource, userPayload, pubSub);
|
|
19135
|
+
}
|
|
19136
|
+
|
|
19137
|
+
@Query(() => RunDuplicateRunDetailMatchViewResult)
|
|
19138
|
+
async RunDuplicateRunDetailMatchDynamicView(@Arg('input', () => RunDynamicViewInput) input: RunDynamicViewInput, @Ctx() { dataSource, userPayload }: AppContext, @PubSub() pubSub: PubSubEngine) {
|
|
19139
|
+
input.EntityName = 'Duplicate Run Detail Matches';
|
|
19140
|
+
return super.RunDynamicViewGeneric(input, dataSource, userPayload, pubSub);
|
|
19141
|
+
}
|
|
19142
|
+
@Query(() => DuplicateRunDetailMatch_, { nullable: true })
|
|
19143
|
+
async DuplicateRunDetailMatch(@Arg('ID', () => Int) ID: number, @Ctx() { dataSource, userPayload }: AppContext, @PubSub() pubSub: PubSubEngine): Promise<DuplicateRunDetailMatch_ | null> {
|
|
19144
|
+
this.CheckUserReadPermissions('Duplicate Run Detail Matches', userPayload);
|
|
19145
|
+
const sSQL = `SELECT * FROM [${Metadata.Provider.ConfigData.MJCoreSchemaName}].[vwDuplicateRunDetailMatches] WHERE [ID]=${ID} ` + this.getRowLevelSecurityWhereClause('Duplicate Run Detail Matches', userPayload, EntityPermissionType.Read, 'AND');
|
|
19146
|
+
const result = this.MapFieldNamesToCodeNames('Duplicate Run Detail Matches', await dataSource.query(sSQL).then((r) => r && r.length > 0 ? r[0] : {}))
|
|
19147
|
+
return result;
|
|
19148
|
+
}
|
|
19149
|
+
|
|
19150
|
+
@Mutation(() => DuplicateRunDetailMatch_)
|
|
19151
|
+
async CreateDuplicateRunDetailMatch(
|
|
19152
|
+
@Arg('input', () => CreateDuplicateRunDetailMatchInput) input: CreateDuplicateRunDetailMatchInput,
|
|
19153
|
+
@Ctx() { dataSource, userPayload }: AppContext,
|
|
19154
|
+
@PubSub() pubSub: PubSubEngine
|
|
19155
|
+
) {
|
|
19156
|
+
if (await this.BeforeCreate(dataSource, input)) { // fire event and proceed if it wasn't cancelled
|
|
19157
|
+
const entityObject = <DuplicateRunDetailMatchEntity>await new Metadata().GetEntityObject('Duplicate Run Detail Matches', this.GetUserFromPayload(userPayload));
|
|
19158
|
+
await entityObject.NewRecord();
|
|
19159
|
+
entityObject.SetMany(input);
|
|
19160
|
+
if (await entityObject.Save()) {
|
|
19161
|
+
// save worked, fire the AfterCreate event and then return all the data
|
|
19162
|
+
await this.AfterCreate(dataSource, input); // fire event
|
|
19163
|
+
return entityObject.GetAll();
|
|
19164
|
+
}
|
|
19165
|
+
else
|
|
19166
|
+
// save failed, return null
|
|
19167
|
+
return null;
|
|
19168
|
+
}
|
|
19169
|
+
else
|
|
19170
|
+
return null;
|
|
19171
|
+
}
|
|
19172
|
+
|
|
19173
|
+
// Before/After CREATE Event Hooks for Sub-Classes to Override
|
|
19174
|
+
protected async BeforeCreate(dataSource: DataSource, input: CreateDuplicateRunDetailMatchInput): Promise<boolean> {
|
|
19175
|
+
return true;
|
|
19176
|
+
}
|
|
19177
|
+
protected async AfterCreate(dataSource: DataSource, input: CreateDuplicateRunDetailMatchInput) {
|
|
19178
|
+
}
|
|
19179
|
+
|
|
19180
|
+
@Mutation(() => DuplicateRunDetailMatch_)
|
|
19181
|
+
async UpdateDuplicateRunDetailMatch(
|
|
19182
|
+
@Arg('input', () => UpdateDuplicateRunDetailMatchInput) input: UpdateDuplicateRunDetailMatchInput,
|
|
19183
|
+
@Ctx() { dataSource, userPayload }: AppContext,
|
|
19184
|
+
@PubSub() pubSub: PubSubEngine
|
|
19185
|
+
) {
|
|
19186
|
+
if (await this.BeforeUpdate(dataSource, input)) { // fire event and proceed if it wasn't cancelled
|
|
19187
|
+
const entityObject = <DuplicateRunDetailMatchEntity>await new Metadata().GetEntityObject('Duplicate Run Detail Matches', this.GetUserFromPayload(userPayload));
|
|
19188
|
+
entityObject.LoadFromData(input) // using the input instead of loading from DB because TrackChanges is turned off for Duplicate Run Detail Matches
|
|
19189
|
+
|
|
19190
|
+
if (await entityObject.Save({ IgnoreDirtyState: true /*flag used because of LoadFromData() call above*/ })) {
|
|
19191
|
+
// save worked, fire afterevent and return all the data
|
|
19192
|
+
await this.AfterUpdate(dataSource, input); // fire event
|
|
19193
|
+
return entityObject.GetAll();
|
|
19194
|
+
}
|
|
19195
|
+
else
|
|
19196
|
+
return null; // save failed, return null
|
|
19197
|
+
}
|
|
19198
|
+
else
|
|
19199
|
+
return null;
|
|
19200
|
+
}
|
|
19201
|
+
|
|
19202
|
+
// Before/After UPDATE Event Hooks for Sub-Classes to Override
|
|
19203
|
+
protected async BeforeUpdate(dataSource: DataSource, input: UpdateDuplicateRunDetailMatchInput): Promise<boolean> {
|
|
19204
|
+
const i = input, d = dataSource; // prevent error
|
|
19205
|
+
return true;
|
|
19206
|
+
}
|
|
19207
|
+
protected async AfterUpdate(dataSource: DataSource, input: UpdateDuplicateRunDetailMatchInput) {
|
|
19208
|
+
const i = input, d = dataSource; // prevent error
|
|
19209
|
+
}
|
|
19210
|
+
|
|
19211
|
+
}
|
|
19212
|
+
|
|
19213
|
+
//****************************************************************************
|
|
19214
|
+
// ENTITY CLASS for Entity Document Settings
|
|
19215
|
+
//****************************************************************************
|
|
19216
|
+
@ObjectType()
|
|
19217
|
+
export class EntityDocumentSetting_ {
|
|
19218
|
+
@Field(() => Int)
|
|
19219
|
+
ID: number;
|
|
19220
|
+
|
|
19221
|
+
@Field(() => Int)
|
|
19222
|
+
EntityDocumentID: number;
|
|
19223
|
+
|
|
19224
|
+
@Field()
|
|
19225
|
+
@MaxLength(200)
|
|
19226
|
+
Name: string;
|
|
19227
|
+
|
|
19228
|
+
@Field()
|
|
19229
|
+
Value: string;
|
|
19230
|
+
|
|
19231
|
+
@Field({nullable: true})
|
|
19232
|
+
Comments?: string;
|
|
19233
|
+
|
|
19234
|
+
@Field()
|
|
19235
|
+
@MaxLength(8)
|
|
19236
|
+
CreatedAt: Date;
|
|
19237
|
+
|
|
19238
|
+
@Field()
|
|
19239
|
+
@MaxLength(8)
|
|
19240
|
+
UpdatedAt: Date;
|
|
19241
|
+
|
|
19242
|
+
@Field()
|
|
19243
|
+
@MaxLength(500)
|
|
19244
|
+
EntityDocument: string;
|
|
19245
|
+
|
|
19246
|
+
}
|
|
19247
|
+
|
|
19248
|
+
//****************************************************************************
|
|
19249
|
+
// INPUT TYPE for Entity Document Settings
|
|
19250
|
+
//****************************************************************************
|
|
19251
|
+
@InputType()
|
|
19252
|
+
export class CreateEntityDocumentSettingInput {
|
|
19253
|
+
@Field(() => Int)
|
|
19254
|
+
EntityDocumentID: number;
|
|
19255
|
+
|
|
19256
|
+
@Field()
|
|
19257
|
+
Name: string;
|
|
19258
|
+
|
|
19259
|
+
@Field()
|
|
19260
|
+
Value: string;
|
|
19261
|
+
|
|
19262
|
+
@Field({ nullable: true })
|
|
19263
|
+
Comments: string;
|
|
19264
|
+
}
|
|
19265
|
+
|
|
19266
|
+
|
|
19267
|
+
//****************************************************************************
|
|
19268
|
+
// INPUT TYPE for Entity Document Settings
|
|
19269
|
+
//****************************************************************************
|
|
19270
|
+
@InputType()
|
|
19271
|
+
export class UpdateEntityDocumentSettingInput {
|
|
19272
|
+
@Field(() => Int)
|
|
19273
|
+
ID: number;
|
|
19274
|
+
|
|
19275
|
+
@Field(() => Int)
|
|
19276
|
+
EntityDocumentID: number;
|
|
19277
|
+
|
|
19278
|
+
@Field()
|
|
19279
|
+
Name: string;
|
|
19280
|
+
|
|
19281
|
+
@Field()
|
|
19282
|
+
Value: string;
|
|
19283
|
+
|
|
19284
|
+
@Field({ nullable: true })
|
|
19285
|
+
Comments: string;
|
|
19286
|
+
}
|
|
19287
|
+
|
|
19288
|
+
//****************************************************************************
|
|
19289
|
+
// RESOLVER for Entity Document Settings
|
|
19290
|
+
//****************************************************************************
|
|
19291
|
+
@ObjectType()
|
|
19292
|
+
export class RunEntityDocumentSettingViewResult {
|
|
19293
|
+
@Field(() => [EntityDocumentSetting_])
|
|
19294
|
+
Results: EntityDocumentSetting_[];
|
|
19295
|
+
|
|
19296
|
+
@Field(() => Int, {nullable: true})
|
|
19297
|
+
UserViewRunID?: number;
|
|
19298
|
+
|
|
19299
|
+
@Field(() => Int, {nullable: true})
|
|
19300
|
+
RowCount: number;
|
|
19301
|
+
|
|
19302
|
+
@Field(() => Int, {nullable: true})
|
|
19303
|
+
TotalRowCount: number;
|
|
19304
|
+
|
|
19305
|
+
@Field(() => Int, {nullable: true})
|
|
19306
|
+
ExecutionTime: number;
|
|
19307
|
+
|
|
19308
|
+
@Field({nullable: true})
|
|
19309
|
+
ErrorMessage?: string;
|
|
19310
|
+
|
|
19311
|
+
@Field(() => Boolean, {nullable: false})
|
|
19312
|
+
Success: boolean;
|
|
19313
|
+
}
|
|
19314
|
+
|
|
19315
|
+
@Resolver(EntityDocumentSetting_)
|
|
19316
|
+
export class EntityDocumentSettingResolver extends ResolverBase {
|
|
19317
|
+
@Query(() => RunEntityDocumentSettingViewResult)
|
|
19318
|
+
async RunEntityDocumentSettingViewByID(@Arg('input', () => RunViewByIDInput) input: RunViewByIDInput, @Ctx() { dataSource, userPayload }: AppContext, @PubSub() pubSub: PubSubEngine) {
|
|
19319
|
+
return super.RunViewByIDGeneric(input, dataSource, userPayload, pubSub);
|
|
19320
|
+
}
|
|
19321
|
+
|
|
19322
|
+
@Query(() => RunEntityDocumentSettingViewResult)
|
|
19323
|
+
async RunEntityDocumentSettingViewByName(@Arg('input', () => RunViewByNameInput) input: RunViewByNameInput, @Ctx() { dataSource, userPayload }: AppContext, @PubSub() pubSub: PubSubEngine) {
|
|
19324
|
+
return super.RunViewByNameGeneric(input, dataSource, userPayload, pubSub);
|
|
19325
|
+
}
|
|
19326
|
+
|
|
19327
|
+
@Query(() => RunEntityDocumentSettingViewResult)
|
|
19328
|
+
async RunEntityDocumentSettingDynamicView(@Arg('input', () => RunDynamicViewInput) input: RunDynamicViewInput, @Ctx() { dataSource, userPayload }: AppContext, @PubSub() pubSub: PubSubEngine) {
|
|
19329
|
+
input.EntityName = 'Entity Document Settings';
|
|
19330
|
+
return super.RunDynamicViewGeneric(input, dataSource, userPayload, pubSub);
|
|
19331
|
+
}
|
|
19332
|
+
@Query(() => EntityDocumentSetting_, { nullable: true })
|
|
19333
|
+
async EntityDocumentSetting(@Arg('ID', () => Int) ID: number, @Ctx() { dataSource, userPayload }: AppContext, @PubSub() pubSub: PubSubEngine): Promise<EntityDocumentSetting_ | null> {
|
|
19334
|
+
this.CheckUserReadPermissions('Entity Document Settings', userPayload);
|
|
19335
|
+
const sSQL = `SELECT * FROM [${Metadata.Provider.ConfigData.MJCoreSchemaName}].[vwEntityDocumentSettings] WHERE [ID]=${ID} ` + this.getRowLevelSecurityWhereClause('Entity Document Settings', userPayload, EntityPermissionType.Read, 'AND');
|
|
19336
|
+
const result = this.MapFieldNamesToCodeNames('Entity Document Settings', await dataSource.query(sSQL).then((r) => r && r.length > 0 ? r[0] : {}))
|
|
19337
|
+
return result;
|
|
19338
|
+
}
|
|
19339
|
+
|
|
19340
|
+
@Mutation(() => EntityDocumentSetting_)
|
|
19341
|
+
async CreateEntityDocumentSetting(
|
|
19342
|
+
@Arg('input', () => CreateEntityDocumentSettingInput) input: CreateEntityDocumentSettingInput,
|
|
19343
|
+
@Ctx() { dataSource, userPayload }: AppContext,
|
|
19344
|
+
@PubSub() pubSub: PubSubEngine
|
|
19345
|
+
) {
|
|
19346
|
+
if (await this.BeforeCreate(dataSource, input)) { // fire event and proceed if it wasn't cancelled
|
|
19347
|
+
const entityObject = <EntityDocumentSettingEntity>await new Metadata().GetEntityObject('Entity Document Settings', this.GetUserFromPayload(userPayload));
|
|
19348
|
+
await entityObject.NewRecord();
|
|
19349
|
+
entityObject.SetMany(input);
|
|
19350
|
+
if (await entityObject.Save()) {
|
|
19351
|
+
// save worked, fire the AfterCreate event and then return all the data
|
|
19352
|
+
await this.AfterCreate(dataSource, input); // fire event
|
|
19353
|
+
return entityObject.GetAll();
|
|
19354
|
+
}
|
|
19355
|
+
else
|
|
19356
|
+
// save failed, return null
|
|
19357
|
+
return null;
|
|
19358
|
+
}
|
|
19359
|
+
else
|
|
19360
|
+
return null;
|
|
19361
|
+
}
|
|
19362
|
+
|
|
19363
|
+
// Before/After CREATE Event Hooks for Sub-Classes to Override
|
|
19364
|
+
protected async BeforeCreate(dataSource: DataSource, input: CreateEntityDocumentSettingInput): Promise<boolean> {
|
|
19365
|
+
return true;
|
|
19366
|
+
}
|
|
19367
|
+
protected async AfterCreate(dataSource: DataSource, input: CreateEntityDocumentSettingInput) {
|
|
19368
|
+
}
|
|
19369
|
+
|
|
19370
|
+
@Mutation(() => EntityDocumentSetting_)
|
|
19371
|
+
async UpdateEntityDocumentSetting(
|
|
19372
|
+
@Arg('input', () => UpdateEntityDocumentSettingInput) input: UpdateEntityDocumentSettingInput,
|
|
19373
|
+
@Ctx() { dataSource, userPayload }: AppContext,
|
|
19374
|
+
@PubSub() pubSub: PubSubEngine
|
|
19375
|
+
) {
|
|
19376
|
+
if (await this.BeforeUpdate(dataSource, input)) { // fire event and proceed if it wasn't cancelled
|
|
19377
|
+
const entityObject = <EntityDocumentSettingEntity>await new Metadata().GetEntityObject('Entity Document Settings', this.GetUserFromPayload(userPayload));
|
|
19378
|
+
entityObject.LoadFromData(input) // using the input instead of loading from DB because TrackChanges is turned off for Entity Document Settings
|
|
19379
|
+
|
|
19380
|
+
if (await entityObject.Save({ IgnoreDirtyState: true /*flag used because of LoadFromData() call above*/ })) {
|
|
19381
|
+
// save worked, fire afterevent and return all the data
|
|
19382
|
+
await this.AfterUpdate(dataSource, input); // fire event
|
|
19383
|
+
return entityObject.GetAll();
|
|
19384
|
+
}
|
|
19385
|
+
else
|
|
19386
|
+
return null; // save failed, return null
|
|
19387
|
+
}
|
|
19388
|
+
else
|
|
19389
|
+
return null;
|
|
19390
|
+
}
|
|
19391
|
+
|
|
19392
|
+
// Before/After UPDATE Event Hooks for Sub-Classes to Override
|
|
19393
|
+
protected async BeforeUpdate(dataSource: DataSource, input: UpdateEntityDocumentSettingInput): Promise<boolean> {
|
|
19394
|
+
const i = input, d = dataSource; // prevent error
|
|
19395
|
+
return true;
|
|
19396
|
+
}
|
|
19397
|
+
protected async AfterUpdate(dataSource: DataSource, input: UpdateEntityDocumentSettingInput) {
|
|
19398
|
+
const i = input, d = dataSource; // prevent error
|
|
19399
|
+
}
|
|
19400
|
+
|
|
19401
|
+
}
|
|
19402
|
+
|
|
19403
|
+
//****************************************************************************
|
|
19404
|
+
// ENTITY CLASS for Entity Settings
|
|
19405
|
+
//****************************************************************************
|
|
19406
|
+
@ObjectType()
|
|
19407
|
+
export class EntitySetting_ {
|
|
19408
|
+
@Field(() => Int)
|
|
19409
|
+
ID: number;
|
|
19410
|
+
|
|
19411
|
+
@Field(() => Int)
|
|
19412
|
+
EntityID: number;
|
|
19413
|
+
|
|
19414
|
+
@Field()
|
|
19415
|
+
@MaxLength(200)
|
|
19416
|
+
Name: string;
|
|
19417
|
+
|
|
19418
|
+
@Field()
|
|
19419
|
+
Value: string;
|
|
19420
|
+
|
|
19421
|
+
@Field({nullable: true})
|
|
19422
|
+
Comments?: string;
|
|
19423
|
+
|
|
19424
|
+
@Field()
|
|
19425
|
+
@MaxLength(8)
|
|
19426
|
+
CreatedAt: Date;
|
|
19427
|
+
|
|
19428
|
+
@Field()
|
|
19429
|
+
@MaxLength(8)
|
|
19430
|
+
UpdatedAt: Date;
|
|
19431
|
+
|
|
19432
|
+
@Field()
|
|
19433
|
+
@MaxLength(510)
|
|
19434
|
+
Entity: string;
|
|
19435
|
+
|
|
19436
|
+
}
|
|
19437
|
+
|
|
19438
|
+
//****************************************************************************
|
|
19439
|
+
// INPUT TYPE for Entity Settings
|
|
19440
|
+
//****************************************************************************
|
|
19441
|
+
@InputType()
|
|
19442
|
+
export class CreateEntitySettingInput {
|
|
19443
|
+
@Field(() => Int)
|
|
19444
|
+
EntityID: number;
|
|
19445
|
+
|
|
19446
|
+
@Field()
|
|
19447
|
+
Name: string;
|
|
19448
|
+
|
|
19449
|
+
@Field()
|
|
19450
|
+
Value: string;
|
|
19451
|
+
|
|
19452
|
+
@Field({ nullable: true })
|
|
19453
|
+
Comments: string;
|
|
19454
|
+
}
|
|
19455
|
+
|
|
19456
|
+
|
|
19457
|
+
//****************************************************************************
|
|
19458
|
+
// INPUT TYPE for Entity Settings
|
|
19459
|
+
//****************************************************************************
|
|
19460
|
+
@InputType()
|
|
19461
|
+
export class UpdateEntitySettingInput {
|
|
19462
|
+
@Field(() => Int)
|
|
19463
|
+
ID: number;
|
|
19464
|
+
|
|
19465
|
+
@Field(() => Int)
|
|
19466
|
+
EntityID: number;
|
|
19467
|
+
|
|
19468
|
+
@Field()
|
|
19469
|
+
Name: string;
|
|
19470
|
+
|
|
19471
|
+
@Field()
|
|
19472
|
+
Value: string;
|
|
19473
|
+
|
|
19474
|
+
@Field({ nullable: true })
|
|
19475
|
+
Comments: string;
|
|
19476
|
+
}
|
|
19477
|
+
|
|
19478
|
+
//****************************************************************************
|
|
19479
|
+
// RESOLVER for Entity Settings
|
|
19480
|
+
//****************************************************************************
|
|
19481
|
+
@ObjectType()
|
|
19482
|
+
export class RunEntitySettingViewResult {
|
|
19483
|
+
@Field(() => [EntitySetting_])
|
|
19484
|
+
Results: EntitySetting_[];
|
|
19485
|
+
|
|
19486
|
+
@Field(() => Int, {nullable: true})
|
|
19487
|
+
UserViewRunID?: number;
|
|
19488
|
+
|
|
19489
|
+
@Field(() => Int, {nullable: true})
|
|
19490
|
+
RowCount: number;
|
|
19491
|
+
|
|
19492
|
+
@Field(() => Int, {nullable: true})
|
|
19493
|
+
TotalRowCount: number;
|
|
19494
|
+
|
|
19495
|
+
@Field(() => Int, {nullable: true})
|
|
19496
|
+
ExecutionTime: number;
|
|
19497
|
+
|
|
19498
|
+
@Field({nullable: true})
|
|
19499
|
+
ErrorMessage?: string;
|
|
19500
|
+
|
|
19501
|
+
@Field(() => Boolean, {nullable: false})
|
|
19502
|
+
Success: boolean;
|
|
19503
|
+
}
|
|
19504
|
+
|
|
19505
|
+
@Resolver(EntitySetting_)
|
|
19506
|
+
export class EntitySettingResolver extends ResolverBase {
|
|
19507
|
+
@Query(() => RunEntitySettingViewResult)
|
|
19508
|
+
async RunEntitySettingViewByID(@Arg('input', () => RunViewByIDInput) input: RunViewByIDInput, @Ctx() { dataSource, userPayload }: AppContext, @PubSub() pubSub: PubSubEngine) {
|
|
19509
|
+
return super.RunViewByIDGeneric(input, dataSource, userPayload, pubSub);
|
|
19510
|
+
}
|
|
19511
|
+
|
|
19512
|
+
@Query(() => RunEntitySettingViewResult)
|
|
19513
|
+
async RunEntitySettingViewByName(@Arg('input', () => RunViewByNameInput) input: RunViewByNameInput, @Ctx() { dataSource, userPayload }: AppContext, @PubSub() pubSub: PubSubEngine) {
|
|
19514
|
+
return super.RunViewByNameGeneric(input, dataSource, userPayload, pubSub);
|
|
19515
|
+
}
|
|
19516
|
+
|
|
19517
|
+
@Query(() => RunEntitySettingViewResult)
|
|
19518
|
+
async RunEntitySettingDynamicView(@Arg('input', () => RunDynamicViewInput) input: RunDynamicViewInput, @Ctx() { dataSource, userPayload }: AppContext, @PubSub() pubSub: PubSubEngine) {
|
|
19519
|
+
input.EntityName = 'Entity Settings';
|
|
19520
|
+
return super.RunDynamicViewGeneric(input, dataSource, userPayload, pubSub);
|
|
19521
|
+
}
|
|
19522
|
+
@Query(() => EntitySetting_, { nullable: true })
|
|
19523
|
+
async EntitySetting(@Arg('ID', () => Int) ID: number, @Ctx() { dataSource, userPayload }: AppContext, @PubSub() pubSub: PubSubEngine): Promise<EntitySetting_ | null> {
|
|
19524
|
+
this.CheckUserReadPermissions('Entity Settings', userPayload);
|
|
19525
|
+
const sSQL = `SELECT * FROM [${Metadata.Provider.ConfigData.MJCoreSchemaName}].[vwEntitySettings] WHERE [ID]=${ID} ` + this.getRowLevelSecurityWhereClause('Entity Settings', userPayload, EntityPermissionType.Read, 'AND');
|
|
19526
|
+
const result = this.MapFieldNamesToCodeNames('Entity Settings', await dataSource.query(sSQL).then((r) => r && r.length > 0 ? r[0] : {}))
|
|
19527
|
+
return result;
|
|
19528
|
+
}
|
|
19529
|
+
|
|
19530
|
+
@Mutation(() => EntitySetting_)
|
|
19531
|
+
async CreateEntitySetting(
|
|
19532
|
+
@Arg('input', () => CreateEntitySettingInput) input: CreateEntitySettingInput,
|
|
19533
|
+
@Ctx() { dataSource, userPayload }: AppContext,
|
|
19534
|
+
@PubSub() pubSub: PubSubEngine
|
|
19535
|
+
) {
|
|
19536
|
+
if (await this.BeforeCreate(dataSource, input)) { // fire event and proceed if it wasn't cancelled
|
|
19537
|
+
const entityObject = <EntitySettingEntity>await new Metadata().GetEntityObject('Entity Settings', this.GetUserFromPayload(userPayload));
|
|
19538
|
+
await entityObject.NewRecord();
|
|
19539
|
+
entityObject.SetMany(input);
|
|
19540
|
+
if (await entityObject.Save()) {
|
|
19541
|
+
// save worked, fire the AfterCreate event and then return all the data
|
|
19542
|
+
await this.AfterCreate(dataSource, input); // fire event
|
|
19543
|
+
return entityObject.GetAll();
|
|
19544
|
+
}
|
|
19545
|
+
else
|
|
19546
|
+
// save failed, return null
|
|
19547
|
+
return null;
|
|
19548
|
+
}
|
|
19549
|
+
else
|
|
19550
|
+
return null;
|
|
19551
|
+
}
|
|
19552
|
+
|
|
19553
|
+
// Before/After CREATE Event Hooks for Sub-Classes to Override
|
|
19554
|
+
protected async BeforeCreate(dataSource: DataSource, input: CreateEntitySettingInput): Promise<boolean> {
|
|
19555
|
+
return true;
|
|
19556
|
+
}
|
|
19557
|
+
protected async AfterCreate(dataSource: DataSource, input: CreateEntitySettingInput) {
|
|
19558
|
+
}
|
|
19559
|
+
|
|
19560
|
+
@Mutation(() => EntitySetting_)
|
|
19561
|
+
async UpdateEntitySetting(
|
|
19562
|
+
@Arg('input', () => UpdateEntitySettingInput) input: UpdateEntitySettingInput,
|
|
19563
|
+
@Ctx() { dataSource, userPayload }: AppContext,
|
|
19564
|
+
@PubSub() pubSub: PubSubEngine
|
|
19565
|
+
) {
|
|
19566
|
+
if (await this.BeforeUpdate(dataSource, input)) { // fire event and proceed if it wasn't cancelled
|
|
19567
|
+
const entityObject = <EntitySettingEntity>await new Metadata().GetEntityObject('Entity Settings', this.GetUserFromPayload(userPayload));
|
|
19568
|
+
entityObject.LoadFromData(input) // using the input instead of loading from DB because TrackChanges is turned off for Entity Settings
|
|
19569
|
+
|
|
19570
|
+
if (await entityObject.Save({ IgnoreDirtyState: true /*flag used because of LoadFromData() call above*/ })) {
|
|
19571
|
+
// save worked, fire afterevent and return all the data
|
|
19572
|
+
await this.AfterUpdate(dataSource, input); // fire event
|
|
19573
|
+
return entityObject.GetAll();
|
|
19574
|
+
}
|
|
19575
|
+
else
|
|
19576
|
+
return null; // save failed, return null
|
|
19577
|
+
}
|
|
19578
|
+
else
|
|
19579
|
+
return null;
|
|
19580
|
+
}
|
|
19581
|
+
|
|
19582
|
+
// Before/After UPDATE Event Hooks for Sub-Classes to Override
|
|
19583
|
+
protected async BeforeUpdate(dataSource: DataSource, input: UpdateEntitySettingInput): Promise<boolean> {
|
|
19584
|
+
const i = input, d = dataSource; // prevent error
|
|
19585
|
+
return true;
|
|
19586
|
+
}
|
|
19587
|
+
protected async AfterUpdate(dataSource: DataSource, input: UpdateEntitySettingInput) {
|
|
19588
|
+
const i = input, d = dataSource; // prevent error
|
|
19589
|
+
}
|
|
19590
|
+
|
|
19591
|
+
}
|
|
19592
|
+
|
|
19593
|
+
//****************************************************************************
|
|
19594
|
+
// ENTITY CLASS for Duplicate Runs
|
|
19595
|
+
//****************************************************************************
|
|
19596
|
+
@ObjectType()
|
|
19597
|
+
export class DuplicateRun_ {
|
|
19598
|
+
@Field(() => Int)
|
|
19599
|
+
ID: number;
|
|
19600
|
+
|
|
19601
|
+
@Field(() => Int)
|
|
19602
|
+
EntityID: number;
|
|
19603
|
+
|
|
19604
|
+
@Field(() => Int)
|
|
19605
|
+
StartedByUserID: number;
|
|
19606
|
+
|
|
19607
|
+
@Field()
|
|
19608
|
+
@MaxLength(8)
|
|
19609
|
+
StartedAt: Date;
|
|
19610
|
+
|
|
19611
|
+
@Field({nullable: true})
|
|
19612
|
+
@MaxLength(8)
|
|
19613
|
+
EndedAt?: Date;
|
|
19614
|
+
|
|
19615
|
+
@Field()
|
|
19616
|
+
@MaxLength(40)
|
|
19617
|
+
ApprovalStatus: string;
|
|
19618
|
+
|
|
19619
|
+
@Field({nullable: true})
|
|
19620
|
+
ApprovalComments?: string;
|
|
19621
|
+
|
|
19622
|
+
@Field(() => Int, {nullable: true})
|
|
19623
|
+
ApprovedByUserID?: number;
|
|
19624
|
+
|
|
19625
|
+
@Field()
|
|
19626
|
+
@MaxLength(40)
|
|
19627
|
+
ProcessingStatus: string;
|
|
19628
|
+
|
|
19629
|
+
@Field({nullable: true})
|
|
19630
|
+
ProcessingErrorMessage?: string;
|
|
19631
|
+
|
|
19632
|
+
@Field(() => Int)
|
|
19633
|
+
SourceListID: number;
|
|
19634
|
+
|
|
19635
|
+
@Field()
|
|
19636
|
+
@MaxLength(8)
|
|
19637
|
+
CreatedAt: Date;
|
|
19638
|
+
|
|
19639
|
+
@Field()
|
|
19640
|
+
@MaxLength(8)
|
|
19641
|
+
UpdatedAt: Date;
|
|
19642
|
+
|
|
19643
|
+
@Field()
|
|
19644
|
+
@MaxLength(510)
|
|
19645
|
+
Entity: string;
|
|
19646
|
+
|
|
19647
|
+
@Field()
|
|
19648
|
+
@MaxLength(200)
|
|
19649
|
+
StartedByUser: string;
|
|
19650
|
+
|
|
19651
|
+
@Field({nullable: true})
|
|
19652
|
+
@MaxLength(200)
|
|
19653
|
+
ApprovedByUser?: string;
|
|
19654
|
+
|
|
19655
|
+
@Field()
|
|
19656
|
+
@MaxLength(200)
|
|
19657
|
+
SourceList: string;
|
|
19658
|
+
|
|
19659
|
+
@Field(() => [mj_core_schema_server_object_types.DuplicateRunDetail_])
|
|
19660
|
+
DuplicateRunDetailsArray: mj_core_schema_server_object_types.DuplicateRunDetail_[]; // Link to DuplicateRunDetails
|
|
19661
|
+
|
|
19662
|
+
}
|
|
19663
|
+
|
|
19664
|
+
//****************************************************************************
|
|
19665
|
+
// INPUT TYPE for Duplicate Runs
|
|
19666
|
+
//****************************************************************************
|
|
19667
|
+
@InputType()
|
|
19668
|
+
export class CreateDuplicateRunInput {
|
|
19669
|
+
@Field(() => Int)
|
|
19670
|
+
EntityID: number;
|
|
19671
|
+
|
|
19672
|
+
@Field(() => Int)
|
|
19673
|
+
StartedByUserID: number;
|
|
19674
|
+
|
|
19675
|
+
@Field()
|
|
19676
|
+
StartedAt: Date;
|
|
19677
|
+
|
|
19678
|
+
@Field({ nullable: true })
|
|
19679
|
+
EndedAt: Date;
|
|
19680
|
+
|
|
19681
|
+
@Field()
|
|
19682
|
+
ApprovalStatus: string;
|
|
19683
|
+
|
|
19684
|
+
@Field({ nullable: true })
|
|
19685
|
+
ApprovalComments: string;
|
|
19686
|
+
|
|
19687
|
+
@Field(() => Int, { nullable: true })
|
|
19688
|
+
ApprovedByUserID: number;
|
|
19689
|
+
|
|
19690
|
+
@Field()
|
|
19691
|
+
ProcessingStatus: string;
|
|
19692
|
+
|
|
19693
|
+
@Field({ nullable: true })
|
|
19694
|
+
ProcessingErrorMessage: string;
|
|
19695
|
+
|
|
19696
|
+
@Field(() => Int)
|
|
19697
|
+
SourceListID: number;
|
|
19698
|
+
}
|
|
19699
|
+
|
|
19700
|
+
|
|
19701
|
+
//****************************************************************************
|
|
19702
|
+
// INPUT TYPE for Duplicate Runs
|
|
19703
|
+
//****************************************************************************
|
|
19704
|
+
@InputType()
|
|
19705
|
+
export class UpdateDuplicateRunInput {
|
|
19706
|
+
@Field(() => Int)
|
|
19707
|
+
ID: number;
|
|
19708
|
+
|
|
19709
|
+
@Field(() => Int)
|
|
19710
|
+
EntityID: number;
|
|
19711
|
+
|
|
19712
|
+
@Field(() => Int)
|
|
19713
|
+
StartedByUserID: number;
|
|
19714
|
+
|
|
19715
|
+
@Field()
|
|
19716
|
+
StartedAt: Date;
|
|
19717
|
+
|
|
19718
|
+
@Field({ nullable: true })
|
|
19719
|
+
EndedAt: Date;
|
|
19720
|
+
|
|
19721
|
+
@Field()
|
|
19722
|
+
ApprovalStatus: string;
|
|
19723
|
+
|
|
19724
|
+
@Field({ nullable: true })
|
|
19725
|
+
ApprovalComments: string;
|
|
19726
|
+
|
|
19727
|
+
@Field(() => Int, { nullable: true })
|
|
19728
|
+
ApprovedByUserID: number;
|
|
19729
|
+
|
|
19730
|
+
@Field()
|
|
19731
|
+
ProcessingStatus: string;
|
|
19732
|
+
|
|
19733
|
+
@Field({ nullable: true })
|
|
19734
|
+
ProcessingErrorMessage: string;
|
|
19735
|
+
|
|
19736
|
+
@Field(() => Int)
|
|
19737
|
+
SourceListID: number;
|
|
19738
|
+
}
|
|
19739
|
+
|
|
19740
|
+
//****************************************************************************
|
|
19741
|
+
// RESOLVER for Duplicate Runs
|
|
19742
|
+
//****************************************************************************
|
|
19743
|
+
@ObjectType()
|
|
19744
|
+
export class RunDuplicateRunViewResult {
|
|
19745
|
+
@Field(() => [DuplicateRun_])
|
|
19746
|
+
Results: DuplicateRun_[];
|
|
19747
|
+
|
|
19748
|
+
@Field(() => Int, {nullable: true})
|
|
19749
|
+
UserViewRunID?: number;
|
|
19750
|
+
|
|
19751
|
+
@Field(() => Int, {nullable: true})
|
|
19752
|
+
RowCount: number;
|
|
19753
|
+
|
|
19754
|
+
@Field(() => Int, {nullable: true})
|
|
19755
|
+
TotalRowCount: number;
|
|
19756
|
+
|
|
19757
|
+
@Field(() => Int, {nullable: true})
|
|
19758
|
+
ExecutionTime: number;
|
|
19759
|
+
|
|
19760
|
+
@Field({nullable: true})
|
|
19761
|
+
ErrorMessage?: string;
|
|
19762
|
+
|
|
19763
|
+
@Field(() => Boolean, {nullable: false})
|
|
19764
|
+
Success: boolean;
|
|
19765
|
+
}
|
|
19766
|
+
|
|
19767
|
+
@Resolver(DuplicateRun_)
|
|
19768
|
+
export class DuplicateRunResolver extends ResolverBase {
|
|
19769
|
+
@Query(() => RunDuplicateRunViewResult)
|
|
19770
|
+
async RunDuplicateRunViewByID(@Arg('input', () => RunViewByIDInput) input: RunViewByIDInput, @Ctx() { dataSource, userPayload }: AppContext, @PubSub() pubSub: PubSubEngine) {
|
|
19771
|
+
return super.RunViewByIDGeneric(input, dataSource, userPayload, pubSub);
|
|
19772
|
+
}
|
|
19773
|
+
|
|
19774
|
+
@Query(() => RunDuplicateRunViewResult)
|
|
19775
|
+
async RunDuplicateRunViewByName(@Arg('input', () => RunViewByNameInput) input: RunViewByNameInput, @Ctx() { dataSource, userPayload }: AppContext, @PubSub() pubSub: PubSubEngine) {
|
|
19776
|
+
return super.RunViewByNameGeneric(input, dataSource, userPayload, pubSub);
|
|
19777
|
+
}
|
|
19778
|
+
|
|
19779
|
+
@Query(() => RunDuplicateRunViewResult)
|
|
19780
|
+
async RunDuplicateRunDynamicView(@Arg('input', () => RunDynamicViewInput) input: RunDynamicViewInput, @Ctx() { dataSource, userPayload }: AppContext, @PubSub() pubSub: PubSubEngine) {
|
|
19781
|
+
input.EntityName = 'Duplicate Runs';
|
|
19782
|
+
return super.RunDynamicViewGeneric(input, dataSource, userPayload, pubSub);
|
|
19783
|
+
}
|
|
19784
|
+
@Query(() => DuplicateRun_, { nullable: true })
|
|
19785
|
+
async DuplicateRun(@Arg('ID', () => Int) ID: number, @Ctx() { dataSource, userPayload }: AppContext, @PubSub() pubSub: PubSubEngine): Promise<DuplicateRun_ | null> {
|
|
19786
|
+
this.CheckUserReadPermissions('Duplicate Runs', userPayload);
|
|
19787
|
+
const sSQL = `SELECT * FROM [${Metadata.Provider.ConfigData.MJCoreSchemaName}].[vwDuplicateRuns] WHERE [ID]=${ID} ` + this.getRowLevelSecurityWhereClause('Duplicate Runs', userPayload, EntityPermissionType.Read, 'AND');
|
|
19788
|
+
const result = this.MapFieldNamesToCodeNames('Duplicate Runs', await dataSource.query(sSQL).then((r) => r && r.length > 0 ? r[0] : {}))
|
|
19789
|
+
return result;
|
|
19790
|
+
}
|
|
19791
|
+
|
|
19792
|
+
@FieldResolver(() => [mj_core_schema_server_object_types.DuplicateRunDetail_])
|
|
19793
|
+
async DuplicateRunDetailsArray(@Root() duplicaterun_: DuplicateRun_, @Ctx() { dataSource, userPayload }: AppContext, @PubSub() pubSub: PubSubEngine) {
|
|
19794
|
+
this.CheckUserReadPermissions('Duplicate Run Details', userPayload);
|
|
19795
|
+
const sSQL = `SELECT * FROM [${Metadata.Provider.ConfigData.MJCoreSchemaName}].[vwDuplicateRunDetails] WHERE [DuplicateRunID]=${duplicaterun_.ID} ` + this.getRowLevelSecurityWhereClause('Duplicate Run Details', userPayload, EntityPermissionType.Read, 'AND');
|
|
19796
|
+
const result = this.ArrayMapFieldNamesToCodeNames('Duplicate Run Details', await dataSource.query(sSQL));
|
|
19797
|
+
return result;
|
|
19798
|
+
}
|
|
19799
|
+
|
|
19800
|
+
@Mutation(() => DuplicateRun_)
|
|
19801
|
+
async CreateDuplicateRun(
|
|
19802
|
+
@Arg('input', () => CreateDuplicateRunInput) input: CreateDuplicateRunInput,
|
|
19803
|
+
@Ctx() { dataSource, userPayload }: AppContext,
|
|
19804
|
+
@PubSub() pubSub: PubSubEngine
|
|
19805
|
+
) {
|
|
19806
|
+
if (await this.BeforeCreate(dataSource, input)) { // fire event and proceed if it wasn't cancelled
|
|
19807
|
+
const entityObject = <DuplicateRunEntity>await new Metadata().GetEntityObject('Duplicate Runs', this.GetUserFromPayload(userPayload));
|
|
19808
|
+
await entityObject.NewRecord();
|
|
19809
|
+
entityObject.SetMany(input);
|
|
19810
|
+
if (await entityObject.Save()) {
|
|
19811
|
+
// save worked, fire the AfterCreate event and then return all the data
|
|
19812
|
+
await this.AfterCreate(dataSource, input); // fire event
|
|
19813
|
+
return entityObject.GetAll();
|
|
19814
|
+
}
|
|
19815
|
+
else
|
|
19816
|
+
// save failed, return null
|
|
19817
|
+
return null;
|
|
19818
|
+
}
|
|
19819
|
+
else
|
|
19820
|
+
return null;
|
|
19821
|
+
}
|
|
19822
|
+
|
|
19823
|
+
// Before/After CREATE Event Hooks for Sub-Classes to Override
|
|
19824
|
+
protected async BeforeCreate(dataSource: DataSource, input: CreateDuplicateRunInput): Promise<boolean> {
|
|
19825
|
+
return true;
|
|
19826
|
+
}
|
|
19827
|
+
protected async AfterCreate(dataSource: DataSource, input: CreateDuplicateRunInput) {
|
|
19828
|
+
}
|
|
19829
|
+
|
|
19830
|
+
@Mutation(() => DuplicateRun_)
|
|
19831
|
+
async UpdateDuplicateRun(
|
|
19832
|
+
@Arg('input', () => UpdateDuplicateRunInput) input: UpdateDuplicateRunInput,
|
|
19833
|
+
@Ctx() { dataSource, userPayload }: AppContext,
|
|
19834
|
+
@PubSub() pubSub: PubSubEngine
|
|
19835
|
+
) {
|
|
19836
|
+
if (await this.BeforeUpdate(dataSource, input)) { // fire event and proceed if it wasn't cancelled
|
|
19837
|
+
const entityObject = <DuplicateRunEntity>await new Metadata().GetEntityObject('Duplicate Runs', this.GetUserFromPayload(userPayload));
|
|
19838
|
+
entityObject.LoadFromData(input) // using the input instead of loading from DB because TrackChanges is turned off for Duplicate Runs
|
|
19839
|
+
|
|
19840
|
+
if (await entityObject.Save({ IgnoreDirtyState: true /*flag used because of LoadFromData() call above*/ })) {
|
|
19841
|
+
// save worked, fire afterevent and return all the data
|
|
19842
|
+
await this.AfterUpdate(dataSource, input); // fire event
|
|
19843
|
+
return entityObject.GetAll();
|
|
19844
|
+
}
|
|
19845
|
+
else
|
|
19846
|
+
return null; // save failed, return null
|
|
19847
|
+
}
|
|
19848
|
+
else
|
|
19849
|
+
return null;
|
|
19850
|
+
}
|
|
19851
|
+
|
|
19852
|
+
// Before/After UPDATE Event Hooks for Sub-Classes to Override
|
|
19853
|
+
protected async BeforeUpdate(dataSource: DataSource, input: UpdateDuplicateRunInput): Promise<boolean> {
|
|
19854
|
+
const i = input, d = dataSource; // prevent error
|
|
19855
|
+
return true;
|
|
19856
|
+
}
|
|
19857
|
+
protected async AfterUpdate(dataSource: DataSource, input: UpdateDuplicateRunInput) {
|
|
19858
|
+
const i = input, d = dataSource; // prevent error
|
|
19859
|
+
}
|
|
19860
|
+
|
|
19861
|
+
}
|
|
19862
|
+
|
|
19863
|
+
//****************************************************************************
|
|
19864
|
+
// ENTITY CLASS for Duplicate Run Details
|
|
19865
|
+
//****************************************************************************
|
|
19866
|
+
@ObjectType()
|
|
19867
|
+
export class DuplicateRunDetail_ {
|
|
19868
|
+
@Field(() => Int)
|
|
19869
|
+
ID: number;
|
|
19870
|
+
|
|
19871
|
+
@Field(() => Int)
|
|
19872
|
+
DuplicateRunID: number;
|
|
19873
|
+
|
|
19874
|
+
@Field()
|
|
19875
|
+
@MaxLength(1000)
|
|
19876
|
+
RecordID: string;
|
|
19877
|
+
|
|
19878
|
+
@Field()
|
|
19879
|
+
@MaxLength(40)
|
|
19880
|
+
MatchStatus: string;
|
|
19881
|
+
|
|
19882
|
+
@Field({nullable: true, description: 'If MatchStatus=Skipped, this field can be used to store the reason why the record was skipped'})
|
|
19883
|
+
SkippedReason?: string;
|
|
19884
|
+
|
|
19885
|
+
@Field({nullable: true, description: 'If MatchStatus=\'Error\' this field can be used to track the error from that phase of the process for logging/diagnostics.'})
|
|
19886
|
+
MatchErrorMessage?: string;
|
|
19887
|
+
|
|
19888
|
+
@Field()
|
|
19889
|
+
@MaxLength(40)
|
|
19890
|
+
MergeStatus: string;
|
|
19891
|
+
|
|
19892
|
+
@Field({nullable: true})
|
|
19893
|
+
MergeErrorMessage?: string;
|
|
19894
|
+
|
|
19895
|
+
@Field()
|
|
19896
|
+
@MaxLength(8)
|
|
19897
|
+
CreatedAt: Date;
|
|
19898
|
+
|
|
19899
|
+
@Field()
|
|
19900
|
+
@MaxLength(8)
|
|
19901
|
+
UpdatedAt: Date;
|
|
19902
|
+
|
|
19903
|
+
@Field(() => [mj_core_schema_server_object_types.DuplicateRunDetailMatch_])
|
|
19904
|
+
DuplicateRunDetailMatchesArray: mj_core_schema_server_object_types.DuplicateRunDetailMatch_[]; // Link to DuplicateRunDetailMatches
|
|
19905
|
+
|
|
19906
|
+
}
|
|
19907
|
+
|
|
19908
|
+
//****************************************************************************
|
|
19909
|
+
// INPUT TYPE for Duplicate Run Details
|
|
19910
|
+
//****************************************************************************
|
|
19911
|
+
@InputType()
|
|
19912
|
+
export class CreateDuplicateRunDetailInput {
|
|
19913
|
+
@Field(() => Int)
|
|
19914
|
+
DuplicateRunID: number;
|
|
19915
|
+
|
|
19916
|
+
@Field()
|
|
19917
|
+
RecordID: string;
|
|
19918
|
+
|
|
19919
|
+
@Field()
|
|
19920
|
+
MatchStatus: string;
|
|
19921
|
+
|
|
19922
|
+
@Field({ nullable: true })
|
|
19923
|
+
SkippedReason: string;
|
|
19924
|
+
|
|
19925
|
+
@Field({ nullable: true })
|
|
19926
|
+
MatchErrorMessage: string;
|
|
19927
|
+
|
|
19928
|
+
@Field()
|
|
19929
|
+
MergeStatus: string;
|
|
19930
|
+
|
|
19931
|
+
@Field({ nullable: true })
|
|
19932
|
+
MergeErrorMessage: string;
|
|
19933
|
+
}
|
|
19934
|
+
|
|
19935
|
+
|
|
19936
|
+
//****************************************************************************
|
|
19937
|
+
// INPUT TYPE for Duplicate Run Details
|
|
19938
|
+
//****************************************************************************
|
|
19939
|
+
@InputType()
|
|
19940
|
+
export class UpdateDuplicateRunDetailInput {
|
|
19941
|
+
@Field(() => Int)
|
|
19942
|
+
ID: number;
|
|
19943
|
+
|
|
19944
|
+
@Field(() => Int)
|
|
19945
|
+
DuplicateRunID: number;
|
|
19946
|
+
|
|
19947
|
+
@Field()
|
|
19948
|
+
RecordID: string;
|
|
19949
|
+
|
|
19950
|
+
@Field()
|
|
19951
|
+
MatchStatus: string;
|
|
19952
|
+
|
|
19953
|
+
@Field({ nullable: true })
|
|
19954
|
+
SkippedReason: string;
|
|
19955
|
+
|
|
19956
|
+
@Field({ nullable: true })
|
|
19957
|
+
MatchErrorMessage: string;
|
|
19958
|
+
|
|
19959
|
+
@Field()
|
|
19960
|
+
MergeStatus: string;
|
|
19961
|
+
|
|
19962
|
+
@Field({ nullable: true })
|
|
19963
|
+
MergeErrorMessage: string;
|
|
19964
|
+
}
|
|
19965
|
+
|
|
19966
|
+
//****************************************************************************
|
|
19967
|
+
// RESOLVER for Duplicate Run Details
|
|
19968
|
+
//****************************************************************************
|
|
19969
|
+
@ObjectType()
|
|
19970
|
+
export class RunDuplicateRunDetailViewResult {
|
|
19971
|
+
@Field(() => [DuplicateRunDetail_])
|
|
19972
|
+
Results: DuplicateRunDetail_[];
|
|
19973
|
+
|
|
19974
|
+
@Field(() => Int, {nullable: true})
|
|
19975
|
+
UserViewRunID?: number;
|
|
19976
|
+
|
|
19977
|
+
@Field(() => Int, {nullable: true})
|
|
19978
|
+
RowCount: number;
|
|
19979
|
+
|
|
19980
|
+
@Field(() => Int, {nullable: true})
|
|
19981
|
+
TotalRowCount: number;
|
|
19982
|
+
|
|
19983
|
+
@Field(() => Int, {nullable: true})
|
|
19984
|
+
ExecutionTime: number;
|
|
19985
|
+
|
|
19986
|
+
@Field({nullable: true})
|
|
19987
|
+
ErrorMessage?: string;
|
|
19988
|
+
|
|
19989
|
+
@Field(() => Boolean, {nullable: false})
|
|
19990
|
+
Success: boolean;
|
|
19991
|
+
}
|
|
19992
|
+
|
|
19993
|
+
@Resolver(DuplicateRunDetail_)
|
|
19994
|
+
export class DuplicateRunDetailResolver extends ResolverBase {
|
|
19995
|
+
@Query(() => RunDuplicateRunDetailViewResult)
|
|
19996
|
+
async RunDuplicateRunDetailViewByID(@Arg('input', () => RunViewByIDInput) input: RunViewByIDInput, @Ctx() { dataSource, userPayload }: AppContext, @PubSub() pubSub: PubSubEngine) {
|
|
19997
|
+
return super.RunViewByIDGeneric(input, dataSource, userPayload, pubSub);
|
|
19998
|
+
}
|
|
19999
|
+
|
|
20000
|
+
@Query(() => RunDuplicateRunDetailViewResult)
|
|
20001
|
+
async RunDuplicateRunDetailViewByName(@Arg('input', () => RunViewByNameInput) input: RunViewByNameInput, @Ctx() { dataSource, userPayload }: AppContext, @PubSub() pubSub: PubSubEngine) {
|
|
20002
|
+
return super.RunViewByNameGeneric(input, dataSource, userPayload, pubSub);
|
|
20003
|
+
}
|
|
20004
|
+
|
|
20005
|
+
@Query(() => RunDuplicateRunDetailViewResult)
|
|
20006
|
+
async RunDuplicateRunDetailDynamicView(@Arg('input', () => RunDynamicViewInput) input: RunDynamicViewInput, @Ctx() { dataSource, userPayload }: AppContext, @PubSub() pubSub: PubSubEngine) {
|
|
20007
|
+
input.EntityName = 'Duplicate Run Details';
|
|
20008
|
+
return super.RunDynamicViewGeneric(input, dataSource, userPayload, pubSub);
|
|
20009
|
+
}
|
|
20010
|
+
@Query(() => DuplicateRunDetail_, { nullable: true })
|
|
20011
|
+
async DuplicateRunDetail(@Arg('ID', () => Int) ID: number, @Ctx() { dataSource, userPayload }: AppContext, @PubSub() pubSub: PubSubEngine): Promise<DuplicateRunDetail_ | null> {
|
|
20012
|
+
this.CheckUserReadPermissions('Duplicate Run Details', userPayload);
|
|
20013
|
+
const sSQL = `SELECT * FROM [${Metadata.Provider.ConfigData.MJCoreSchemaName}].[vwDuplicateRunDetails] WHERE [ID]=${ID} ` + this.getRowLevelSecurityWhereClause('Duplicate Run Details', userPayload, EntityPermissionType.Read, 'AND');
|
|
20014
|
+
const result = this.MapFieldNamesToCodeNames('Duplicate Run Details', await dataSource.query(sSQL).then((r) => r && r.length > 0 ? r[0] : {}))
|
|
20015
|
+
return result;
|
|
20016
|
+
}
|
|
20017
|
+
|
|
20018
|
+
@FieldResolver(() => [mj_core_schema_server_object_types.DuplicateRunDetailMatch_])
|
|
20019
|
+
async DuplicateRunDetailMatchesArray(@Root() duplicaterundetail_: DuplicateRunDetail_, @Ctx() { dataSource, userPayload }: AppContext, @PubSub() pubSub: PubSubEngine) {
|
|
20020
|
+
this.CheckUserReadPermissions('Duplicate Run Detail Matches', userPayload);
|
|
20021
|
+
const sSQL = `SELECT * FROM [${Metadata.Provider.ConfigData.MJCoreSchemaName}].[vwDuplicateRunDetailMatches] WHERE [DuplicateRunDetailID]=${duplicaterundetail_.ID} ` + this.getRowLevelSecurityWhereClause('Duplicate Run Detail Matches', userPayload, EntityPermissionType.Read, 'AND');
|
|
20022
|
+
const result = this.ArrayMapFieldNamesToCodeNames('Duplicate Run Detail Matches', await dataSource.query(sSQL));
|
|
20023
|
+
return result;
|
|
20024
|
+
}
|
|
20025
|
+
|
|
20026
|
+
@Mutation(() => DuplicateRunDetail_)
|
|
20027
|
+
async CreateDuplicateRunDetail(
|
|
20028
|
+
@Arg('input', () => CreateDuplicateRunDetailInput) input: CreateDuplicateRunDetailInput,
|
|
20029
|
+
@Ctx() { dataSource, userPayload }: AppContext,
|
|
20030
|
+
@PubSub() pubSub: PubSubEngine
|
|
20031
|
+
) {
|
|
20032
|
+
if (await this.BeforeCreate(dataSource, input)) { // fire event and proceed if it wasn't cancelled
|
|
20033
|
+
const entityObject = <DuplicateRunDetailEntity>await new Metadata().GetEntityObject('Duplicate Run Details', this.GetUserFromPayload(userPayload));
|
|
20034
|
+
await entityObject.NewRecord();
|
|
20035
|
+
entityObject.SetMany(input);
|
|
20036
|
+
if (await entityObject.Save()) {
|
|
20037
|
+
// save worked, fire the AfterCreate event and then return all the data
|
|
20038
|
+
await this.AfterCreate(dataSource, input); // fire event
|
|
20039
|
+
return entityObject.GetAll();
|
|
20040
|
+
}
|
|
20041
|
+
else
|
|
20042
|
+
// save failed, return null
|
|
20043
|
+
return null;
|
|
20044
|
+
}
|
|
20045
|
+
else
|
|
20046
|
+
return null;
|
|
20047
|
+
}
|
|
20048
|
+
|
|
20049
|
+
// Before/After CREATE Event Hooks for Sub-Classes to Override
|
|
20050
|
+
protected async BeforeCreate(dataSource: DataSource, input: CreateDuplicateRunDetailInput): Promise<boolean> {
|
|
20051
|
+
return true;
|
|
20052
|
+
}
|
|
20053
|
+
protected async AfterCreate(dataSource: DataSource, input: CreateDuplicateRunDetailInput) {
|
|
20054
|
+
}
|
|
20055
|
+
|
|
20056
|
+
@Mutation(() => DuplicateRunDetail_)
|
|
20057
|
+
async UpdateDuplicateRunDetail(
|
|
20058
|
+
@Arg('input', () => UpdateDuplicateRunDetailInput) input: UpdateDuplicateRunDetailInput,
|
|
20059
|
+
@Ctx() { dataSource, userPayload }: AppContext,
|
|
20060
|
+
@PubSub() pubSub: PubSubEngine
|
|
20061
|
+
) {
|
|
20062
|
+
if (await this.BeforeUpdate(dataSource, input)) { // fire event and proceed if it wasn't cancelled
|
|
20063
|
+
const entityObject = <DuplicateRunDetailEntity>await new Metadata().GetEntityObject('Duplicate Run Details', this.GetUserFromPayload(userPayload));
|
|
20064
|
+
entityObject.LoadFromData(input) // using the input instead of loading from DB because TrackChanges is turned off for Duplicate Run Details
|
|
20065
|
+
|
|
20066
|
+
if (await entityObject.Save({ IgnoreDirtyState: true /*flag used because of LoadFromData() call above*/ })) {
|
|
20067
|
+
// save worked, fire afterevent and return all the data
|
|
20068
|
+
await this.AfterUpdate(dataSource, input); // fire event
|
|
20069
|
+
return entityObject.GetAll();
|
|
20070
|
+
}
|
|
20071
|
+
else
|
|
20072
|
+
return null; // save failed, return null
|
|
20073
|
+
}
|
|
20074
|
+
else
|
|
20075
|
+
return null;
|
|
20076
|
+
}
|
|
20077
|
+
|
|
20078
|
+
// Before/After UPDATE Event Hooks for Sub-Classes to Override
|
|
20079
|
+
protected async BeforeUpdate(dataSource: DataSource, input: UpdateDuplicateRunDetailInput): Promise<boolean> {
|
|
20080
|
+
const i = input, d = dataSource; // prevent error
|
|
20081
|
+
return true;
|
|
20082
|
+
}
|
|
20083
|
+
protected async AfterUpdate(dataSource: DataSource, input: UpdateDuplicateRunDetailInput) {
|
|
20084
|
+
const i = input, d = dataSource; // prevent error
|
|
20085
|
+
}
|
|
20086
|
+
|
|
18879
20087
|
}
|