@memberjunction/server 0.9.128 → 0.9.141

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.
Files changed (65) hide show
  1. package/build.log.json +27 -0
  2. package/dist/apolloServer/TransactionPlugin.js +45 -45
  3. package/dist/apolloServer/TransactionPlugin.js.map +1 -1
  4. package/dist/apolloServer/index.js +26 -26
  5. package/dist/auth/exampleNewUserSubClass.js +53 -63
  6. package/dist/auth/exampleNewUserSubClass.js.map +1 -1
  7. package/dist/auth/index.js +110 -104
  8. package/dist/auth/index.js.map +1 -1
  9. package/dist/auth/newUsers.js +65 -66
  10. package/dist/auth/newUsers.js.map +1 -1
  11. package/dist/cache.js +10 -10
  12. package/dist/config.js +62 -61
  13. package/dist/config.js.map +1 -1
  14. package/dist/context.js +101 -101
  15. package/dist/context.js.map +1 -1
  16. package/dist/directives/Public.js +33 -33
  17. package/dist/directives/Public.js.map +1 -1
  18. package/dist/directives/index.js +17 -17
  19. package/dist/entitySubclasses/userViewEntity.server.js +127 -127
  20. package/dist/entitySubclasses/userViewEntity.server.js.map +1 -1
  21. package/dist/generated/generated.js +20205 -19004
  22. package/dist/generated/generated.js.map +1 -1
  23. package/dist/generic/PushStatusResolver.js +58 -58
  24. package/dist/generic/PushStatusResolver.js.map +1 -1
  25. package/dist/generic/ResolverBase.js +231 -231
  26. package/dist/generic/ResolverBase.js.map +1 -1
  27. package/dist/generic/RunViewResolver.js +400 -400
  28. package/dist/generic/RunViewResolver.js.map +1 -1
  29. package/dist/index.js +131 -131
  30. package/dist/index.js.map +1 -1
  31. package/dist/orm.js +33 -33
  32. package/dist/orm.js.map +1 -1
  33. package/dist/resolvers/AskSkipResolver.js +246 -246
  34. package/dist/resolvers/AskSkipResolver.js.map +1 -1
  35. package/dist/resolvers/ColorResolver.js +93 -93
  36. package/dist/resolvers/ColorResolver.js.map +1 -1
  37. package/dist/resolvers/DatasetResolver.js +167 -167
  38. package/dist/resolvers/DatasetResolver.js.map +1 -1
  39. package/dist/resolvers/EntityRecordNameResolver.js +111 -111
  40. package/dist/resolvers/EntityRecordNameResolver.js.map +1 -1
  41. package/dist/resolvers/EntityResolver.js +59 -59
  42. package/dist/resolvers/EntityResolver.js.map +1 -1
  43. package/dist/resolvers/MergeRecordsResolver.js +282 -282
  44. package/dist/resolvers/MergeRecordsResolver.js.map +1 -1
  45. package/dist/resolvers/QueryResolver.js +74 -0
  46. package/dist/resolvers/QueryResolver.js.map +1 -0
  47. package/dist/resolvers/ReportResolver.js +73 -73
  48. package/dist/resolvers/ReportResolver.js.map +1 -1
  49. package/dist/resolvers/UserFavoriteResolver.js +161 -161
  50. package/dist/resolvers/UserFavoriteResolver.js.map +1 -1
  51. package/dist/resolvers/UserResolver.js +69 -69
  52. package/dist/resolvers/UserResolver.js.map +1 -1
  53. package/dist/resolvers/UserViewResolver.js +101 -101
  54. package/dist/resolvers/UserViewResolver.js.map +1 -1
  55. package/dist/types.js +2 -2
  56. package/package.json +11 -11
  57. package/src/apolloServer/TransactionPlugin.ts +1 -1
  58. package/src/auth/exampleNewUserSubClass.ts +3 -1
  59. package/src/auth/index.ts +13 -4
  60. package/src/config.ts +1 -0
  61. package/src/generated/generated.ts +921 -2
  62. package/src/resolvers/AskSkipResolver.ts +1 -1
  63. package/src/resolvers/QueryResolver.ts +42 -0
  64. package/src/resolvers/ReportResolver.ts +0 -15
  65. package/tsconfig.json +2 -2
