@memberjunction/server 2.52.0 → 2.54.0
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/dist/config.d.ts +1 -1
- package/dist/config.js +1 -1
- package/dist/config.js.map +1 -1
- package/dist/generated/generated.d.ts +14 -0
- package/dist/generated/generated.d.ts.map +1 -1
- package/dist/generated/generated.js +98 -0
- package/dist/generated/generated.js.map +1 -1
- package/dist/generic/ResolverBase.js +1 -1
- package/dist/generic/ResolverBase.js.map +1 -1
- package/dist/generic/RunViewResolver.d.ts +29 -1
- package/dist/generic/RunViewResolver.d.ts.map +1 -1
- package/dist/generic/RunViewResolver.js +140 -2
- package/dist/generic/RunViewResolver.js.map +1 -1
- package/dist/resolvers/FileResolver.js +1 -1
- package/dist/resolvers/FileResolver.js.map +1 -1
- package/dist/resolvers/QueryResolver.d.ts +2 -0
- package/dist/resolvers/QueryResolver.d.ts.map +1 -1
- package/dist/resolvers/QueryResolver.js +57 -0
- package/dist/resolvers/QueryResolver.js.map +1 -1
- package/dist/resolvers/RunAIPromptResolver.d.ts +1 -0
- package/dist/resolvers/RunAIPromptResolver.d.ts.map +1 -1
- package/dist/resolvers/RunAIPromptResolver.js +9 -2
- package/dist/resolvers/RunAIPromptResolver.js.map +1 -1
- package/package.json +25 -25
- package/src/config.ts +1 -1
- package/src/generated/generated.ts +60 -0
- package/src/generic/ResolverBase.ts +1 -1
- package/src/generic/RunViewResolver.ts +718 -587
- package/src/resolvers/FileResolver.ts +1 -1
- package/src/resolvers/QueryResolver.ts +134 -81
- package/src/resolvers/RunAIPromptResolver.ts +7 -2
|
@@ -72,7 +72,7 @@ export class FileResolver extends FileResolverBase {
|
|
|
72
72
|
|
|
73
73
|
// Save the file record with the updated input
|
|
74
74
|
const mapper = new FieldMapper();
|
|
75
|
-
fileEntity.LoadFromData(mapper.ReverseMapFields({ ...input }));
|
|
75
|
+
await fileEntity.LoadFromData(mapper.ReverseMapFields({ ...input }));
|
|
76
76
|
fileEntity.SetMany(mapper.ReverseMapFields({ ...updatedInput }));
|
|
77
77
|
await fileEntity.Save();
|
|
78
78
|
const File = mapper.MapFields({ ...fileEntity.GetAll() });
|
|
@@ -1,81 +1,134 @@
|
|
|
1
|
-
// Queries are MemberJunction primitive operations that are used to retrieve data from the server from any stored query
|
|
2
|
-
import { RunQuery } from '@memberjunction/core';
|
|
3
|
-
import { Arg, Ctx, Field, Int, ObjectType, Query, Resolver } from 'type-graphql';
|
|
4
|
-
import { AppContext } from '../types.js';
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
@
|
|
36
|
-
@Arg('
|
|
37
|
-
|
|
38
|
-
const
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
|
|
50
|
-
|
|
51
|
-
|
|
52
|
-
|
|
53
|
-
|
|
54
|
-
|
|
55
|
-
|
|
56
|
-
|
|
57
|
-
|
|
58
|
-
|
|
59
|
-
|
|
60
|
-
@
|
|
61
|
-
@Arg('
|
|
62
|
-
|
|
63
|
-
const
|
|
64
|
-
|
|
65
|
-
|
|
66
|
-
|
|
67
|
-
|
|
68
|
-
|
|
69
|
-
|
|
70
|
-
|
|
71
|
-
|
|
72
|
-
|
|
73
|
-
|
|
74
|
-
|
|
75
|
-
|
|
76
|
-
|
|
77
|
-
|
|
78
|
-
|
|
79
|
-
|
|
80
|
-
|
|
81
|
-
}
|
|
1
|
+
// Queries are MemberJunction primitive operations that are used to retrieve data from the server from any stored query
|
|
2
|
+
import { RunQuery } from '@memberjunction/core';
|
|
3
|
+
import { Arg, Ctx, Field, Int, ObjectType, Query, Resolver } from 'type-graphql';
|
|
4
|
+
import { AppContext } from '../types.js';
|
|
5
|
+
import { RequireSystemUser } from '../directives/RequireSystemUser.js';
|
|
6
|
+
|
|
7
|
+
@ObjectType()
|
|
8
|
+
export class RunQueryResultType {
|
|
9
|
+
@Field()
|
|
10
|
+
QueryID: string;
|
|
11
|
+
|
|
12
|
+
@Field()
|
|
13
|
+
QueryName: string;
|
|
14
|
+
|
|
15
|
+
@Field()
|
|
16
|
+
Success: boolean;
|
|
17
|
+
|
|
18
|
+
@Field()
|
|
19
|
+
Results: string;
|
|
20
|
+
|
|
21
|
+
@Field()
|
|
22
|
+
RowCount: number;
|
|
23
|
+
|
|
24
|
+
@Field()
|
|
25
|
+
ExecutionTime: number;
|
|
26
|
+
|
|
27
|
+
@Field()
|
|
28
|
+
ErrorMessage: string;
|
|
29
|
+
}
|
|
30
|
+
|
|
31
|
+
@Resolver(RunQueryResultType)
|
|
32
|
+
export class ReportResolver {
|
|
33
|
+
@Query(() => RunQueryResultType)
|
|
34
|
+
async GetQueryData(@Arg('QueryID', () => String) QueryID: string,
|
|
35
|
+
@Ctx() context: AppContext,
|
|
36
|
+
@Arg('CategoryID', () => String, {nullable: true}) CategoryID?: string,
|
|
37
|
+
@Arg('CategoryName', () => String, {nullable: true}) CategoryName?: string): Promise<RunQueryResultType> {
|
|
38
|
+
const runQuery = new RunQuery();
|
|
39
|
+
const result = await runQuery.RunQuery(
|
|
40
|
+
{
|
|
41
|
+
QueryID: QueryID,
|
|
42
|
+
CategoryID: CategoryID,
|
|
43
|
+
CategoryName: CategoryName
|
|
44
|
+
},
|
|
45
|
+
context.userPayload.userRecord);
|
|
46
|
+
|
|
47
|
+
return {
|
|
48
|
+
QueryID: QueryID,
|
|
49
|
+
QueryName: result.QueryName,
|
|
50
|
+
Success: result.Success,
|
|
51
|
+
Results: JSON.stringify(result.Results),
|
|
52
|
+
RowCount: result.RowCount,
|
|
53
|
+
ExecutionTime: result.ExecutionTime,
|
|
54
|
+
ErrorMessage: result.ErrorMessage,
|
|
55
|
+
};
|
|
56
|
+
}
|
|
57
|
+
|
|
58
|
+
@Query(() => RunQueryResultType)
|
|
59
|
+
async GetQueryDataByName(@Arg('QueryName', () => String) QueryName: string,
|
|
60
|
+
@Ctx() context: AppContext,
|
|
61
|
+
@Arg('CategoryID', () => String, {nullable: true}) CategoryID?: string,
|
|
62
|
+
@Arg('CategoryName', () => String, {nullable: true}) CategoryName?: string): Promise<RunQueryResultType> {
|
|
63
|
+
const runQuery = new RunQuery();
|
|
64
|
+
const result = await runQuery.RunQuery(
|
|
65
|
+
{
|
|
66
|
+
QueryName: QueryName,
|
|
67
|
+
CategoryID: CategoryID,
|
|
68
|
+
CategoryName: CategoryName
|
|
69
|
+
},
|
|
70
|
+
context.userPayload.userRecord);
|
|
71
|
+
|
|
72
|
+
return {
|
|
73
|
+
QueryID: result.QueryID,
|
|
74
|
+
QueryName: QueryName,
|
|
75
|
+
Success: result.Success,
|
|
76
|
+
Results: JSON.stringify(result.Results),
|
|
77
|
+
RowCount: result.RowCount,
|
|
78
|
+
ExecutionTime: result.ExecutionTime,
|
|
79
|
+
ErrorMessage: result.ErrorMessage,
|
|
80
|
+
};
|
|
81
|
+
}
|
|
82
|
+
|
|
83
|
+
@RequireSystemUser()
|
|
84
|
+
@Query(() => RunQueryResultType)
|
|
85
|
+
async GetQueryDataSystemUser(@Arg('QueryID', () => String) QueryID: string,
|
|
86
|
+
@Ctx() context: AppContext,
|
|
87
|
+
@Arg('CategoryID', () => String, {nullable: true}) CategoryID?: string,
|
|
88
|
+
@Arg('CategoryName', () => String, {nullable: true}) CategoryName?: string): Promise<RunQueryResultType> {
|
|
89
|
+
const runQuery = new RunQuery();
|
|
90
|
+
const result = await runQuery.RunQuery(
|
|
91
|
+
{
|
|
92
|
+
QueryID: QueryID,
|
|
93
|
+
CategoryID: CategoryID,
|
|
94
|
+
CategoryName: CategoryName
|
|
95
|
+
},
|
|
96
|
+
context.userPayload.userRecord);
|
|
97
|
+
|
|
98
|
+
return {
|
|
99
|
+
QueryID: QueryID,
|
|
100
|
+
QueryName: result.QueryName,
|
|
101
|
+
Success: result.Success,
|
|
102
|
+
Results: JSON.stringify(result.Results),
|
|
103
|
+
RowCount: result.RowCount,
|
|
104
|
+
ExecutionTime: result.ExecutionTime,
|
|
105
|
+
ErrorMessage: result.ErrorMessage,
|
|
106
|
+
};
|
|
107
|
+
}
|
|
108
|
+
|
|
109
|
+
@RequireSystemUser()
|
|
110
|
+
@Query(() => RunQueryResultType)
|
|
111
|
+
async GetQueryDataByNameSystemUser(@Arg('QueryName', () => String) QueryName: string,
|
|
112
|
+
@Ctx() context: AppContext,
|
|
113
|
+
@Arg('CategoryID', () => String, {nullable: true}) CategoryID?: string,
|
|
114
|
+
@Arg('CategoryName', () => String, {nullable: true}) CategoryName?: string): Promise<RunQueryResultType> {
|
|
115
|
+
const runQuery = new RunQuery();
|
|
116
|
+
const result = await runQuery.RunQuery(
|
|
117
|
+
{
|
|
118
|
+
QueryName: QueryName,
|
|
119
|
+
CategoryID: CategoryID,
|
|
120
|
+
CategoryName: CategoryName
|
|
121
|
+
},
|
|
122
|
+
context.userPayload.userRecord);
|
|
123
|
+
|
|
124
|
+
return {
|
|
125
|
+
QueryID: result.QueryID,
|
|
126
|
+
QueryName: QueryName,
|
|
127
|
+
Success: result.Success,
|
|
128
|
+
Results: JSON.stringify(result.Results),
|
|
129
|
+
RowCount: result.RowCount,
|
|
130
|
+
ExecutionTime: result.ExecutionTime,
|
|
131
|
+
ErrorMessage: result.ErrorMessage,
|
|
132
|
+
};
|
|
133
|
+
}
|
|
134
|
+
}
|
|
@@ -33,6 +33,9 @@ export class AIPromptRunResult {
|
|
|
33
33
|
|
|
34
34
|
@Field({ nullable: true })
|
|
35
35
|
validationResult?: string;
|
|
36
|
+
|
|
37
|
+
@Field({ nullable: true })
|
|
38
|
+
chatResult?: string;
|
|
36
39
|
}
|
|
37
40
|
|
|
38
41
|
@Resolver()
|
|
@@ -194,7 +197,8 @@ export class RunAIPromptResolver extends ResolverBase {
|
|
|
194
197
|
executionTimeMs: executionTime,
|
|
195
198
|
tokensUsed: result.tokensUsed,
|
|
196
199
|
promptRunId: result.promptRun?.ID,
|
|
197
|
-
validationResult: result.validationResult ? JSON.stringify(result.validationResult) : undefined
|
|
200
|
+
validationResult: result.validationResult ? JSON.stringify(result.validationResult) : undefined,
|
|
201
|
+
chatResult: result.chatResult ? JSON.stringify(result.chatResult) : undefined
|
|
198
202
|
};
|
|
199
203
|
} else {
|
|
200
204
|
LogError(`AI Prompt run failed for ${promptEntity.Name}: ${result.errorMessage}`);
|
|
@@ -202,7 +206,8 @@ export class RunAIPromptResolver extends ResolverBase {
|
|
|
202
206
|
success: false,
|
|
203
207
|
error: result.errorMessage,
|
|
204
208
|
executionTimeMs: executionTime,
|
|
205
|
-
promptRunId: result.promptRun?.ID
|
|
209
|
+
promptRunId: result.promptRun?.ID,
|
|
210
|
+
chatResult: result.chatResult ? JSON.stringify(result.chatResult) : undefined
|
|
206
211
|
};
|
|
207
212
|
}
|
|
208
213
|
|