@memberjunction/server 1.2.2 → 1.3.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/CHANGELOG.json +126 -1
- package/CHANGELOG.md +31 -2
- package/dist/entitySubclasses/DuplicateRunEntity.server.d.ts +6 -0
- package/dist/entitySubclasses/DuplicateRunEntity.server.d.ts.map +1 -0
- package/dist/entitySubclasses/DuplicateRunEntity.server.js +37 -0
- package/dist/entitySubclasses/DuplicateRunEntity.server.js.map +1 -0
- package/dist/generated/generated.d.ts +12 -0
- package/dist/generated/generated.d.ts.map +1 -1
- package/dist/generated/generated.js +89 -1
- package/dist/generated/generated.js.map +1 -1
- package/dist/generic/ResolverBase.d.ts +1 -1
- package/dist/generic/ResolverBase.d.ts.map +1 -1
- package/dist/generic/ResolverBase.js +17 -4
- package/dist/generic/ResolverBase.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/index.d.ts +1 -0
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +1 -0
- package/dist/index.js.map +1 -1
- package/dist/resolvers/AskSkipResolver.d.ts +2 -2
- package/dist/resolvers/AskSkipResolver.d.ts.map +1 -1
- package/dist/resolvers/AskSkipResolver.js +6 -6
- package/dist/resolvers/AskSkipResolver.js.map +1 -1
- package/dist/resolvers/EntityRecordNameResolver.d.ts +5 -5
- package/dist/resolvers/EntityRecordNameResolver.d.ts.map +1 -1
- package/dist/resolvers/EntityRecordNameResolver.js +19 -19
- package/dist/resolvers/EntityRecordNameResolver.js.map +1 -1
- package/dist/resolvers/FileResolver.d.ts +4 -1
- package/dist/resolvers/FileResolver.d.ts.map +1 -1
- package/dist/resolvers/FileResolver.js +35 -3
- package/dist/resolvers/FileResolver.js.map +1 -1
- package/dist/resolvers/MergeRecordsResolver.d.ts +9 -8
- package/dist/resolvers/MergeRecordsResolver.d.ts.map +1 -1
- package/dist/resolvers/MergeRecordsResolver.js +28 -27
- package/dist/resolvers/MergeRecordsResolver.js.map +1 -1
- package/dist/resolvers/PotentialDuplicateRecordResolver.d.ts +20 -7
- package/dist/resolvers/PotentialDuplicateRecordResolver.d.ts.map +1 -1
- package/dist/resolvers/PotentialDuplicateRecordResolver.js +66 -16
- package/dist/resolvers/PotentialDuplicateRecordResolver.js.map +1 -1
- package/dist/resolvers/UserFavoriteResolver.d.ts +6 -6
- package/dist/resolvers/UserFavoriteResolver.d.ts.map +1 -1
- package/dist/resolvers/UserFavoriteResolver.js +14 -13
- package/dist/resolvers/UserFavoriteResolver.js.map +1 -1
- package/package.json +16 -14
- package/src/entitySubclasses/DuplicateRunEntity.server.ts +29 -0
- package/src/generated/generated.ts +74 -2
- package/src/generic/ResolverBase.ts +20 -0
- package/src/generic/RunViewResolver.ts +21 -0
- package/src/index.ts +1 -0
- package/src/resolvers/AskSkipResolver.ts +6 -5
- package/src/resolvers/EntityRecordNameResolver.ts +16 -16
- package/src/resolvers/FileResolver.ts +39 -5
- package/src/resolvers/MergeRecordsResolver.ts +14 -13
- package/src/resolvers/PotentialDuplicateRecordResolver.ts +49 -14
- package/src/resolvers/UserFavoriteResolver.ts +13 -12
|
@@ -12,37 +12,61 @@ var __param = (this && this.__param) || function (paramIndex, decorator) {
|
|
|
12
12
|
return function (target, key) { decorator(target, key, paramIndex); }
|
|
13
13
|
};
|
|
14
14
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
15
|
-
exports.DuplicateRecordResolver = exports.PotentialDuplicateResponseType = exports.PotentialDuplicateType = exports.PotentialDuplicateRequestType = void 0;
|
|
15
|
+
exports.DuplicateRecordResolver = exports.PotentialDuplicateResponseType = exports.PotentialDuplicateResultType = exports.PotentialDuplicateType = exports.CompositeKeyOutputType = exports.CompositeKeyInputType = exports.PotentialDuplicateRequestType = void 0;
|
|
16
16
|
const type_graphql_1 = require("type-graphql");
|
|
17
17
|
const core_1 = require("@memberjunction/core");
|
|
18
18
|
const MergeRecordsResolver_1 = require("./MergeRecordsResolver");
|
|
19
19
|
const sqlserver_dataprovider_1 = require("@memberjunction/sqlserver-dataprovider");
|
|
20
|
+
const ai_mistral_1 = require("@memberjunction/ai-mistral");
|
|
21
|
+
const ai_vectors_pinecone_1 = require("@memberjunction/ai-vectors-pinecone");
|
|
22
|
+
(0, ai_mistral_1.LoadMistralEmbedding)();
|
|
23
|
+
(0, ai_vectors_pinecone_1.LoadPineconeVectorDB)();
|
|
20
24
|
let PotentialDuplicateRequestType = class PotentialDuplicateRequestType extends core_1.PotentialDuplicateRequest {
|
|
21
25
|
};
|
|
22
26
|
exports.PotentialDuplicateRequestType = PotentialDuplicateRequestType;
|
|
23
27
|
__decorate([
|
|
24
28
|
(0, type_graphql_1.Field)(() => type_graphql_1.Int),
|
|
25
29
|
__metadata("design:type", Number)
|
|
26
|
-
], PotentialDuplicateRequestType.prototype, "
|
|
30
|
+
], PotentialDuplicateRequestType.prototype, "EntityID", void 0);
|
|
27
31
|
__decorate([
|
|
28
|
-
(0, type_graphql_1.Field)(() => [
|
|
32
|
+
(0, type_graphql_1.Field)(() => [CompositeKeyInputType]),
|
|
29
33
|
__metadata("design:type", Array)
|
|
30
|
-
], PotentialDuplicateRequestType.prototype, "
|
|
34
|
+
], PotentialDuplicateRequestType.prototype, "RecordIDs", void 0);
|
|
31
35
|
__decorate([
|
|
32
36
|
(0, type_graphql_1.Field)(() => type_graphql_1.Int, { nullable: true }),
|
|
33
37
|
__metadata("design:type", Number)
|
|
34
|
-
], PotentialDuplicateRequestType.prototype, "
|
|
35
|
-
__decorate([
|
|
36
|
-
(0, type_graphql_1.Field)(() => String, { nullable: true }),
|
|
37
|
-
__metadata("design:type", String)
|
|
38
|
-
], PotentialDuplicateRequestType.prototype, "EntityName", void 0);
|
|
38
|
+
], PotentialDuplicateRequestType.prototype, "EntityDocumentID", void 0);
|
|
39
39
|
__decorate([
|
|
40
40
|
(0, type_graphql_1.Field)(() => type_graphql_1.Int, { nullable: true }),
|
|
41
41
|
__metadata("design:type", Number)
|
|
42
42
|
], PotentialDuplicateRequestType.prototype, "ProbabilityScore", void 0);
|
|
43
|
+
__decorate([
|
|
44
|
+
(0, type_graphql_1.Field)(() => type_graphql_1.Int),
|
|
45
|
+
__metadata("design:type", Number)
|
|
46
|
+
], PotentialDuplicateRequestType.prototype, "ListID", void 0);
|
|
43
47
|
exports.PotentialDuplicateRequestType = PotentialDuplicateRequestType = __decorate([
|
|
44
48
|
(0, type_graphql_1.InputType)()
|
|
45
49
|
], PotentialDuplicateRequestType);
|
|
50
|
+
let CompositeKeyInputType = class CompositeKeyInputType extends core_1.CompositeKey {
|
|
51
|
+
};
|
|
52
|
+
exports.CompositeKeyInputType = CompositeKeyInputType;
|
|
53
|
+
__decorate([
|
|
54
|
+
(0, type_graphql_1.Field)(() => [MergeRecordsResolver_1.KeyValuePairInputType]),
|
|
55
|
+
__metadata("design:type", Array)
|
|
56
|
+
], CompositeKeyInputType.prototype, "KeyValuePairs", void 0);
|
|
57
|
+
exports.CompositeKeyInputType = CompositeKeyInputType = __decorate([
|
|
58
|
+
(0, type_graphql_1.InputType)()
|
|
59
|
+
], CompositeKeyInputType);
|
|
60
|
+
let CompositeKeyOutputType = class CompositeKeyOutputType extends core_1.CompositeKey {
|
|
61
|
+
};
|
|
62
|
+
exports.CompositeKeyOutputType = CompositeKeyOutputType;
|
|
63
|
+
__decorate([
|
|
64
|
+
(0, type_graphql_1.Field)(() => [MergeRecordsResolver_1.KeyValuePairOutputType]),
|
|
65
|
+
__metadata("design:type", Array)
|
|
66
|
+
], CompositeKeyOutputType.prototype, "KeyValuePairs", void 0);
|
|
67
|
+
exports.CompositeKeyOutputType = CompositeKeyOutputType = __decorate([
|
|
68
|
+
(0, type_graphql_1.ObjectType)()
|
|
69
|
+
], CompositeKeyOutputType);
|
|
46
70
|
let PotentialDuplicateType = class PotentialDuplicateType extends core_1.PotentialDuplicate {
|
|
47
71
|
};
|
|
48
72
|
exports.PotentialDuplicateType = PotentialDuplicateType;
|
|
@@ -51,23 +75,49 @@ __decorate([
|
|
|
51
75
|
__metadata("design:type", Number)
|
|
52
76
|
], PotentialDuplicateType.prototype, "ProbabilityScore", void 0);
|
|
53
77
|
__decorate([
|
|
54
|
-
(0, type_graphql_1.Field)(() => [MergeRecordsResolver_1.
|
|
78
|
+
(0, type_graphql_1.Field)(() => [MergeRecordsResolver_1.KeyValuePairOutputType]),
|
|
55
79
|
__metadata("design:type", Array)
|
|
56
|
-
], PotentialDuplicateType.prototype, "
|
|
80
|
+
], PotentialDuplicateType.prototype, "KeyValuePairs", void 0);
|
|
57
81
|
exports.PotentialDuplicateType = PotentialDuplicateType = __decorate([
|
|
58
82
|
(0, type_graphql_1.ObjectType)()
|
|
59
83
|
], PotentialDuplicateType);
|
|
60
|
-
let
|
|
84
|
+
let PotentialDuplicateResultType = class PotentialDuplicateResultType extends core_1.PotentialDuplicateResult {
|
|
61
85
|
};
|
|
62
|
-
exports.
|
|
86
|
+
exports.PotentialDuplicateResultType = PotentialDuplicateResultType;
|
|
63
87
|
__decorate([
|
|
64
|
-
(0, type_graphql_1.Field)(() => type_graphql_1.Int),
|
|
88
|
+
(0, type_graphql_1.Field)(() => type_graphql_1.Int, { nullable: true }),
|
|
65
89
|
__metadata("design:type", Number)
|
|
66
|
-
],
|
|
90
|
+
], PotentialDuplicateResultType.prototype, "EntityID", void 0);
|
|
67
91
|
__decorate([
|
|
68
92
|
(0, type_graphql_1.Field)(() => [PotentialDuplicateType]),
|
|
69
93
|
__metadata("design:type", Array)
|
|
70
|
-
],
|
|
94
|
+
], PotentialDuplicateResultType.prototype, "Duplicates", void 0);
|
|
95
|
+
__decorate([
|
|
96
|
+
(0, type_graphql_1.Field)(() => CompositeKeyOutputType),
|
|
97
|
+
__metadata("design:type", core_1.CompositeKey)
|
|
98
|
+
], PotentialDuplicateResultType.prototype, "RecordPrimaryKeys", void 0);
|
|
99
|
+
__decorate([
|
|
100
|
+
(0, type_graphql_1.Field)(() => [type_graphql_1.Int]),
|
|
101
|
+
__metadata("design:type", Array)
|
|
102
|
+
], PotentialDuplicateResultType.prototype, "DuplicateRunDetailMatchRecordIDs", void 0);
|
|
103
|
+
exports.PotentialDuplicateResultType = PotentialDuplicateResultType = __decorate([
|
|
104
|
+
(0, type_graphql_1.ObjectType)()
|
|
105
|
+
], PotentialDuplicateResultType);
|
|
106
|
+
let PotentialDuplicateResponseType = class PotentialDuplicateResponseType extends core_1.PotentialDuplicateResponse {
|
|
107
|
+
};
|
|
108
|
+
exports.PotentialDuplicateResponseType = PotentialDuplicateResponseType;
|
|
109
|
+
__decorate([
|
|
110
|
+
(0, type_graphql_1.Field)(() => String),
|
|
111
|
+
__metadata("design:type", String)
|
|
112
|
+
], PotentialDuplicateResponseType.prototype, "Status", void 0);
|
|
113
|
+
__decorate([
|
|
114
|
+
(0, type_graphql_1.Field)(() => String, { nullable: true }),
|
|
115
|
+
__metadata("design:type", String)
|
|
116
|
+
], PotentialDuplicateResponseType.prototype, "ErrorMessage", void 0);
|
|
117
|
+
__decorate([
|
|
118
|
+
(0, type_graphql_1.Field)(() => [PotentialDuplicateResultType]),
|
|
119
|
+
__metadata("design:type", Array)
|
|
120
|
+
], PotentialDuplicateResponseType.prototype, "PotentialDuplicateResult", void 0);
|
|
71
121
|
exports.PotentialDuplicateResponseType = PotentialDuplicateResponseType = __decorate([
|
|
72
122
|
(0, type_graphql_1.ObjectType)()
|
|
73
123
|
], PotentialDuplicateResponseType);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"PotentialDuplicateRecordResolver.js","sourceRoot":"","sources":["../../src/resolvers/PotentialDuplicateRecordResolver.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;AAAA,+CAAmG;AACnG,+
|
|
1
|
+
{"version":3,"file":"PotentialDuplicateRecordResolver.js","sourceRoot":"","sources":["../../src/resolvers/PotentialDuplicateRecordResolver.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,20 +1,20 @@
|
|
|
1
|
-
import {
|
|
1
|
+
import { CompositeKey } from '@memberjunction/core';
|
|
2
2
|
import { AppContext } from '@memberjunction/server';
|
|
3
3
|
import { UserFavoriteResolverBase } from '../generated/generated';
|
|
4
4
|
export declare class UserFavoriteSearchParams {
|
|
5
5
|
EntityID: number;
|
|
6
|
-
|
|
6
|
+
CompositeKey: CompositeKey;
|
|
7
7
|
UserID: number;
|
|
8
8
|
}
|
|
9
9
|
export declare class UserFavoriteSetParams {
|
|
10
10
|
EntityID: number;
|
|
11
|
-
|
|
11
|
+
CompositeKey: CompositeKey;
|
|
12
12
|
UserID: number;
|
|
13
13
|
IsFavorite: boolean;
|
|
14
14
|
}
|
|
15
15
|
export declare class UserFavoriteResult {
|
|
16
16
|
EntityID: number;
|
|
17
|
-
|
|
17
|
+
CompositeKey: CompositeKey;
|
|
18
18
|
UserID: number;
|
|
19
19
|
IsFavorite: boolean;
|
|
20
20
|
Success: boolean;
|
|
@@ -25,7 +25,7 @@ export declare class UserFavoriteResolver extends UserFavoriteResolverBase {
|
|
|
25
25
|
GetRecordFavoriteStatus(params: UserFavoriteSearchParams, {}: AppContext): Promise<{
|
|
26
26
|
EntityID: number;
|
|
27
27
|
UserID: number;
|
|
28
|
-
|
|
28
|
+
CompositeKey: CompositeKey;
|
|
29
29
|
IsFavorite: boolean;
|
|
30
30
|
Success: boolean;
|
|
31
31
|
}>;
|
|
@@ -33,7 +33,7 @@ export declare class UserFavoriteResolver extends UserFavoriteResolverBase {
|
|
|
33
33
|
Success: boolean;
|
|
34
34
|
EntityID: number;
|
|
35
35
|
UserID: number;
|
|
36
|
-
|
|
36
|
+
CompositeKey: CompositeKey;
|
|
37
37
|
IsFavorite: boolean;
|
|
38
38
|
};
|
|
39
39
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"UserFavoriteResolver.d.ts","sourceRoot":"","sources":["../../src/resolvers/UserFavoriteResolver.ts"],"names":[],"mappings":"AAAA,OAAO,
|
|
1
|
+
{"version":3,"file":"UserFavoriteResolver.d.ts","sourceRoot":"","sources":["../../src/resolvers/UserFavoriteResolver.ts"],"names":[],"mappings":"AAAA,OAAO,EAA0B,YAAY,EAAE,MAAM,sBAAsB,CAAC;AAC5E,OAAO,EAAE,UAAU,EAAyH,MAAM,wBAAwB,CAAC;AAI3K,OAAO,EAAiB,wBAAwB,EAAE,MAAM,wBAAwB,CAAC;AAMjF,qBACa,wBAAwB;IAEnC,QAAQ,EAAE,MAAM,CAAC;IAGjB,YAAY,EAAE,YAAY,CAAC;IAG3B,MAAM,EAAE,MAAM,CAAC;CAChB;AAED,qBACa,qBAAqB;IAEhC,QAAQ,EAAE,MAAM,CAAC;IAGjB,YAAY,EAAE,YAAY,CAAC;IAG3B,MAAM,EAAE,MAAM,CAAC;IAGf,UAAU,EAAE,OAAO,CAAC;CACrB;AAED,qBACa,kBAAkB;IAE7B,QAAQ,EAAE,MAAM,CAAC;IAGjB,YAAY,EAAE,YAAY,CAAC;IAG3B,MAAM,EAAE,MAAM,CAAC;IAGf,UAAU,EAAE,OAAO,CAAC;IAGpB,OAAO,EAAE,OAAO,CAAC;CAClB;AAED,qBACa,oBAAqB,SAAQ,wBAAwB;IAE1D,qBAAqB,CAA2B,MAAM,EAAE,MAAM,EAAS,EAAE,UAAU,EAAE,EAAE,UAAU;IAKjG,0BAA0B,CAA2B,MAAM,EAAE,wBAAwB,EAAS,EAAE,UAAU,EAAE,EAAE,UAAU;IAKxH,uBAAuB,CAAgD,MAAM,EAAE,wBAAwB,EAAS,EAAE,EAAE,UAAU;;;;;;;IAepI,uBAAuB,CAA6C,MAAM,EAAE,qBAAqB,EAAS,EAAE,WAAW,EAAE,EAAE,UAAU;;;;;;;CAgBtI;AAED,eAAe,oBAAoB,CAAC"}
|
|
@@ -17,6 +17,7 @@ const core_1 = require("@memberjunction/core");
|
|
|
17
17
|
const server_1 = require("@memberjunction/server");
|
|
18
18
|
const sqlserver_dataprovider_1 = require("@memberjunction/sqlserver-dataprovider");
|
|
19
19
|
const generated_1 = require("../generated/generated");
|
|
20
|
+
const PotentialDuplicateRecordResolver_1 = require("./PotentialDuplicateRecordResolver");
|
|
20
21
|
let UserFavoriteSearchParams = class UserFavoriteSearchParams {
|
|
21
22
|
};
|
|
22
23
|
exports.UserFavoriteSearchParams = UserFavoriteSearchParams;
|
|
@@ -25,9 +26,9 @@ __decorate([
|
|
|
25
26
|
__metadata("design:type", Number)
|
|
26
27
|
], UserFavoriteSearchParams.prototype, "EntityID", void 0);
|
|
27
28
|
__decorate([
|
|
28
|
-
(0, server_1.Field)(() =>
|
|
29
|
-
__metadata("design:type",
|
|
30
|
-
], UserFavoriteSearchParams.prototype, "
|
|
29
|
+
(0, server_1.Field)(() => PotentialDuplicateRecordResolver_1.CompositeKeyInputType),
|
|
30
|
+
__metadata("design:type", core_1.CompositeKey)
|
|
31
|
+
], UserFavoriteSearchParams.prototype, "CompositeKey", void 0);
|
|
31
32
|
__decorate([
|
|
32
33
|
(0, server_1.Field)(() => server_1.Int),
|
|
33
34
|
__metadata("design:type", Number)
|
|
@@ -43,9 +44,9 @@ __decorate([
|
|
|
43
44
|
__metadata("design:type", Number)
|
|
44
45
|
], UserFavoriteSetParams.prototype, "EntityID", void 0);
|
|
45
46
|
__decorate([
|
|
46
|
-
(0, server_1.Field)(() =>
|
|
47
|
-
__metadata("design:type",
|
|
48
|
-
], UserFavoriteSetParams.prototype, "
|
|
47
|
+
(0, server_1.Field)(() => PotentialDuplicateRecordResolver_1.CompositeKeyInputType),
|
|
48
|
+
__metadata("design:type", core_1.CompositeKey)
|
|
49
|
+
], UserFavoriteSetParams.prototype, "CompositeKey", void 0);
|
|
49
50
|
__decorate([
|
|
50
51
|
(0, server_1.Field)(() => server_1.Int),
|
|
51
52
|
__metadata("design:type", Number)
|
|
@@ -65,9 +66,9 @@ __decorate([
|
|
|
65
66
|
__metadata("design:type", Number)
|
|
66
67
|
], UserFavoriteResult.prototype, "EntityID", void 0);
|
|
67
68
|
__decorate([
|
|
68
|
-
(0, server_1.Field)(() =>
|
|
69
|
-
__metadata("design:type",
|
|
70
|
-
], UserFavoriteResult.prototype, "
|
|
69
|
+
(0, server_1.Field)(() => PotentialDuplicateRecordResolver_1.CompositeKeyOutputType),
|
|
70
|
+
__metadata("design:type", core_1.CompositeKey)
|
|
71
|
+
], UserFavoriteResult.prototype, "CompositeKey", void 0);
|
|
71
72
|
__decorate([
|
|
72
73
|
(0, server_1.Field)(() => server_1.Int),
|
|
73
74
|
__metadata("design:type", Number)
|
|
@@ -97,8 +98,8 @@ let UserFavoriteResolver = class UserFavoriteResolver extends generated_1.UserFa
|
|
|
97
98
|
return {
|
|
98
99
|
EntityID: params.EntityID,
|
|
99
100
|
UserID: params.UserID,
|
|
100
|
-
|
|
101
|
-
IsFavorite: await md.GetRecordFavoriteStatus(params.UserID, e.Name, params.
|
|
101
|
+
CompositeKey: params.CompositeKey,
|
|
102
|
+
IsFavorite: await md.GetRecordFavoriteStatus(params.UserID, e.Name, params.CompositeKey),
|
|
102
103
|
Success: true,
|
|
103
104
|
};
|
|
104
105
|
else
|
|
@@ -109,12 +110,12 @@ let UserFavoriteResolver = class UserFavoriteResolver extends generated_1.UserFa
|
|
|
109
110
|
const e = md.Entities.find((e) => e.ID === params.EntityID);
|
|
110
111
|
const u = sqlserver_dataprovider_1.UserCache.Users.find((u) => u.ID === userPayload.userRecord.ID);
|
|
111
112
|
if (e) {
|
|
112
|
-
md.SetRecordFavoriteStatus(params.UserID, e.Name, params.
|
|
113
|
+
md.SetRecordFavoriteStatus(params.UserID, e.Name, params.CompositeKey, params.IsFavorite, u);
|
|
113
114
|
return {
|
|
114
115
|
Success: true,
|
|
115
116
|
EntityID: params.EntityID,
|
|
116
117
|
UserID: params.UserID,
|
|
117
|
-
|
|
118
|
+
CompositeKey: params.CompositeKey,
|
|
118
119
|
IsFavorite: params.IsFavorite,
|
|
119
120
|
};
|
|
120
121
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"UserFavoriteResolver.js","sourceRoot":"","sources":["../../src/resolvers/UserFavoriteResolver.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;AAAA,+
|
|
1
|
+
{"version":3,"file":"UserFavoriteResolver.js","sourceRoot":"","sources":["../../src/resolvers/UserFavoriteResolver.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.
|
|
3
|
+
"version": "1.3.0",
|
|
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",
|
|
@@ -8,7 +8,7 @@
|
|
|
8
8
|
"license": "ISC",
|
|
9
9
|
"scripts": {
|
|
10
10
|
"clean": "rimraf dist",
|
|
11
|
-
"build": "
|
|
11
|
+
"build": "tsc",
|
|
12
12
|
"watch": "tsc -w",
|
|
13
13
|
"test": "echo \"Error: no test specified\" && exit 1",
|
|
14
14
|
"lint:eslint": "eslint \"**/*.{ts,js,}\" --max-warnings=0",
|
|
@@ -21,18 +21,20 @@
|
|
|
21
21
|
"dependencies": {
|
|
22
22
|
"@apollo/server": "^4.9.1",
|
|
23
23
|
"@graphql-tools/utils": "^10.0.1",
|
|
24
|
-
"@memberjunction/ai": "~1.
|
|
25
|
-
"@memberjunction/ai-openai": "~1.
|
|
26
|
-
"@memberjunction/aiengine": "~1.
|
|
27
|
-
"@memberjunction/
|
|
28
|
-
"@memberjunction/
|
|
29
|
-
"@memberjunction/
|
|
30
|
-
"@memberjunction/
|
|
31
|
-
"@memberjunction/
|
|
32
|
-
"@memberjunction/
|
|
33
|
-
"@memberjunction/
|
|
34
|
-
"@memberjunction/
|
|
35
|
-
"@memberjunction/
|
|
24
|
+
"@memberjunction/ai": "~1.3.0",
|
|
25
|
+
"@memberjunction/ai-openai": "~1.3.0",
|
|
26
|
+
"@memberjunction/aiengine": "~1.3.0",
|
|
27
|
+
"@memberjunction/ai-mistral": "~1.3.0",
|
|
28
|
+
"@memberjunction/ai-vectors-pinecone": "~1.3.0",
|
|
29
|
+
"@memberjunction/core": "~1.3.0",
|
|
30
|
+
"@memberjunction/core-entities": "~1.3.0",
|
|
31
|
+
"@memberjunction/data-context": "~1.3.0",
|
|
32
|
+
"@memberjunction/data-context-server": "~1.3.0",
|
|
33
|
+
"@memberjunction/global": "~1.3.0",
|
|
34
|
+
"@memberjunction/storage": "~1.3.0",
|
|
35
|
+
"@memberjunction/queue": "~1.3.0",
|
|
36
|
+
"@memberjunction/sqlserver-dataprovider": "~1.3.0",
|
|
37
|
+
"@memberjunction/skip-types": "~1.3.0",
|
|
36
38
|
"@types/cors": "^2.8.13",
|
|
37
39
|
"@types/jsonwebtoken": "^8.5.9",
|
|
38
40
|
"@types/node": "^18.11.14",
|
|
@@ -0,0 +1,29 @@
|
|
|
1
|
+
import { BaseEntity, PotentialDuplicateRequest } from "@memberjunction/core";
|
|
2
|
+
import { RegisterClass } from "@memberjunction/global";
|
|
3
|
+
import { DuplicateRunEntity } from "@memberjunction/core-entities";
|
|
4
|
+
import { DuplicateRecordDetector } from "@memberjunction/ai-vector-dupe";
|
|
5
|
+
|
|
6
|
+
@RegisterClass(BaseEntity, 'Duplicate Runs', 3)
|
|
7
|
+
export class DuplicateRunEntity_Server extends DuplicateRunEntity {
|
|
8
|
+
public async Save(): Promise<boolean> {
|
|
9
|
+
const saveResult: boolean = await super.Save();
|
|
10
|
+
if (saveResult && this.EndedAt === null) {
|
|
11
|
+
// do something
|
|
12
|
+
const duplicateRecordDetector: DuplicateRecordDetector = new DuplicateRecordDetector();
|
|
13
|
+
let request: PotentialDuplicateRequest = new PotentialDuplicateRequest();
|
|
14
|
+
request.EntityID = this.EntityID;
|
|
15
|
+
request.ListID = this.SourceListID;
|
|
16
|
+
request.Options = {
|
|
17
|
+
DuplicateRunID: this.ID,
|
|
18
|
+
};
|
|
19
|
+
|
|
20
|
+
const response = await duplicateRecordDetector.getDuplicateRecords(request, this.ContextCurrentUser);
|
|
21
|
+
}
|
|
22
|
+
|
|
23
|
+
return saveResult;
|
|
24
|
+
}
|
|
25
|
+
}
|
|
26
|
+
|
|
27
|
+
export function LoadDuplicateRunEntityServerSubClass() {
|
|
28
|
+
|
|
29
|
+
}
|
|
@@ -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:
|
|
5
|
+
* GENERATED: 5/8/2024, 3:00:03 PM
|
|
6
6
|
*
|
|
7
7
|
* >>> DO NOT MODIFY THIS FILE!!!!!!!!!!!!
|
|
8
8
|
* >>> YOUR CHANGES WILL BE OVERWRITTEN
|
|
@@ -2846,9 +2846,13 @@ export class Entity_ {
|
|
|
2846
2846
|
@Field(() => Boolean)
|
|
2847
2847
|
spDeleteGenerated: boolean;
|
|
2848
2848
|
|
|
2849
|
-
@Field(() => Boolean)
|
|
2849
|
+
@Field(() => Boolean, {description: 'When set to 1, the deleted spDelete will pre-process deletion to related entities that have 1:M cardinality with this entity. This does not have effect if spDeleteGenerated = 0'})
|
|
2850
2850
|
CascadeDeletes: boolean;
|
|
2851
2851
|
|
|
2852
|
+
@Field({nullable: true, description: 'When specified, this stored procedure is used to find matching records in this particular entity. The convention is to pass in the primary key(s) columns for the given entity to the procedure and the return will be zero to many rows where there is a column for each primary key field(s) and a ProbabilityScore (numeric(1,12)) column that has a 0 to 1 value of the probability of a match.'})
|
|
2853
|
+
@MaxLength(510)
|
|
2854
|
+
spMatch?: string;
|
|
2855
|
+
|
|
2852
2856
|
@Field(() => Boolean)
|
|
2853
2857
|
UserFormGenerated: boolean;
|
|
2854
2858
|
|
|
@@ -3091,6 +3095,9 @@ export class CreateEntityInput {
|
|
|
3091
3095
|
@Field(() => Boolean)
|
|
3092
3096
|
CascadeDeletes: boolean;
|
|
3093
3097
|
|
|
3098
|
+
@Field({ nullable: true })
|
|
3099
|
+
spMatch: string;
|
|
3100
|
+
|
|
3094
3101
|
@Field(() => Boolean)
|
|
3095
3102
|
UserFormGenerated: boolean;
|
|
3096
3103
|
|
|
@@ -3209,6 +3216,9 @@ export class UpdateEntityInput {
|
|
|
3209
3216
|
@Field(() => Boolean)
|
|
3210
3217
|
CascadeDeletes: boolean;
|
|
3211
3218
|
|
|
3219
|
+
@Field({ nullable: true })
|
|
3220
|
+
spMatch: string;
|
|
3221
|
+
|
|
3212
3222
|
@Field(() => Boolean)
|
|
3213
3223
|
UserFormGenerated: boolean;
|
|
3214
3224
|
|
|
@@ -16904,6 +16914,32 @@ export class DataContextItemResolver extends ResolverBase {
|
|
|
16904
16914
|
const i = input, d = dataSource; // prevent error
|
|
16905
16915
|
}
|
|
16906
16916
|
|
|
16917
|
+
@Mutation(() => DataContextItem_)
|
|
16918
|
+
async DeleteDataContextItem(@Arg('ID', () => Int) ID: number, @Ctx() { dataSource, userPayload }: AppContext, @PubSub() pubSub: PubSubEngine) {
|
|
16919
|
+
if (await this.BeforeDelete(dataSource, ID)) { // fire event and proceed if it wasn't cancelled
|
|
16920
|
+
const entityObject = <DataContextItemEntity>await new Metadata().GetEntityObject('Data Context Items', this.GetUserFromPayload(userPayload));
|
|
16921
|
+
await entityObject.Load(ID);
|
|
16922
|
+
const returnValue = entityObject.GetAll(); // grab the values before we delete so we can return last state before delete if we are successful.
|
|
16923
|
+
if (await entityObject.Delete()) {
|
|
16924
|
+
await this.AfterDelete(dataSource, ID); // fire event
|
|
16925
|
+
return returnValue;
|
|
16926
|
+
}
|
|
16927
|
+
else
|
|
16928
|
+
return null; // delete failed, this will cause an exception
|
|
16929
|
+
}
|
|
16930
|
+
else
|
|
16931
|
+
return null; // BeforeDelete canceled the operation, this will cause an exception
|
|
16932
|
+
}
|
|
16933
|
+
|
|
16934
|
+
// Before/After UPDATE Event Hooks for Sub-Classes to Override
|
|
16935
|
+
protected async BeforeDelete(dataSource: DataSource, ID: number): Promise<boolean> {
|
|
16936
|
+
const i = ID, d = dataSource; // prevent error;
|
|
16937
|
+
return true;
|
|
16938
|
+
}
|
|
16939
|
+
protected async AfterDelete(dataSource: DataSource, ID: number) {
|
|
16940
|
+
const i = ID, d = dataSource; // prevent error
|
|
16941
|
+
}
|
|
16942
|
+
|
|
16907
16943
|
}
|
|
16908
16944
|
|
|
16909
16945
|
//****************************************************************************
|
|
@@ -17117,6 +17153,32 @@ export class DataContextResolver extends ResolverBase {
|
|
|
17117
17153
|
const i = input, d = dataSource; // prevent error
|
|
17118
17154
|
}
|
|
17119
17155
|
|
|
17156
|
+
@Mutation(() => DataContext_)
|
|
17157
|
+
async DeleteDataContext(@Arg('ID', () => Int) ID: number, @Ctx() { dataSource, userPayload }: AppContext, @PubSub() pubSub: PubSubEngine) {
|
|
17158
|
+
if (await this.BeforeDelete(dataSource, ID)) { // fire event and proceed if it wasn't cancelled
|
|
17159
|
+
const entityObject = <DataContextEntity>await new Metadata().GetEntityObject('Data Contexts', this.GetUserFromPayload(userPayload));
|
|
17160
|
+
await entityObject.Load(ID);
|
|
17161
|
+
const returnValue = entityObject.GetAll(); // grab the values before we delete so we can return last state before delete if we are successful.
|
|
17162
|
+
if (await entityObject.Delete()) {
|
|
17163
|
+
await this.AfterDelete(dataSource, ID); // fire event
|
|
17164
|
+
return returnValue;
|
|
17165
|
+
}
|
|
17166
|
+
else
|
|
17167
|
+
return null; // delete failed, this will cause an exception
|
|
17168
|
+
}
|
|
17169
|
+
else
|
|
17170
|
+
return null; // BeforeDelete canceled the operation, this will cause an exception
|
|
17171
|
+
}
|
|
17172
|
+
|
|
17173
|
+
// Before/After UPDATE Event Hooks for Sub-Classes to Override
|
|
17174
|
+
protected async BeforeDelete(dataSource: DataSource, ID: number): Promise<boolean> {
|
|
17175
|
+
const i = ID, d = dataSource; // prevent error;
|
|
17176
|
+
return true;
|
|
17177
|
+
}
|
|
17178
|
+
protected async AfterDelete(dataSource: DataSource, ID: number) {
|
|
17179
|
+
const i = ID, d = dataSource; // prevent error
|
|
17180
|
+
}
|
|
17181
|
+
|
|
17120
17182
|
}
|
|
17121
17183
|
|
|
17122
17184
|
//****************************************************************************
|
|
@@ -18985,6 +19047,10 @@ export class DuplicateRunDetailMatch_ {
|
|
|
18985
19047
|
@Field(() => Int)
|
|
18986
19048
|
DuplicateRunDetailID: number;
|
|
18987
19049
|
|
|
19050
|
+
@Field({description: 'Either Vector or SP'})
|
|
19051
|
+
@MaxLength(40)
|
|
19052
|
+
MatchSource: string;
|
|
19053
|
+
|
|
18988
19054
|
@Field()
|
|
18989
19055
|
@MaxLength(1000)
|
|
18990
19056
|
MatchRecordID: string;
|
|
@@ -19033,6 +19099,9 @@ export class CreateDuplicateRunDetailMatchInput {
|
|
|
19033
19099
|
@Field(() => Int)
|
|
19034
19100
|
DuplicateRunDetailID: number;
|
|
19035
19101
|
|
|
19102
|
+
@Field()
|
|
19103
|
+
MatchSource: string;
|
|
19104
|
+
|
|
19036
19105
|
@Field()
|
|
19037
19106
|
MatchRecordID: string;
|
|
19038
19107
|
|
|
@@ -19070,6 +19139,9 @@ export class UpdateDuplicateRunDetailMatchInput {
|
|
|
19070
19139
|
@Field(() => Int)
|
|
19071
19140
|
DuplicateRunDetailID: number;
|
|
19072
19141
|
|
|
19142
|
+
@Field()
|
|
19143
|
+
MatchSource: string;
|
|
19144
|
+
|
|
19073
19145
|
@Field()
|
|
19074
19146
|
MatchRecordID: string;
|
|
19075
19147
|
|
|
@@ -80,6 +80,7 @@ export class ResolverBase {
|
|
|
80
80
|
viewInput.ExcludeDataFromAllPriorViewRuns,
|
|
81
81
|
viewInput.ForceAuditLog,
|
|
82
82
|
viewInput.AuditLogDescription,
|
|
83
|
+
viewInput.ResultType,
|
|
83
84
|
userPayload,
|
|
84
85
|
pubSub
|
|
85
86
|
);
|
|
@@ -106,6 +107,7 @@ export class ResolverBase {
|
|
|
106
107
|
viewInput.ExcludeDataFromAllPriorViewRuns,
|
|
107
108
|
viewInput.ForceAuditLog,
|
|
108
109
|
viewInput.AuditLogDescription,
|
|
110
|
+
viewInput.ResultType,
|
|
109
111
|
userPayload,
|
|
110
112
|
pubSub
|
|
111
113
|
);
|
|
@@ -142,6 +144,7 @@ export class ResolverBase {
|
|
|
142
144
|
false,
|
|
143
145
|
viewInput.ForceAuditLog,
|
|
144
146
|
viewInput.AuditLogDescription,
|
|
147
|
+
viewInput.ResultType,
|
|
145
148
|
userPayload,
|
|
146
149
|
pubSub
|
|
147
150
|
);
|
|
@@ -180,6 +183,7 @@ export class ResolverBase {
|
|
|
180
183
|
excludeDataFromAllPriorViewRuns: boolean | undefined,
|
|
181
184
|
forceAuditLog: boolean | undefined,
|
|
182
185
|
auditLogDescription: string | undefined,
|
|
186
|
+
resultType: string | undefined,
|
|
183
187
|
userPayload: UserPayload | null,
|
|
184
188
|
pubSub: PubSubEngine
|
|
185
189
|
) {
|
|
@@ -193,6 +197,21 @@ export class ResolverBase {
|
|
|
193
197
|
if (!entityInfo) throw new Error(`Entity ${viewInfo.Entity} not found in metadata`);
|
|
194
198
|
|
|
195
199
|
const rv = new RunView();
|
|
200
|
+
|
|
201
|
+
// figure out the result type from the input string (if provided)
|
|
202
|
+
let rt: 'simple' | 'entity_object' | 'count_only' = 'simple';
|
|
203
|
+
switch (resultType?.trim().toLowerCase()) {
|
|
204
|
+
case 'entity_object':
|
|
205
|
+
rt = 'entity_object';
|
|
206
|
+
break;
|
|
207
|
+
case 'count_only':
|
|
208
|
+
rt = 'count_only';
|
|
209
|
+
break;
|
|
210
|
+
default:
|
|
211
|
+
rt = 'simple';
|
|
212
|
+
break;
|
|
213
|
+
}
|
|
214
|
+
|
|
196
215
|
const result = await rv.RunView(
|
|
197
216
|
{
|
|
198
217
|
ViewID: viewInfo.ID,
|
|
@@ -209,6 +228,7 @@ export class ResolverBase {
|
|
|
209
228
|
IgnoreMaxRows: ignoreMaxRows,
|
|
210
229
|
ForceAuditLog: forceAuditLog,
|
|
211
230
|
AuditLogDescription: auditLogDescription,
|
|
231
|
+
ResultType: rt,
|
|
212
232
|
},
|
|
213
233
|
user
|
|
214
234
|
);
|
|
@@ -92,6 +92,13 @@ export class RunViewByIDInput {
|
|
|
92
92
|
"if provided and either ForceAuditLog is set, or the entity's property settings for logging view runs are set to true, this will be used as the Audit Log Description.",
|
|
93
93
|
})
|
|
94
94
|
AuditLogDescription?: string;
|
|
95
|
+
|
|
96
|
+
@Field(() => String, {
|
|
97
|
+
nullable: true,
|
|
98
|
+
description:
|
|
99
|
+
'Optional, pass in entity_object, simple, or count_only as options to specify the type of result you want back. Defaults to simple if not provided',
|
|
100
|
+
})
|
|
101
|
+
ResultType?: string;
|
|
95
102
|
}
|
|
96
103
|
|
|
97
104
|
@InputType()
|
|
@@ -174,6 +181,13 @@ export class RunViewByNameInput {
|
|
|
174
181
|
"if provided and either ForceAuditLog is set, or the entity's property settings for logging view runs are set to true, this will be used as the Audit Log Description.",
|
|
175
182
|
})
|
|
176
183
|
AuditLogDescription?: string;
|
|
184
|
+
|
|
185
|
+
@Field(() => String, {
|
|
186
|
+
nullable: true,
|
|
187
|
+
description:
|
|
188
|
+
'Optional, pass in entity_object, simple, or count_only as options to specify the type of result you want back. Defaults to simple if not provided',
|
|
189
|
+
})
|
|
190
|
+
ResultType?: string;
|
|
177
191
|
}
|
|
178
192
|
@InputType()
|
|
179
193
|
export class RunDynamicViewInput {
|
|
@@ -241,6 +255,13 @@ export class RunDynamicViewInput {
|
|
|
241
255
|
"if provided and either ForceAuditLog is set, or the entity's property settings for logging view runs are set to true, this will be used as the Audit Log Description.",
|
|
242
256
|
})
|
|
243
257
|
AuditLogDescription?: string;
|
|
258
|
+
|
|
259
|
+
@Field(() => String, {
|
|
260
|
+
nullable: true,
|
|
261
|
+
description:
|
|
262
|
+
'Optional, pass in entity_object, simple, or count_only as options to specify the type of result you want back. Defaults to simple if not provided',
|
|
263
|
+
})
|
|
264
|
+
ResultType?: string;
|
|
244
265
|
}
|
|
245
266
|
|
|
246
267
|
@ObjectType()
|
package/src/index.ts
CHANGED
|
@@ -33,6 +33,7 @@ export { configInfo } from './config';
|
|
|
33
33
|
export * from './directives';
|
|
34
34
|
export * from './entitySubclasses/userViewEntity.server';
|
|
35
35
|
export * from './entitySubclasses/entityPermissions.server';
|
|
36
|
+
export * from './entitySubclasses/DuplicateRunEntity.server';
|
|
36
37
|
export * from './types';
|
|
37
38
|
export { TokenExpiredError } from './auth';
|
|
38
39
|
|