@memberjunction/server 1.0.9 → 1.0.11

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.
@@ -1 +1 @@
1
- {"version":3,"file":"ReportResolver.d.ts","sourceRoot":"","sources":["../../src/resolvers/ReportResolver.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,UAAU,EAAE,MAAM,UAAU,CAAC;AAMtC,qBACa,mBAAmB;IAE9B,QAAQ,EAAE,MAAM,CAAC;IAGjB,OAAO,EAAE,OAAO,CAAC;IAGjB,OAAO,EAAE,MAAM,CAAC;IAGhB,QAAQ,EAAE,MAAM,CAAC;IAGjB,aAAa,EAAE,MAAM,CAAC;IAGtB,YAAY,EAAE,MAAM,CAAC;CACtB;AAED,qBACa,sBAAsB;IAEjC,QAAQ,EAAE,MAAM,CAAC;IAGjB,UAAU,EAAE,MAAM,CAAC;IAGnB,OAAO,EAAE,OAAO,CAAC;IAGjB,YAAY,EAAE,MAAM,CAAC;CACtB;AAED,qBACa,sBAAsB;IAE3B,aAAa,CAA6B,QAAQ,EAAE,MAAM,EAAS,EAAE,EAAE,UAAU,GAAG,OAAO,CAAC,mBAAmB,CAAC;IAiBhH,oCAAoC,CAAyC,oBAAoB,EAAE,MAAM,EAC7D,EAAC,UAAU,EAAE,WAAW,EAAC,EAAE,UAAU,GAAG,OAAO,CAAC,sBAAsB,CAAC;CAiE1H"}
1
+ {"version":3,"file":"ReportResolver.d.ts","sourceRoot":"","sources":["../../src/resolvers/ReportResolver.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,UAAU,EAAE,MAAM,UAAU,CAAC;AAMtC,qBACa,mBAAmB;IAE9B,QAAQ,EAAE,MAAM,CAAC;IAGjB,OAAO,EAAE,OAAO,CAAC;IAGjB,OAAO,EAAE,MAAM,CAAC;IAGhB,QAAQ,EAAE,MAAM,CAAC;IAGjB,aAAa,EAAE,MAAM,CAAC;IAGtB,YAAY,EAAE,MAAM,CAAC;CACtB;AAED,qBACa,sBAAsB;IAEjC,QAAQ,EAAE,MAAM,CAAC;IAGjB,UAAU,EAAE,MAAM,CAAC;IAGnB,OAAO,EAAE,OAAO,CAAC;IAGjB,YAAY,EAAE,MAAM,CAAC;CACtB;AAED,qBACa,sBAAsB;IAE3B,aAAa,CAA6B,QAAQ,EAAE,MAAM,EAAS,EAAE,EAAE,UAAU,GAAG,OAAO,CAAC,mBAAmB,CAAC;IAiBhH,oCAAoC,CAAyC,oBAAoB,EAAE,MAAM,EAC7D,EAAC,UAAU,EAAE,WAAW,EAAC,EAAE,UAAU,GAAG,OAAO,CAAC,sBAAsB,CAAC;CAiF1H"}
@@ -83,56 +83,71 @@ let ReportResolverExtended = class ReportResolverExtended {
83
83
  };
84
84
  }
85
85
  async CreateReportFromConversationDetailID(ConversationDetailID, { dataSource, userPayload }) {
86
- const md = new core_1.Metadata();
87
- const u = sqlserver_dataprovider_1.UserCache.Users.find(u => u.Email?.trim().toLowerCase() === userPayload?.email?.trim().toLowerCase());
88
- if (!u)
89
- throw new Error('Unable to find user');
90
- const cde = md.Entities.find(e => e.Name === 'Conversation Details');
91
- if (!cde)
92
- throw new Error('Unable to find Conversation Details Entity metadata');
93
- const cd = md.Entities.find(e => e.Name === 'Conversations');
94
- if (!cd)
95
- throw new Error('Unable to find Conversations Entity metadata');
96
- const sql = `SELECT cd.Message, cd.ConversationID, c.DataContextID
97
- FROM ${cde.SchemaName}.${cde.BaseView} cd
98
- INNER JOIN ${cd.SchemaName}.${cd.BaseView} c
99
- ON cd.ConversationID = c.ID
100
- WHERE cd.ID=${ConversationDetailID}`;
101
- const result = await dataSource.query(sql);
102
- if (!result || result.length === 0)
103
- throw new Error('Unable to retrieve converation details');
104
- const skipData = JSON.parse(result[0].Message);
105
- const report = await md.GetEntityObject('Reports', u);
106
- report.NewRecord();
107
- report.Name = skipData.reportTitle ? skipData.reportTitle : 'Untitled Report';
108
- report.Description = skipData.userExplanation ? skipData.userExplanation : '';
109
- report.ConversationID = result[0].ConversationID;
110
- report.ConversationDetailID = ConversationDetailID;
111
- const dc = new data_context_1.DataContext();
112
- await dc.LoadMetadata(result[0].DataContextID, u);
113
- const newDataContext = await data_context_1.DataContext.Clone(dc, false, u);
114
- if (!newDataContext)
115
- throw new Error('Error cloning data context');
116
- report.DataContextID = newDataContext.ID;
117
- const newSkipData = JSON.parse(JSON.stringify(skipData));
118
- newSkipData.messages = [];
119
- report.Configuration = JSON.stringify(newSkipData);
120
- report.SharingScope = 'None';
121
- report.UserID = u.ID;
122
- if (await report.Save()) {
123
- return {
124
- ReportID: report.ID,
125
- ReportName: report.Name,
126
- Success: true,
127
- ErrorMessage: ''
128
- };
86
+ try {
87
+ const md = new core_1.Metadata();
88
+ const u = sqlserver_dataprovider_1.UserCache.Users.find(u => u.Email?.trim().toLowerCase() === userPayload?.email?.trim().toLowerCase());
89
+ if (!u)
90
+ throw new Error('Unable to find user');
91
+ const cde = md.Entities.find(e => e.Name === 'Conversation Details');
92
+ if (!cde)
93
+ throw new Error('Unable to find Conversation Details Entity metadata');
94
+ const cd = md.Entities.find(e => e.Name === 'Conversations');
95
+ if (!cd)
96
+ throw new Error('Unable to find Conversations Entity metadata');
97
+ const sql = `SELECT
98
+ cd.Message, cd.ConversationID, c.DataContextID
99
+ FROM
100
+ ${cde.SchemaName}.${cde.BaseView} cd
101
+ INNER JOIN
102
+ ${cd.SchemaName}.${cd.BaseView} c
103
+ ON
104
+ cd.ConversationID = c.ID
105
+ WHERE
106
+ cd.ID=${ConversationDetailID}`;
107
+ const result = await dataSource.query(sql);
108
+ if (!result || result.length === 0)
109
+ throw new Error('Unable to retrieve converation details');
110
+ const skipData = JSON.parse(result[0].Message);
111
+ const report = await md.GetEntityObject('Reports', u);
112
+ report.NewRecord();
113
+ report.Name = skipData.reportTitle ? skipData.reportTitle : 'Untitled Report';
114
+ report.Description = skipData.userExplanation ? skipData.userExplanation : '';
115
+ report.ConversationID = result[0].ConversationID;
116
+ report.ConversationDetailID = ConversationDetailID;
117
+ const dc = new data_context_1.DataContext();
118
+ await dc.LoadMetadata(result[0].DataContextID, u);
119
+ const newDataContext = await data_context_1.DataContext.Clone(dc, false, u);
120
+ if (!newDataContext)
121
+ throw new Error('Error cloning data context');
122
+ report.DataContextID = newDataContext.ID;
123
+ const newSkipData = JSON.parse(JSON.stringify(skipData));
124
+ newSkipData.messages = [];
125
+ report.Configuration = JSON.stringify(newSkipData);
126
+ report.SharingScope = 'None';
127
+ report.UserID = u.ID;
128
+ if (await report.Save()) {
129
+ return {
130
+ ReportID: report.ID,
131
+ ReportName: report.Name,
132
+ Success: true,
133
+ ErrorMessage: ''
134
+ };
135
+ }
136
+ else {
137
+ return {
138
+ ReportID: -1,
139
+ ReportName: '',
140
+ Success: false,
141
+ ErrorMessage: 'Unable to save new report'
142
+ };
143
+ }
129
144
  }
130
- else {
145
+ catch (ex) {
131
146
  return {
132
147
  ReportID: -1,
133
148
  ReportName: '',
134
149
  Success: false,
135
- ErrorMessage: 'Unable to save new report'
150
+ ErrorMessage: 'Unable to create new report: ' + ex.message
136
151
  };
137
152
  }
138
153
  }
@@ -1 +1 @@
1
- {"version":3,"file":"ReportResolver.js","sourceRoot":"","sources":["../../src/resolvers/ReportResolver.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"ReportResolver.js","sourceRoot":"","sources":["../../src/resolvers/ReportResolver.ts"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@memberjunction/server",
3
- "version": "1.0.9",
3
+ "version": "1.0.11",
4
4
  "description": "MemberJunction: This project provides API access via GraphQL to the common data store.",
5
5
  "main": "dist/index.js",
6
6
  "types": "src/index.ts",
@@ -21,18 +21,18 @@
21
21
  "dependencies": {
22
22
  "@apollo/server": "^4.9.1",
23
23
  "@graphql-tools/utils": "^10.0.1",
24
- "@memberjunction/ai": "^1.0.9",
25
- "@memberjunction/ai-openai": "^1.0.9",
26
- "@memberjunction/aiengine": "^1.0.9",
27
- "@memberjunction/core": "^1.0.9",
28
- "@memberjunction/core-entities": "^1.0.9",
29
- "@memberjunction/data-context": "^1.0.9",
30
- "@memberjunction/data-context-server": "^1.0.9",
31
- "@memberjunction/global": "^1.0.9",
32
- "@memberjunction/storage": "^1.0.9",
33
- "@memberjunction/queue": "^1.0.9",
34
- "@memberjunction/sqlserver-dataprovider": "^1.0.9",
35
- "@memberjunction/skip-types": "^1.0.9",
24
+ "@memberjunction/ai": "^1.0.11",
25
+ "@memberjunction/ai-openai": "^1.0.11",
26
+ "@memberjunction/aiengine": "^1.0.11",
27
+ "@memberjunction/core": "^1.0.11",
28
+ "@memberjunction/core-entities": "^1.0.11",
29
+ "@memberjunction/data-context": "^1.0.11",
30
+ "@memberjunction/data-context-server": "^1.0.11",
31
+ "@memberjunction/global": "^1.0.11",
32
+ "@memberjunction/storage": "^1.0.11",
33
+ "@memberjunction/queue": "^1.0.11",
34
+ "@memberjunction/sqlserver-dataprovider": "^1.0.11",
35
+ "@memberjunction/skip-types": "^1.0.11",
36
36
  "@types/cors": "^2.8.13",
37
37
  "@types/jsonwebtoken": "^8.5.9",
38
38
  "@types/node": "^18.11.14",
@@ -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/9/2024, 5:58:12 PM
5
+ * GENERATED: 4/14/2024, 7:43:22 PM
6
6
  *
7
7
  * >>> DO NOT MODIFY THIS FILE!!!!!!!!!!!!
8
8
  * >>> YOUR CHANGES WILL BE OVERWRITTEN
@@ -370,6 +370,9 @@ export class Employee_ {
370
370
  @Field(() => [mj_core_schema_server_object_types.EmployeeSkill_])
371
371
  EmployeeSkillsArray: mj_core_schema_server_object_types.EmployeeSkill_[]; // Link to EmployeeSkills
372
372
 
373
+ @Field(() => [mj_core_schema_server_object_types.User_])
374
+ UsersArray: mj_core_schema_server_object_types.User_[]; // Link to Users
375
+
373
376
  }
374
377
 
375
378
  //****************************************************************************
@@ -527,6 +530,14 @@ export class EmployeeResolver extends ResolverBase {
527
530
  const result = this.ArrayMapFieldNamesToCodeNames('Employee Skills', await dataSource.query(sSQL));
528
531
  return result;
529
532
  }
533
+
534
+ @FieldResolver(() => [mj_core_schema_server_object_types.User_])
535
+ async UsersArray(@Root() employee_: Employee_, @Ctx() { dataSource, userPayload }: AppContext, @PubSub() pubSub: PubSubEngine) {
536
+ this.CheckUserReadPermissions('Users', userPayload);
537
+ const sSQL = `SELECT * FROM [${Metadata.Provider.ConfigData.MJCoreSchemaName}].[vwUsers] WHERE [EmployeeID]=${employee_.ID} ` + this.getRowLevelSecurityWhereClause('Users', userPayload, EntityPermissionType.Read, 'AND');
538
+ const result = this.ArrayMapFieldNamesToCodeNames('Users', await dataSource.query(sSQL));
539
+ return result;
540
+ }
530
541
 
531
542
  @Mutation(() => Employee_)
532
543
  async CreateEmployee(
@@ -15917,6 +15928,9 @@ export class VectorDatabase_ {
15917
15928
  @Field(() => [mj_core_schema_server_object_types.VectorIndex_])
15918
15929
  VectorIndexesArray: mj_core_schema_server_object_types.VectorIndex_[]; // Link to VectorIndexes
15919
15930
 
15931
+ @Field(() => [mj_core_schema_server_object_types.EntityDocument_])
15932
+ EntityDocumentsArray: mj_core_schema_server_object_types.EntityDocument_[]; // Link to EntityDocuments
15933
+
15920
15934
  }
15921
15935
 
15922
15936
  //****************************************************************************
@@ -16018,6 +16032,14 @@ export class VectorDatabaseResolver extends ResolverBase {
16018
16032
  const result = this.ArrayMapFieldNamesToCodeNames('Vector Indexes', await dataSource.query(sSQL));
16019
16033
  return result;
16020
16034
  }
16035
+
16036
+ @FieldResolver(() => [mj_core_schema_server_object_types.EntityDocument_])
16037
+ async EntityDocumentsArray(@Root() vectordatabase_: VectorDatabase_, @Ctx() { dataSource, userPayload }: AppContext, @PubSub() pubSub: PubSubEngine) {
16038
+ this.CheckUserReadPermissions('Entity Documents', userPayload);
16039
+ const sSQL = `SELECT * FROM [${Metadata.Provider.ConfigData.MJCoreSchemaName}].[vwEntityDocuments] WHERE [ID]=${vectordatabase_.ID} ` + this.getRowLevelSecurityWhereClause('Entity Documents', userPayload, EntityPermissionType.Read, 'AND');
16040
+ const result = this.ArrayMapFieldNamesToCodeNames('Entity Documents', await dataSource.query(sSQL));
16041
+ return result;
16042
+ }
16021
16043
 
16022
16044
  @Mutation(() => VectorDatabase_)
16023
16045
  async CreateVectorDatabase(
@@ -16121,6 +16143,9 @@ export class EntityRecordDocument_ {
16121
16143
  @Field()
16122
16144
  @MaxLength(8)
16123
16145
  UpdatedAt: Date;
16146
+
16147
+ @Field(() => Int)
16148
+ EntityDocumentID: number;
16124
16149
 
16125
16150
  }
16126
16151
 
@@ -16149,6 +16174,9 @@ export class CreateEntityRecordDocumentInput {
16149
16174
 
16150
16175
  @Field()
16151
16176
  EntityRecordUpdatedAt: Date;
16177
+
16178
+ @Field(() => Int)
16179
+ EntityDocumentID: number;
16152
16180
  }
16153
16181
 
16154
16182
 
@@ -16180,6 +16208,9 @@ export class UpdateEntityRecordDocumentInput {
16180
16208
 
16181
16209
  @Field()
16182
16210
  EntityRecordUpdatedAt: Date;
16211
+
16212
+ @Field(() => Int)
16213
+ EntityDocumentID: number;
16183
16214
  }
16184
16215
 
16185
16216
  //****************************************************************************
@@ -16330,6 +16361,12 @@ export class EntityDocument_ {
16330
16361
  @MaxLength(8)
16331
16362
  UpdatedAt: Date;
16332
16363
 
16364
+ @Field(() => Int)
16365
+ VectorDatabaseID: number;
16366
+
16367
+ @Field(() => Int)
16368
+ AIModelID: number;
16369
+
16333
16370
  @Field()
16334
16371
  @MaxLength(510)
16335
16372
  Entity: string;
@@ -16362,6 +16399,12 @@ export class CreateEntityDocumentInput {
16362
16399
 
16363
16400
  @Field({ nullable: true })
16364
16401
  Template: string;
16402
+
16403
+ @Field(() => Int)
16404
+ VectorDatabaseID: number;
16405
+
16406
+ @Field(() => Int)
16407
+ AIModelID: number;
16365
16408
  }
16366
16409
 
16367
16410
 
@@ -16387,6 +16430,12 @@ export class UpdateEntityDocumentInput {
16387
16430
 
16388
16431
  @Field({ nullable: true })
16389
16432
  Template: string;
16433
+
16434
+ @Field(() => Int)
16435
+ VectorDatabaseID: number;
16436
+
16437
+ @Field(() => Int)
16438
+ AIModelID: number;
16390
16439
  }
16391
16440
 
16392
16441
  //****************************************************************************
@@ -64,67 +64,83 @@ export class ReportResolverExtended {
64
64
  @Mutation(() => CreateReportResultType)
65
65
  async CreateReportFromConversationDetailID(@Arg('ConversationDetailID', () => Int) ConversationDetailID: number,
66
66
  @Ctx() {dataSource, userPayload}: AppContext): Promise<CreateReportResultType> {
67
- const md = new Metadata();
68
-
69
- const u = UserCache.Users.find(u => u.Email?.trim().toLowerCase() === userPayload?.email?.trim().toLowerCase());
70
- if (!u)
71
- throw new Error('Unable to find user')
72
-
73
- const cde = md.Entities.find(e => e.Name === 'Conversation Details')
74
- if (!cde)
75
- throw new Error('Unable to find Conversation Details Entity metadata')
76
-
77
- const cd = md.Entities.find(e => e.Name === 'Conversations')
78
- if (!cd)
79
- throw new Error('Unable to find Conversations Entity metadata')
80
-
81
- const sql = `SELECT cd.Message, cd.ConversationID, c.DataContextID
82
- FROM ${cde.SchemaName}.${cde.BaseView} cd
83
- INNER JOIN ${cd.SchemaName}.${cd.BaseView} c
84
- ON cd.ConversationID = c.ID
85
- WHERE cd.ID=${ConversationDetailID}`
86
- const result = await dataSource.query(sql);
87
- if (!result || result.length === 0)
88
- throw new Error('Unable to retrieve converation details')
89
- const skipData = <SkipAPIAnalysisCompleteResponse>JSON.parse(result[0].Message);
90
-
91
- const report = await md.GetEntityObject<ReportEntity>('Reports', u);
92
- report.NewRecord();
93
- report.Name = skipData.reportTitle ? skipData.reportTitle : 'Untitled Report';
94
- report.Description = skipData.userExplanation ? skipData.userExplanation : '';
95
- report.ConversationID = result[0].ConversationID;
96
- report.ConversationDetailID = ConversationDetailID;
97
-
98
- const dc: DataContext = new DataContext();
99
- await dc.LoadMetadata(result[0].DataContextID, u);
100
- const newDataContext = await DataContext.Clone(dc, false, u);
101
- if (!newDataContext)
102
- throw new Error('Error cloning data context')
103
- report.DataContextID = newDataContext.ID;
104
-
105
- // next, strip out the messags from the SkipData object to put them into our Report Configuration as we dont need to store that information as we have a
106
- // link back to the conversation and conversation detail
107
- const newSkipData : SkipAPIAnalysisCompleteResponse = JSON.parse(JSON.stringify(skipData));
108
- newSkipData.messages = [];
109
- report.Configuration = JSON.stringify(newSkipData)
110
-
111
- report.SharingScope = 'None'
112
- report.UserID = u.ID;
113
-
114
- if (await report.Save()) {
115
- return {
116
- ReportID: report.ID,
117
- ReportName: report.Name,
118
- Success: true,
119
- ErrorMessage: ''
67
+ try {
68
+ const md = new Metadata();
69
+
70
+ const u = UserCache.Users.find(u => u.Email?.trim().toLowerCase() === userPayload?.email?.trim().toLowerCase());
71
+ if (!u)
72
+ throw new Error('Unable to find user')
73
+
74
+ const cde = md.Entities.find(e => e.Name === 'Conversation Details')
75
+ if (!cde)
76
+ throw new Error('Unable to find Conversation Details Entity metadata')
77
+
78
+ const cd = md.Entities.find(e => e.Name === 'Conversations')
79
+ if (!cd)
80
+ throw new Error('Unable to find Conversations Entity metadata')
81
+
82
+ const sql = `SELECT
83
+ cd.Message, cd.ConversationID, c.DataContextID
84
+ FROM
85
+ ${cde.SchemaName}.${cde.BaseView} cd
86
+ INNER JOIN
87
+ ${cd.SchemaName}.${cd.BaseView} c
88
+ ON
89
+ cd.ConversationID = c.ID
90
+ WHERE
91
+ cd.ID=${ConversationDetailID}`
92
+
93
+ const result = await dataSource.query(sql);
94
+ if (!result || result.length === 0)
95
+ throw new Error('Unable to retrieve converation details')
96
+ const skipData = <SkipAPIAnalysisCompleteResponse>JSON.parse(result[0].Message);
97
+
98
+ const report = await md.GetEntityObject<ReportEntity>('Reports', u);
99
+ report.NewRecord();
100
+ report.Name = skipData.reportTitle ? skipData.reportTitle : 'Untitled Report';
101
+ report.Description = skipData.userExplanation ? skipData.userExplanation : '';
102
+ report.ConversationID = result[0].ConversationID;
103
+ report.ConversationDetailID = ConversationDetailID;
104
+
105
+ const dc: DataContext = new DataContext();
106
+ await dc.LoadMetadata(result[0].DataContextID, u);
107
+ const newDataContext = await DataContext.Clone(dc, false, u);
108
+ if (!newDataContext)
109
+ throw new Error('Error cloning data context')
110
+ report.DataContextID = newDataContext.ID;
111
+
112
+ // next, strip out the messags from the SkipData object to put them into our Report Configuration as we dont need to store that information as we have a
113
+ // link back to the conversation and conversation detail
114
+ const newSkipData : SkipAPIAnalysisCompleteResponse = JSON.parse(JSON.stringify(skipData));
115
+ newSkipData.messages = [];
116
+ report.Configuration = JSON.stringify(newSkipData)
117
+
118
+ report.SharingScope = 'None'
119
+ report.UserID = u.ID;
120
+
121
+ if (await report.Save()) {
122
+ return {
123
+ ReportID: report.ID,
124
+ ReportName: report.Name,
125
+ Success: true,
126
+ ErrorMessage: ''
127
+ }
128
+ }
129
+ else {
130
+ return {
131
+ ReportID: -1,
132
+ ReportName: '',
133
+ Success: false,
134
+ ErrorMessage: 'Unable to save new report'
135
+ }
120
136
  }
121
137
  }
122
- else {
138
+ catch (ex) {
123
139
  return {
124
140
  ReportID: -1,
125
141
  ReportName: '',
126
142
  Success: false,
127
- ErrorMessage: 'Unable to save new report'
143
+ ErrorMessage: 'Unable to create new report: ' + ex.message
128
144
  }
129
145
  }
130
146
  }