@memberjunction/server 1.0.8 → 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.
- package/CHANGELOG.json +175 -1
- package/CHANGELOG.md +42 -2
- package/dist/generated/generated.d.ts +13 -0
- package/dist/generated/generated.d.ts.map +1 -1
- package/dist/generated/generated.js +74 -0
- package/dist/generated/generated.js.map +1 -1
- package/dist/resolvers/ReportResolver.d.ts.map +1 -1
- package/dist/resolvers/ReportResolver.js +60 -45
- package/dist/resolvers/ReportResolver.js.map +1 -1
- package/package.json +13 -13
- package/src/generated/generated.ts +50 -1
- package/src/resolvers/ReportResolver.ts +71 -55
|
@@ -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;
|
|
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
|
-
|
|
87
|
-
|
|
88
|
-
|
|
89
|
-
|
|
90
|
-
|
|
91
|
-
|
|
92
|
-
|
|
93
|
-
|
|
94
|
-
|
|
95
|
-
|
|
96
|
-
|
|
97
|
-
|
|
98
|
-
|
|
99
|
-
|
|
100
|
-
|
|
101
|
-
|
|
102
|
-
|
|
103
|
-
|
|
104
|
-
|
|
105
|
-
|
|
106
|
-
|
|
107
|
-
|
|
108
|
-
|
|
109
|
-
|
|
110
|
-
|
|
111
|
-
|
|
112
|
-
|
|
113
|
-
|
|
114
|
-
|
|
115
|
-
|
|
116
|
-
|
|
117
|
-
|
|
118
|
-
|
|
119
|
-
|
|
120
|
-
|
|
121
|
-
|
|
122
|
-
|
|
123
|
-
|
|
124
|
-
|
|
125
|
-
|
|
126
|
-
|
|
127
|
-
|
|
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
|
-
|
|
145
|
+
catch (ex) {
|
|
131
146
|
return {
|
|
132
147
|
ReportID: -1,
|
|
133
148
|
ReportName: '',
|
|
134
149
|
Success: false,
|
|
135
|
-
ErrorMessage: 'Unable to
|
|
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":";;;;;;;;;;;;;;;AAAA,+CAA2D;AAC3D,+CAA2F;AAI3F,+DAA2D;AAC3D,mFAAmE;AAG5D,IAAM,mBAAmB,GAAzB,MAAM,mBAAmB;CAkB/B,CAAA;AAlBY,kDAAmB;AAE9B;IADC,IAAA,oBAAK,GAAE;;qDACS;AAGjB;IADC,IAAA,oBAAK,GAAE;;oDACS;AAGjB;IADC,IAAA,oBAAK,GAAE;;oDACQ;AAGhB;IADC,IAAA,oBAAK,GAAE;;qDACS;AAGjB;IADC,IAAA,oBAAK,GAAE;;0DACc;AAGtB;IADC,IAAA,oBAAK,GAAE;;yDACa;8BAjBV,mBAAmB;IAD/B,IAAA,yBAAU,GAAE;GACA,mBAAmB,CAkB/B;AAGM,IAAM,sBAAsB,GAA5B,MAAM,sBAAsB;CAYlC,CAAA;AAZY,wDAAsB;AAEjC;IADC,IAAA,oBAAK,GAAE;;wDACS;AAGjB;IADC,IAAA,oBAAK,GAAE;;0DACW;AAGnB;IADC,IAAA,oBAAK,GAAE;;uDACS;AAGjB;IADC,IAAA,oBAAK,GAAE;;4DACa;iCAXV,sBAAsB;IADlC,IAAA,yBAAU,GAAE;GACA,sBAAsB,CAYlC;AAGM,IAAM,sBAAsB,GAA5B,MAAM,sBAAsB;IAE3B,AAAN,KAAK,CAAC,aAAa,CAA6B,QAAgB,EAAS,EAAc;QACrF,MAAM,SAAS,GAAG,IAAI,gBAAS,EAAE,CAAC;QAClC,MAAM,MAAM,GAAG,MAAM,SAAS,CAAC,SAAS,CAAC,EAAE,QAAQ,EAAE,QAAQ,EAAE,CAAC,CAAC;QACjE,OAAO;YACL,QAAQ,EAAE,QAAQ;YAClB,OAAO,EAAE,MAAM,CAAC,OAAO;YACvB,OAAO,EAAE,IAAI,CAAC,SAAS,CAAC,MAAM,CAAC,OAAO,CAAC;YACvC,QAAQ,EAAE,MAAM,CAAC,QAAQ;YACzB,aAAa,EAAE,MAAM,CAAC,aAAa;YACnC,YAAY,EAAE,MAAM,CAAC,YAAY;SAClC,CAAC;IACJ,CAAC;IAMK,AAAN,KAAK,CAAC,oCAAoC,CAAyC,oBAA4B,EAC7D,EAAC,UAAU,EAAE,WAAW,EAAa;QACrF,MAAM,EAAE,GAAG,IAAI,eAAQ,EAAE,CAAC;
|
|
1
|
+
{"version":3,"file":"ReportResolver.js","sourceRoot":"","sources":["../../src/resolvers/ReportResolver.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;AAAA,+CAA2D;AAC3D,+CAA2F;AAI3F,+DAA2D;AAC3D,mFAAmE;AAG5D,IAAM,mBAAmB,GAAzB,MAAM,mBAAmB;CAkB/B,CAAA;AAlBY,kDAAmB;AAE9B;IADC,IAAA,oBAAK,GAAE;;qDACS;AAGjB;IADC,IAAA,oBAAK,GAAE;;oDACS;AAGjB;IADC,IAAA,oBAAK,GAAE;;oDACQ;AAGhB;IADC,IAAA,oBAAK,GAAE;;qDACS;AAGjB;IADC,IAAA,oBAAK,GAAE;;0DACc;AAGtB;IADC,IAAA,oBAAK,GAAE;;yDACa;8BAjBV,mBAAmB;IAD/B,IAAA,yBAAU,GAAE;GACA,mBAAmB,CAkB/B;AAGM,IAAM,sBAAsB,GAA5B,MAAM,sBAAsB;CAYlC,CAAA;AAZY,wDAAsB;AAEjC;IADC,IAAA,oBAAK,GAAE;;wDACS;AAGjB;IADC,IAAA,oBAAK,GAAE;;0DACW;AAGnB;IADC,IAAA,oBAAK,GAAE;;uDACS;AAGjB;IADC,IAAA,oBAAK,GAAE;;4DACa;iCAXV,sBAAsB;IADlC,IAAA,yBAAU,GAAE;GACA,sBAAsB,CAYlC;AAGM,IAAM,sBAAsB,GAA5B,MAAM,sBAAsB;IAE3B,AAAN,KAAK,CAAC,aAAa,CAA6B,QAAgB,EAAS,EAAc;QACrF,MAAM,SAAS,GAAG,IAAI,gBAAS,EAAE,CAAC;QAClC,MAAM,MAAM,GAAG,MAAM,SAAS,CAAC,SAAS,CAAC,EAAE,QAAQ,EAAE,QAAQ,EAAE,CAAC,CAAC;QACjE,OAAO;YACL,QAAQ,EAAE,QAAQ;YAClB,OAAO,EAAE,MAAM,CAAC,OAAO;YACvB,OAAO,EAAE,IAAI,CAAC,SAAS,CAAC,MAAM,CAAC,OAAO,CAAC;YACvC,QAAQ,EAAE,MAAM,CAAC,QAAQ;YACzB,aAAa,EAAE,MAAM,CAAC,aAAa;YACnC,YAAY,EAAE,MAAM,CAAC,YAAY;SAClC,CAAC;IACJ,CAAC;IAMK,AAAN,KAAK,CAAC,oCAAoC,CAAyC,oBAA4B,EAC7D,EAAC,UAAU,EAAE,WAAW,EAAa;QACrF,IAAI,CAAC;YACH,MAAM,EAAE,GAAG,IAAI,eAAQ,EAAE,CAAC;YAE1B,MAAM,CAAC,GAAG,kCAAS,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,KAAK,EAAE,IAAI,EAAE,CAAC,WAAW,EAAE,KAAK,WAAW,EAAE,KAAK,EAAE,IAAI,EAAE,CAAC,WAAW,EAAE,CAAC,CAAC;YAChH,IAAI,CAAC,CAAC;gBACJ,MAAM,IAAI,KAAK,CAAC,qBAAqB,CAAC,CAAA;YAExC,MAAM,GAAG,GAAG,EAAE,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,KAAK,sBAAsB,CAAC,CAAA;YACpE,IAAI,CAAC,GAAG;gBACN,MAAM,IAAI,KAAK,CAAC,qDAAqD,CAAC,CAAA;YAExE,MAAM,EAAE,GAAG,EAAE,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,KAAK,eAAe,CAAC,CAAA;YAC5D,IAAI,CAAC,EAAE;gBACL,MAAM,IAAI,KAAK,CAAC,8CAA8C,CAAC,CAAA;YAEjE,MAAM,GAAG,GAAG;;;wBAGM,GAAG,CAAC,UAAU,IAAI,GAAG,CAAC,QAAQ;;wBAE9B,EAAE,CAAC,UAAU,IAAI,EAAE,CAAC,QAAQ;;;;8BAItB,oBAAoB,EAAE,CAAA;YAE9C,MAAM,MAAM,GAAG,MAAM,UAAU,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;YAC3C,IAAI,CAAC,MAAM,IAAI,MAAM,CAAC,MAAM,KAAK,CAAC;gBAChC,MAAM,IAAI,KAAK,CAAC,wCAAwC,CAAC,CAAA;YAC3D,MAAM,QAAQ,GAAoC,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC;YAEhF,MAAM,MAAM,GAAG,MAAM,EAAE,CAAC,eAAe,CAAe,SAAS,EAAE,CAAC,CAAC,CAAC;YACpE,MAAM,CAAC,SAAS,EAAE,CAAC;YACnB,MAAM,CAAC,IAAI,GAAG,QAAQ,CAAC,WAAW,CAAC,CAAC,CAAC,QAAQ,CAAC,WAAW,CAAC,CAAC,CAAC,iBAAiB,CAAC;YAC9E,MAAM,CAAC,WAAW,GAAG,QAAQ,CAAC,eAAe,CAAC,CAAC,CAAC,QAAQ,CAAC,eAAe,CAAC,CAAC,CAAC,EAAE,CAAC;YAC9E,MAAM,CAAC,cAAc,GAAG,MAAM,CAAC,CAAC,CAAC,CAAC,cAAc,CAAC;YACjD,MAAM,CAAC,oBAAoB,GAAG,oBAAoB,CAAC;YAEnD,MAAM,EAAE,GAAgB,IAAI,0BAAW,EAAE,CAAC;YAC1C,MAAM,EAAE,CAAC,YAAY,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,aAAa,EAAE,CAAC,CAAC,CAAC;YAClD,MAAM,cAAc,GAAG,MAAM,0BAAW,CAAC,KAAK,CAAC,EAAE,EAAE,KAAK,EAAE,CAAC,CAAC,CAAC;YAC7D,IAAI,CAAC,cAAc;gBACjB,MAAM,IAAI,KAAK,CAAC,4BAA4B,CAAC,CAAA;YAC/C,MAAM,CAAC,aAAa,GAAG,cAAc,CAAC,EAAE,CAAC;YAIzC,MAAM,WAAW,GAAqC,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,SAAS,CAAC,QAAQ,CAAC,CAAC,CAAC;YAC3F,WAAW,CAAC,QAAQ,GAAG,EAAE,CAAC;YAC1B,MAAM,CAAC,aAAa,GAAG,IAAI,CAAC,SAAS,CAAC,WAAW,CAAC,CAAA;YAElD,MAAM,CAAC,YAAY,GAAG,MAAM,CAAA;YAC5B,MAAM,CAAC,MAAM,GAAG,CAAC,CAAC,EAAE,CAAC;YAErB,IAAI,MAAM,MAAM,CAAC,IAAI,EAAE,EAAG,CAAC;gBACzB,OAAO;oBACL,QAAQ,EAAE,MAAM,CAAC,EAAE;oBACnB,UAAU,EAAE,MAAM,CAAC,IAAI;oBACvB,OAAO,EAAE,IAAI;oBACb,YAAY,EAAE,EAAE;iBACjB,CAAA;YACH,CAAC;iBACI,CAAC;gBACJ,OAAO;oBACL,QAAQ,EAAE,CAAC,CAAC;oBACZ,UAAU,EAAE,EAAE;oBACd,OAAO,EAAE,KAAK;oBACd,YAAY,EAAE,2BAA2B;iBAC1C,CAAA;YACH,CAAC;QACH,CAAC;QACD,OAAO,EAAE,EAAE,CAAC;YACV,OAAO;gBACL,QAAQ,EAAE,CAAC,CAAC;gBACZ,UAAU,EAAE,EAAE;gBACd,OAAO,EAAE,KAAK;gBACd,YAAY,EAAE,+BAA+B,GAAG,EAAE,CAAC,OAAO;aAC3D,CAAA;QACH,CAAC;IACH,CAAC;CACF,CAAA;AArGY,wDAAsB;AAE3B;IADL,IAAA,oBAAK,EAAC,GAAG,EAAE,CAAC,mBAAmB,CAAC;IACZ,WAAA,IAAA,kBAAG,EAAC,UAAU,EAAE,GAAG,EAAE,CAAC,kBAAG,CAAC,CAAA;IAAoB,WAAA,IAAA,kBAAG,GAAE,CAAA;;;;2DAWvE;AAMK;IADL,IAAA,uBAAQ,EAAC,GAAG,EAAE,CAAC,sBAAsB,CAAC;IACK,WAAA,IAAA,kBAAG,EAAC,sBAAsB,EAAE,GAAG,EAAE,CAAC,kBAAG,CAAC,CAAA;IACtC,WAAA,IAAA,kBAAG,GAAE,CAAA;;;;kFAgFhD;iCApGU,sBAAsB;IADlC,IAAA,uBAAQ,EAAC,mBAAmB,CAAC;GACjB,sBAAsB,CAqGlC"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@memberjunction/server",
|
|
3
|
-
"version": "1.0.
|
|
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.
|
|
25
|
-
"@memberjunction/ai-openai": "^1.0.
|
|
26
|
-
"@memberjunction/aiengine": "^1.0.
|
|
27
|
-
"@memberjunction/core": "^1.0.
|
|
28
|
-
"@memberjunction/core-entities": "^1.0.
|
|
29
|
-
"@memberjunction/data-context": "^1.0.
|
|
30
|
-
"@memberjunction/data-context-server": "^1.0.
|
|
31
|
-
"@memberjunction/global": "^1.0.
|
|
32
|
-
"@memberjunction/storage": "^1.0.
|
|
33
|
-
"@memberjunction/queue": "^1.0.
|
|
34
|
-
"@memberjunction/sqlserver-dataprovider": "^1.0.
|
|
35
|
-
"@memberjunction/skip-types": "^1.0.
|
|
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/
|
|
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
|
-
|
|
68
|
-
|
|
69
|
-
|
|
70
|
-
|
|
71
|
-
|
|
72
|
-
|
|
73
|
-
|
|
74
|
-
|
|
75
|
-
|
|
76
|
-
|
|
77
|
-
|
|
78
|
-
|
|
79
|
-
|
|
80
|
-
|
|
81
|
-
|
|
82
|
-
|
|
83
|
-
|
|
84
|
-
|
|
85
|
-
|
|
86
|
-
|
|
87
|
-
|
|
88
|
-
|
|
89
|
-
|
|
90
|
-
|
|
91
|
-
|
|
92
|
-
|
|
93
|
-
|
|
94
|
-
|
|
95
|
-
|
|
96
|
-
|
|
97
|
-
|
|
98
|
-
|
|
99
|
-
|
|
100
|
-
|
|
101
|
-
|
|
102
|
-
|
|
103
|
-
|
|
104
|
-
|
|
105
|
-
|
|
106
|
-
|
|
107
|
-
|
|
108
|
-
|
|
109
|
-
|
|
110
|
-
|
|
111
|
-
|
|
112
|
-
|
|
113
|
-
|
|
114
|
-
|
|
115
|
-
|
|
116
|
-
|
|
117
|
-
|
|
118
|
-
|
|
119
|
-
|
|
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
|
-
|
|
138
|
+
catch (ex) {
|
|
123
139
|
return {
|
|
124
140
|
ReportID: -1,
|
|
125
141
|
ReportName: '',
|
|
126
142
|
Success: false,
|
|
127
|
-
ErrorMessage: 'Unable to
|
|
143
|
+
ErrorMessage: 'Unable to create new report: ' + ex.message
|
|
128
144
|
}
|
|
129
145
|
}
|
|
130
146
|
}
|