@@ -1,247 +1,247 @@
1
- "use strict";
2
- var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {
3
- var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
4
- if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
5
- else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
6
- return c > 3 && r && Object.defineProperty(target, key, r), r;
7
- };
8
- var __metadata = (this && this.__metadata) || function (k, v) {
9
- if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(k, v);
10
- };
11
- var __param = (this && this.__param) || function (paramIndex, decorator) {
12
- return function (target, key) { decorator(target, key, paramIndex); }
13
- };
14
- var __importDefault = (this && this.__importDefault) || function (mod) {
15
- return (mod && mod.__esModule) ? mod : { "default": mod };
16
- };
17
- var AskSkipResolver_1;
18
- Object.defineProperty(exports, "__esModule", { value: true });
19
- exports.AskSkipResolver = exports.AskSkipResultType = void 0;
20
- const type_graphql_1 = require("type-graphql");
21
- const ai_1 = require("@memberjunction/ai");
22
- const core_1 = require("@memberjunction/core");
23
- const sqlserver_dataprovider_1 = require("@memberjunction/sqlserver-dataprovider");
24
- const axios_1 = __importDefault(require("axios"));
25
- const PushStatusResolver_1 = require("../generic/PushStatusResolver");
26
- let AskSkipResultType = class AskSkipResultType {
27
- };
28
- __decorate([
29
- (0, type_graphql_1.Field)(() => Boolean),
30
- __metadata("design:type", Boolean)
31
- ], AskSkipResultType.prototype, "Success", void 0);
32
- __decorate([
33
- (0, type_graphql_1.Field)(() => String),
34
- __metadata("design:type", String)
35
- ], AskSkipResultType.prototype, "Status", void 0);
36
- __decorate([
37
- (0, type_graphql_1.Field)(() => String),
38
- __metadata("design:type", String)
39
- ], AskSkipResultType.prototype, "Result", void 0);
40
- __decorate([
41
- (0, type_graphql_1.Field)(() => type_graphql_1.Int),
42
- __metadata("design:type", Number)
43
- ], AskSkipResultType.prototype, "ConversationId", void 0);
44
- __decorate([
45
- (0, type_graphql_1.Field)(() => type_graphql_1.Int),
46
- __metadata("design:type", Number)
47
- ], AskSkipResultType.prototype, "UserMessageConversationDetailId", void 0);
48
- __decorate([
49
- (0, type_graphql_1.Field)(() => type_graphql_1.Int),
50
- __metadata("design:type", Number)
51
- ], AskSkipResultType.prototype, "AIMessageConversationDetailId", void 0);
52
- AskSkipResultType = __decorate([
53
- (0, type_graphql_1.ObjectType)()
54
- ], AskSkipResultType);
55
- exports.AskSkipResultType = AskSkipResultType;
56
- let AskSkipResolver = AskSkipResolver_1 = class AskSkipResolver {
57
- async ExecuteAskSkipQuery(UserQuestion, ConversationId, { dataSource, userPayload }, pubSub) {
58
- try {
59
- const md = new core_1.Metadata();
60
- const user = sqlserver_dataprovider_1.UserCache.Instance.Users.find((u) => u.Email === userPayload.email);
61
- if (!user)
62
- throw new Error(`User ${userPayload.email} not found in UserCache`);
63
- const convoEntity = await md.GetEntityObject('Conversations', user);
64
- if (!ConversationId || ConversationId <= 0) {
65
- convoEntity.NewRecord();
66
- if (user) {
67
- convoEntity.UserID = user.ID;
68
- convoEntity.Name = AskSkipResolver_1._defaultNewChatName;
69
- if (await convoEntity.Save())
70
- ConversationId = convoEntity.ID;
71
- else
72
- throw new Error(`Creating a new conversation failed`);
73
- }
74
- else
75
- throw new Error(`User ${userPayload.email} not found in UserCache`);
76
- }
77
- else {
78
- await convoEntity.Load(ConversationId);
79
- }
80
- const convoDetailEntity = await md.GetEntityObject('Conversation Details', user);
81
- convoDetailEntity.NewRecord();
82
- convoDetailEntity.ConversationID = ConversationId;
83
- convoDetailEntity.Message = UserQuestion;
84
- convoDetailEntity.Role = 'User';
85
- convoDetailEntity.Set('Sequence', 1);
86
- await convoDetailEntity.Save();
87
- const OrganizationId = process.env.BOT_SCHEMA_ORGANIZATION_ID;
88
- const input = { userInput: UserQuestion, conversationID: ConversationId, organizationID: OrganizationId };
89
- const url = process.env.BOT_EXTERNAL_API_URL;
90
- pubSub.publish(PushStatusResolver_1.PUSH_STATUS_UPDATES_TOPIC, {
91
- message: JSON.stringify({
92
- type: 'AskSkip',
93
- status: 'OK',
94
- message: 'Sure, I can help with that, just give me a second and I will think about the best way to complete your request.',
95
- }),
96
- sessionId: userPayload.sessionId,
97
- });
98
- const response = await (0, axios_1.default)({
99
- method: 'post',
100
- url: process.env.BOT_EXTERNAL_API_URL,
101
- data: input,
102
- });
103
- if (response.status === 200) {
104
- pubSub.publish(PushStatusResolver_1.PUSH_STATUS_UPDATES_TOPIC, {
105
- message: JSON.stringify({
106
- type: 'AskSkip',
107
- status: 'OK',
108
- message: 'I created the report structure, now I will get the data for you and analyze the results... Back to ya soon!',
109
- }),
110
- sessionId: userPayload.sessionId,
111
- });
112
- const sql = response.data.params.sql;
113
- const [{ result, analysis }, explanation] = await Promise.all([
114
- this.getSkipDataAndAnalysis(dataSource, UserQuestion, sql),
115
- this.getReportExplanation(UserQuestion, sql),
116
- ]);
117
- const sTitle = response.data.params.reportTitle || response.data.params.chartTitle;
118
- const sResult = JSON.stringify({
119
- SQLResults: {
120
- results: result,
121
- sql: sql,
122
- columns: response.data.params.columns,
123
- },
124
- UserMessage: '',
125
- ReportExplanation: explanation,
126
- Analysis: analysis,
127
- ReportTitle: sTitle,
128
- DisplayType: response.data.type,
129
- DrillDownView: response.data.params.drillDownView,
130
- DrillDownBaseViewField: response.data.params.drillDownBaseViewField,
131
- DrillDownReportValueField: response.data.params.drillDownReportValueField,
132
- ChartOptions: {
133
- xAxis: response.data.params.xAxis,
134
- xLabel: response.data.params.xLabel,
135
- yAxis: response.data.params.yAxis,
136
- yLabel: response.data.params.yLabel,
137
- color: response.data.params.color,
138
- yFormat: response.data.params.yFormat,
139
- },
140
- });
141
- const convoDetailEntityAI = await md.GetEntityObject('Conversation Details', user);
142
- convoDetailEntityAI.NewRecord();
143
- convoDetailEntityAI.ConversationID = ConversationId;
144
- convoDetailEntityAI.Message = sResult;
145
- convoDetailEntityAI.Role = 'AI';
146
- convoDetailEntityAI.Set('Sequence', 2);
147
- await convoDetailEntityAI.Save();
148
- if (convoEntity.Name === AskSkipResolver_1._defaultNewChatName) {
149
- convoEntity.Name = response.data.params.reportTitle || response.data.params.chartTitle || AskSkipResolver_1._defaultNewChatName;
150
- await convoEntity.Save();
151
- }
152
- const userNotification = await md.GetEntityObject('User Notifications', user);
153
- userNotification.NewRecord();
154
- userNotification.UserID = user.ID;
155
- userNotification.Title = 'Report Created: ' + sTitle;
156
- userNotification.Message = `Good news! Skip finished creating a report for you, click on this notification to jump back into the conversation.`;
157
- userNotification.Unread = true;
158
- userNotification.ResourceConfiguration = JSON.stringify({
159
- type: 'askskip',
160
- conversationId: ConversationId,
161
- });
162
- await userNotification.Save();
163
- pubSub.publish(PushStatusResolver_1.PUSH_STATUS_UPDATES_TOPIC, {
164
- message: JSON.stringify({
165
- type: 'UserNotifications',
166
- status: 'OK',
167
- details: {
168
- action: 'create',
169
- recordId: userNotification.ID,
170
- },
171
- }),
172
- sessionId: userPayload.sessionId,
173
- });
174
- return {
175
- Success: true,
176
- Status: 'OK',
177
- ConversationId: ConversationId,
178
- UserMessageConversationDetailId: convoDetailEntity.ID,
179
- AIMessageConversationDetailId: convoDetailEntityAI.ID,
180
- Result: sResult,
181
- };
182
- }
183
- else
184
- return { Success: false, Status: 'Error', Result: `User Question ${UserQuestion} didn't work!` };
185
- }
186
- catch (error) {
187
- console.error(`Error occurred: ${error}`);
188
- if (error.response) {
189
- console.log(error.response.data);
190
- console.log(error.response.status);
191
- console.log(error.response.headers);
192
- }
193
- else if (error.request) {
194
- console.log(error.request);
195
- }
196
- else {
197
- console.log('Error', error.message);
198
- }
199
- console.log(error.config);
200
- return {
201
- Success: false,
202
- Status: 'Error',
203
- Result: `User Question ${UserQuestion} didn't work!`,
204
- ConversationId: ConversationId,
205
- UserMessageConversationDetailId: 0,
206
- AIMessageConversationDetailId: 0,
207
- };
208
- }
209
- }
210
- async getSkipDataAndAnalysis(dataSource, userQuestion, sql) {
211
- const result = await dataSource.query(sql);
212
- const stringResult = JSON.stringify(result);
213
- const maxStringLength = 2000;
214
- const avgRowStringLength = stringResult.length / result.length;
215
- let sampleDataJSON = stringResult;
216
- if (stringResult.length > maxStringLength) {
217
- const rowsToUse = result.length / (maxStringLength / avgRowStringLength);
218
- const subsetResult = result.slice(0, rowsToUse);
219
- sampleDataJSON = JSON.stringify(subsetResult);
220
- }
221
- const analysis = await this.getAnalysis(userQuestion, sql, sampleDataJSON);
222
- return { result, analysis };
223
- }
224
- async getAnalysis(userQuestion, sql, sampleDataJSON) {
225
- return await (0, ai_1.SkipAnalyzeData)(userQuestion, sql, sampleDataJSON);
226
- }
227
- async getReportExplanation(userQuestion, sql) {
228
- return await (0, ai_1.SkipExplainQuery)(userQuestion, sql);
229
- }
230
- };
231
- AskSkipResolver._defaultNewChatName = 'New Chat';
232
- __decorate([
233
- (0, type_graphql_1.Query)(() => AskSkipResultType),
234
- __param(0, (0, type_graphql_1.Arg)('UserQuestion', () => String)),
235
- __param(1, (0, type_graphql_1.Arg)('ConversationId', () => type_graphql_1.Int)),
236
- __param(2, (0, type_graphql_1.Ctx)()),
237
- __param(3, (0, type_graphql_1.PubSub)()),
238
- __metadata("design:type", Function),
239
- __metadata("design:paramtypes", [String, Number, Object, type_graphql_1.PubSubEngine]),
240
- __metadata("design:returntype", Promise)
241
- ], AskSkipResolver.prototype, "ExecuteAskSkipQuery", null);
242
- AskSkipResolver = AskSkipResolver_1 = __decorate([
243
- (0, type_graphql_1.Resolver)(AskSkipResultType)
244
- ], AskSkipResolver);
245
- exports.AskSkipResolver = AskSkipResolver;
246
- exports.default = AskSkipResolver;
1
+ "use strict";
2
+ var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {
3
+ var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
4
+ if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
5
+ else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
6
+ return c > 3 && r && Object.defineProperty(target, key, r), r;
7
+ };
8
+ var __metadata = (this && this.__metadata) || function (k, v) {
9
+ if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(k, v);
10
+ };
11
+ var __param = (this && this.__param) || function (paramIndex, decorator) {
12
+ return function (target, key) { decorator(target, key, paramIndex); }
13
+ };
14
+ var __importDefault = (this && this.__importDefault) || function (mod) {
15
+ return (mod && mod.__esModule) ? mod : { "default": mod };
16
+ };
17
+ var AskSkipResolver_1;
18
+ Object.defineProperty(exports, "__esModule", { value: true });
19
+ exports.AskSkipResolver = exports.AskSkipResultType = void 0;
20
+ const type_graphql_1 = require("type-graphql");
21
+ const aiengine_1 = require("@memberjunction/aiengine");
22
+ const core_1 = require("@memberjunction/core");
23
+ const sqlserver_dataprovider_1 = require("@memberjunction/sqlserver-dataprovider");
24
+ const axios_1 = __importDefault(require("axios"));
25
+ const PushStatusResolver_1 = require("../generic/PushStatusResolver");
26
+ let AskSkipResultType = class AskSkipResultType {
27
+ };
28
+ exports.AskSkipResultType = AskSkipResultType;
29
+ __decorate([
30
+ (0, type_graphql_1.Field)(() => Boolean),
31
+ __metadata("design:type", Boolean)
32
+ ], AskSkipResultType.prototype, "Success", void 0);
33
+ __decorate([
34
+ (0, type_graphql_1.Field)(() => String),
35
+ __metadata("design:type", String)
36
+ ], AskSkipResultType.prototype, "Status", void 0);
37
+ __decorate([
38
+ (0, type_graphql_1.Field)(() => String),
39
+ __metadata("design:type", String)
40
+ ], AskSkipResultType.prototype, "Result", void 0);
41
+ __decorate([
42
+ (0, type_graphql_1.Field)(() => type_graphql_1.Int),
43
+ __metadata("design:type", Number)
44
+ ], AskSkipResultType.prototype, "ConversationId", void 0);
45
+ __decorate([
46
+ (0, type_graphql_1.Field)(() => type_graphql_1.Int),
47
+ __metadata("design:type", Number)
48
+ ], AskSkipResultType.prototype, "UserMessageConversationDetailId", void 0);
49
+ __decorate([
50
+ (0, type_graphql_1.Field)(() => type_graphql_1.Int),
51
+ __metadata("design:type", Number)
52
+ ], AskSkipResultType.prototype, "AIMessageConversationDetailId", void 0);
53
+ exports.AskSkipResultType = AskSkipResultType = __decorate([
54
+ (0, type_graphql_1.ObjectType)()
55
+ ], AskSkipResultType);
56
+ let AskSkipResolver = AskSkipResolver_1 = class AskSkipResolver {
57
+ async ExecuteAskSkipQuery(UserQuestion, ConversationId, { dataSource, userPayload }, pubSub) {
58
+ try {
59
+ const md = new core_1.Metadata();
60
+ const user = sqlserver_dataprovider_1.UserCache.Instance.Users.find((u) => u.Email === userPayload.email);
61
+ if (!user)
62
+ throw new Error(`User ${userPayload.email} not found in UserCache`);
63
+ const convoEntity = await md.GetEntityObject('Conversations', user);
64
+ if (!ConversationId || ConversationId <= 0) {
65
+ convoEntity.NewRecord();
66
+ if (user) {
67
+ convoEntity.UserID = user.ID;
68
+ convoEntity.Name = AskSkipResolver_1._defaultNewChatName;
69
+ if (await convoEntity.Save())
70
+ ConversationId = convoEntity.ID;
71
+ else
72
+ throw new Error(`Creating a new conversation failed`);
73
+ }
74
+ else
75
+ throw new Error(`User ${userPayload.email} not found in UserCache`);
76
+ }
77
+ else {
78
+ await convoEntity.Load(ConversationId);
79
+ }
80
+ const convoDetailEntity = await md.GetEntityObject('Conversation Details', user);
81
+ convoDetailEntity.NewRecord();
82
+ convoDetailEntity.ConversationID = ConversationId;
83
+ convoDetailEntity.Message = UserQuestion;
84
+ convoDetailEntity.Role = 'User';
85
+ convoDetailEntity.Set('Sequence', 1);
86
+ await convoDetailEntity.Save();
87
+ const OrganizationId = process.env.BOT_SCHEMA_ORGANIZATION_ID;
88
+ const input = { userInput: UserQuestion, conversationID: ConversationId, organizationID: OrganizationId };
89
+ const url = process.env.BOT_EXTERNAL_API_URL;
90
+ pubSub.publish(PushStatusResolver_1.PUSH_STATUS_UPDATES_TOPIC, {
91
+ message: JSON.stringify({
92
+ type: 'AskSkip',
93
+ status: 'OK',
94
+ message: 'Sure, I can help with that, just give me a second and I will think about the best way to complete your request.',
95
+ }),
96
+ sessionId: userPayload.sessionId,
97
+ });
98
+ const response = await (0, axios_1.default)({
99
+ method: 'post',
100
+ url: process.env.BOT_EXTERNAL_API_URL,
101
+ data: input,
102
+ });
103
+ if (response.status === 200) {
104
+ pubSub.publish(PushStatusResolver_1.PUSH_STATUS_UPDATES_TOPIC, {
105
+ message: JSON.stringify({
106
+ type: 'AskSkip',
107
+ status: 'OK',
108
+ message: 'I created the report structure, now I will get the data for you and analyze the results... Back to ya soon!',
109
+ }),
110
+ sessionId: userPayload.sessionId,
111
+ });
112
+ const sql = response.data.params.sql;
113
+ const [{ result, analysis }, explanation] = await Promise.all([
114
+ this.getSkipDataAndAnalysis(dataSource, UserQuestion, sql),
115
+ this.getReportExplanation(UserQuestion, sql),
116
+ ]);
117
+ const sTitle = response.data.params.reportTitle || response.data.params.chartTitle;
118
+ const sResult = JSON.stringify({
119
+ SQLResults: {
120
+ results: result,
121
+ sql: sql,
122
+ columns: response.data.params.columns,
123
+ },
124
+ UserMessage: '',
125
+ ReportExplanation: explanation,
126
+ Analysis: analysis,
127
+ ReportTitle: sTitle,
128
+ DisplayType: response.data.type,
129
+ DrillDownView: response.data.params.drillDownView,
130
+ DrillDownBaseViewField: response.data.params.drillDownBaseViewField,
131
+ DrillDownReportValueField: response.data.params.drillDownReportValueField,
132
+ ChartOptions: {
133
+ xAxis: response.data.params.xAxis,
134
+ xLabel: response.data.params.xLabel,
135
+ yAxis: response.data.params.yAxis,
136
+ yLabel: response.data.params.yLabel,
137
+ color: response.data.params.color,
138
+ yFormat: response.data.params.yFormat,
139
+ },
140
+ });
141
+ const convoDetailEntityAI = await md.GetEntityObject('Conversation Details', user);
142
+ convoDetailEntityAI.NewRecord();
143
+ convoDetailEntityAI.ConversationID = ConversationId;
144
+ convoDetailEntityAI.Message = sResult;
145
+ convoDetailEntityAI.Role = 'AI';
146
+ convoDetailEntityAI.Set('Sequence', 2);
147
+ await convoDetailEntityAI.Save();
148
+ if (convoEntity.Name === AskSkipResolver_1._defaultNewChatName) {
149
+ convoEntity.Name = response.data.params.reportTitle || response.data.params.chartTitle || AskSkipResolver_1._defaultNewChatName;
150
+ await convoEntity.Save();
151
+ }
152
+ const userNotification = await md.GetEntityObject('User Notifications', user);
153
+ userNotification.NewRecord();
154
+ userNotification.UserID = user.ID;
155
+ userNotification.Title = 'Report Created: ' + sTitle;
156
+ userNotification.Message = `Good news! Skip finished creating a report for you, click on this notification to jump back into the conversation.`;
157
+ userNotification.Unread = true;
158
+ userNotification.ResourceConfiguration = JSON.stringify({
159
+ type: 'askskip',
160
+ conversationId: ConversationId,
161
+ });
162
+ await userNotification.Save();
163
+ pubSub.publish(PushStatusResolver_1.PUSH_STATUS_UPDATES_TOPIC, {
164
+ message: JSON.stringify({
165
+ type: 'UserNotifications',
166
+ status: 'OK',
167
+ details: {
168
+ action: 'create',
169
+ recordId: userNotification.ID,
170
+ },
171
+ }),
172
+ sessionId: userPayload.sessionId,
173
+ });
174
+ return {
175
+ Success: true,
176
+ Status: 'OK',
177
+ ConversationId: ConversationId,
178
+ UserMessageConversationDetailId: convoDetailEntity.ID,
179
+ AIMessageConversationDetailId: convoDetailEntityAI.ID,
180
+ Result: sResult,
181
+ };
182
+ }
183
+ else
184
+ return { Success: false, Status: 'Error', Result: `User Question ${UserQuestion} didn't work!` };
185
+ }
186
+ catch (error) {
187
+ console.error(`Error occurred: ${error}`);
188
+ if (error.response) {
189
+ console.log(error.response.data);
190
+ console.log(error.response.status);
191
+ console.log(error.response.headers);
192
+ }
193
+ else if (error.request) {
194
+ console.log(error.request);
195
+ }
196
+ else {
197
+ console.log('Error', error.message);
198
+ }
199
+ console.log(error.config);
200
+ return {
201
+ Success: false,
202
+ Status: 'Error',
203
+ Result: `User Question ${UserQuestion} didn't work!`,
204
+ ConversationId: ConversationId,
205
+ UserMessageConversationDetailId: 0,
206
+ AIMessageConversationDetailId: 0,
207
+ };
208
+ }
209
+ }
210
+ async getSkipDataAndAnalysis(dataSource, userQuestion, sql) {
211
+ const result = await dataSource.query(sql);
212
+ const stringResult = JSON.stringify(result);
213
+ const maxStringLength = 2000;
214
+ const avgRowStringLength = stringResult.length / result.length;
215
+ let sampleDataJSON = stringResult;
216
+ if (stringResult.length > maxStringLength) {
217
+ const rowsToUse = result.length / (maxStringLength / avgRowStringLength);
218
+ const subsetResult = result.slice(0, rowsToUse);
219
+ sampleDataJSON = JSON.stringify(subsetResult);
220
+ }
221
+ const analysis = await this.getAnalysis(userQuestion, sql, sampleDataJSON);
222
+ return { result, analysis };
223
+ }
224
+ async getAnalysis(userQuestion, sql, sampleDataJSON) {
225
+ return await (0, aiengine_1.SkipAnalyzeData)(userQuestion, sql, sampleDataJSON);
226
+ }
227
+ async getReportExplanation(userQuestion, sql) {
228
+ return await (0, aiengine_1.SkipExplainQuery)(userQuestion, sql);
229
+ }
230
+ };
231
+ exports.AskSkipResolver = AskSkipResolver;
232
+ AskSkipResolver._defaultNewChatName = 'New Chat';
233
+ __decorate([
234
+ (0, type_graphql_1.Query)(() => AskSkipResultType),
235
+ __param(0, (0, type_graphql_1.Arg)('UserQuestion', () => String)),
236
+ __param(1, (0, type_graphql_1.Arg)('ConversationId', () => type_graphql_1.Int)),
237
+ __param(2, (0, type_graphql_1.Ctx)()),
238
+ __param(3, (0, type_graphql_1.PubSub)()),
239
+ __metadata("design:type", Function),
240
+ __metadata("design:paramtypes", [String, Number, Object, type_graphql_1.PubSubEngine]),
241
+ __metadata("design:returntype", Promise)
242
+ ], AskSkipResolver.prototype, "ExecuteAskSkipQuery", null);
243
+ exports.AskSkipResolver = AskSkipResolver = AskSkipResolver_1 = __decorate([
244
+ (0, type_graphql_1.Resolver)(AskSkipResultType)
245
+ ], AskSkipResolver);
246
+ exports.default = AskSkipResolver;
247
247
  //# sourceMappingURL=AskSkipResolver.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"AskSkipResolver.js","sourceRoot":"","sources":["../../src/resolvers/AskSkipResolver.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"AskSkipResolver.js","sourceRoot":"","sources":["../../src/resolvers/AskSkipResolver.ts"],"names":[],"mappings":"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"}