@memberjunction/server 2.112.0 → 2.113.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/agents/skip-agent.d.ts +4 -4
- package/dist/agents/skip-agent.d.ts.map +1 -1
- package/dist/agents/skip-agent.js +951 -808
- package/dist/agents/skip-agent.js.map +1 -1
- package/dist/agents/skip-sdk.d.ts +1 -1
- package/dist/agents/skip-sdk.d.ts.map +1 -1
- package/dist/agents/skip-sdk.js +43 -53
- package/dist/agents/skip-sdk.js.map +1 -1
- package/dist/apolloServer/index.js +1 -1
- package/dist/auth/AuthProviderFactory.d.ts +1 -1
- package/dist/auth/AuthProviderFactory.d.ts.map +1 -1
- package/dist/auth/AuthProviderFactory.js +3 -1
- package/dist/auth/AuthProviderFactory.js.map +1 -1
- package/dist/auth/BaseAuthProvider.d.ts +1 -1
- package/dist/auth/BaseAuthProvider.d.ts.map +1 -1
- package/dist/auth/BaseAuthProvider.js +2 -3
- package/dist/auth/BaseAuthProvider.js.map +1 -1
- package/dist/auth/IAuthProvider.d.ts +1 -1
- package/dist/auth/IAuthProvider.d.ts.map +1 -1
- package/dist/auth/exampleNewUserSubClass.d.ts.map +1 -1
- package/dist/auth/exampleNewUserSubClass.js +1 -1
- package/dist/auth/exampleNewUserSubClass.js.map +1 -1
- package/dist/auth/index.d.ts +1 -1
- package/dist/auth/index.d.ts.map +1 -1
- package/dist/auth/index.js +6 -6
- package/dist/auth/index.js.map +1 -1
- package/dist/auth/initializeProviders.js +1 -1
- package/dist/auth/initializeProviders.js.map +1 -1
- package/dist/auth/newUsers.d.ts +1 -1
- package/dist/auth/newUsers.d.ts.map +1 -1
- package/dist/auth/newUsers.js +7 -7
- package/dist/auth/newUsers.js.map +1 -1
- package/dist/auth/providers/Auth0Provider.d.ts +1 -1
- package/dist/auth/providers/Auth0Provider.d.ts.map +1 -1
- package/dist/auth/providers/Auth0Provider.js +1 -1
- package/dist/auth/providers/Auth0Provider.js.map +1 -1
- package/dist/auth/providers/CognitoProvider.d.ts +1 -1
- package/dist/auth/providers/CognitoProvider.d.ts.map +1 -1
- package/dist/auth/providers/CognitoProvider.js +6 -3
- package/dist/auth/providers/CognitoProvider.js.map +1 -1
- package/dist/auth/providers/GoogleProvider.d.ts +1 -1
- package/dist/auth/providers/GoogleProvider.d.ts.map +1 -1
- package/dist/auth/providers/GoogleProvider.js +1 -1
- package/dist/auth/providers/GoogleProvider.js.map +1 -1
- package/dist/auth/providers/MSALProvider.d.ts +1 -1
- package/dist/auth/providers/MSALProvider.d.ts.map +1 -1
- package/dist/auth/providers/MSALProvider.js +1 -1
- package/dist/auth/providers/MSALProvider.js.map +1 -1
- package/dist/auth/providers/OktaProvider.d.ts +1 -1
- package/dist/auth/providers/OktaProvider.d.ts.map +1 -1
- package/dist/auth/providers/OktaProvider.js +1 -1
- package/dist/auth/providers/OktaProvider.js.map +1 -1
- package/dist/config.d.ts.map +1 -1
- package/dist/config.js +10 -22
- package/dist/config.js.map +1 -1
- package/dist/context.d.ts +1 -1
- package/dist/context.d.ts.map +1 -1
- package/dist/context.js +7 -9
- package/dist/context.js.map +1 -1
- package/dist/entitySubclasses/entityPermissions.server.d.ts +1 -1
- package/dist/entitySubclasses/entityPermissions.server.d.ts.map +1 -1
- package/dist/entitySubclasses/entityPermissions.server.js +1 -1
- package/dist/entitySubclasses/entityPermissions.server.js.map +1 -1
- package/dist/generated/generated.d.ts +788 -658
- package/dist/generated/generated.d.ts.map +1 -1
- package/dist/generated/generated.js +2050 -3054
- package/dist/generated/generated.js.map +1 -1
- package/dist/generic/KeyInputOutputTypes.d.ts +1 -1
- package/dist/generic/KeyInputOutputTypes.d.ts.map +1 -1
- package/dist/generic/KeyInputOutputTypes.js +1 -1
- package/dist/generic/KeyInputOutputTypes.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 +10 -15
- package/dist/generic/ResolverBase.js.map +1 -1
- package/dist/generic/RunViewResolver.d.ts +1 -1
- package/dist/generic/RunViewResolver.d.ts.map +1 -1
- package/dist/generic/RunViewResolver.js +15 -15
- package/dist/generic/RunViewResolver.js.map +1 -1
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +13 -18
- package/dist/index.js.map +1 -1
- package/dist/resolvers/ActionResolver.d.ts +2 -2
- package/dist/resolvers/ActionResolver.d.ts.map +1 -1
- package/dist/resolvers/ActionResolver.js +30 -28
- package/dist/resolvers/ActionResolver.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 +50 -60
- package/dist/resolvers/AskSkipResolver.js.map +1 -1
- package/dist/resolvers/ComponentRegistryResolver.d.ts.map +1 -1
- package/dist/resolvers/ComponentRegistryResolver.js +38 -36
- package/dist/resolvers/ComponentRegistryResolver.js.map +1 -1
- package/dist/resolvers/CreateQueryResolver.d.ts +1 -1
- package/dist/resolvers/CreateQueryResolver.d.ts.map +1 -1
- package/dist/resolvers/CreateQueryResolver.js +40 -43
- package/dist/resolvers/CreateQueryResolver.js.map +1 -1
- package/dist/resolvers/DatasetResolver.d.ts.map +1 -1
- package/dist/resolvers/DatasetResolver.js +1 -1
- package/dist/resolvers/DatasetResolver.js.map +1 -1
- package/dist/resolvers/EntityRecordNameResolver.d.ts +1 -1
- package/dist/resolvers/EntityRecordNameResolver.d.ts.map +1 -1
- package/dist/resolvers/EntityRecordNameResolver.js +1 -1
- package/dist/resolvers/EntityRecordNameResolver.js.map +1 -1
- package/dist/resolvers/EntityResolver.d.ts.map +1 -1
- package/dist/resolvers/EntityResolver.js +1 -1
- package/dist/resolvers/EntityResolver.js.map +1 -1
- package/dist/resolvers/FileCategoryResolver.js +1 -1
- package/dist/resolvers/FileCategoryResolver.js.map +1 -1
- package/dist/resolvers/FileResolver.js +1 -1
- package/dist/resolvers/FileResolver.js.map +1 -1
- package/dist/resolvers/GetDataContextDataResolver.d.ts +1 -1
- package/dist/resolvers/GetDataContextDataResolver.d.ts.map +1 -1
- package/dist/resolvers/GetDataContextDataResolver.js +5 -5
- package/dist/resolvers/GetDataContextDataResolver.js.map +1 -1
- package/dist/resolvers/GetDataResolver.d.ts.map +1 -1
- package/dist/resolvers/GetDataResolver.js +6 -8
- package/dist/resolvers/GetDataResolver.js.map +1 -1
- package/dist/resolvers/MergeRecordsResolver.d.ts +3 -3
- package/dist/resolvers/MergeRecordsResolver.d.ts.map +1 -1
- package/dist/resolvers/MergeRecordsResolver.js +3 -3
- package/dist/resolvers/MergeRecordsResolver.js.map +1 -1
- package/dist/resolvers/PotentialDuplicateRecordResolver.d.ts +1 -1
- package/dist/resolvers/PotentialDuplicateRecordResolver.d.ts.map +1 -1
- package/dist/resolvers/PotentialDuplicateRecordResolver.js +1 -1
- package/dist/resolvers/PotentialDuplicateRecordResolver.js.map +1 -1
- package/dist/resolvers/QueryResolver.d.ts.map +1 -1
- package/dist/resolvers/QueryResolver.js +11 -11
- package/dist/resolvers/QueryResolver.js.map +1 -1
- package/dist/resolvers/ReportResolver.js +1 -1
- package/dist/resolvers/ReportResolver.js.map +1 -1
- package/dist/resolvers/RunAIAgentResolver.d.ts.map +1 -1
- package/dist/resolvers/RunAIAgentResolver.js +28 -27
- package/dist/resolvers/RunAIAgentResolver.js.map +1 -1
- package/dist/resolvers/RunAIPromptResolver.d.ts.map +1 -1
- package/dist/resolvers/RunAIPromptResolver.js +31 -31
- package/dist/resolvers/RunAIPromptResolver.js.map +1 -1
- package/dist/resolvers/RunTemplateResolver.d.ts.map +1 -1
- package/dist/resolvers/RunTemplateResolver.js +9 -9
- package/dist/resolvers/RunTemplateResolver.js.map +1 -1
- package/dist/resolvers/SqlLoggingConfigResolver.d.ts.map +1 -1
- package/dist/resolvers/SqlLoggingConfigResolver.js +10 -10
- package/dist/resolvers/SqlLoggingConfigResolver.js.map +1 -1
- package/dist/resolvers/SyncDataResolver.d.ts +1 -1
- package/dist/resolvers/SyncDataResolver.d.ts.map +1 -1
- package/dist/resolvers/SyncDataResolver.js +14 -15
- package/dist/resolvers/SyncDataResolver.js.map +1 -1
- package/dist/resolvers/SyncRolesUsersResolver.d.ts +1 -1
- package/dist/resolvers/SyncRolesUsersResolver.d.ts.map +1 -1
- package/dist/resolvers/SyncRolesUsersResolver.js +44 -48
- package/dist/resolvers/SyncRolesUsersResolver.js.map +1 -1
- package/dist/resolvers/TaskResolver.d.ts.map +1 -1
- package/dist/resolvers/TaskResolver.js +7 -7
- package/dist/resolvers/TaskResolver.js.map +1 -1
- package/dist/resolvers/TransactionGroupResolver.d.ts +1 -1
- package/dist/resolvers/TransactionGroupResolver.d.ts.map +1 -1
- package/dist/resolvers/TransactionGroupResolver.js +12 -12
- package/dist/resolvers/TransactionGroupResolver.js.map +1 -1
- package/dist/resolvers/UserFavoriteResolver.d.ts +1 -1
- package/dist/resolvers/UserFavoriteResolver.d.ts.map +1 -1
- package/dist/resolvers/UserFavoriteResolver.js +1 -1
- package/dist/resolvers/UserFavoriteResolver.js.map +1 -1
- package/dist/resolvers/UserViewResolver.d.ts.map +1 -1
- package/dist/resolvers/UserViewResolver.js.map +1 -1
- package/dist/rest/EntityCRUDHandler.d.ts +1 -1
- package/dist/rest/EntityCRUDHandler.d.ts.map +1 -1
- package/dist/rest/EntityCRUDHandler.js +16 -14
- package/dist/rest/EntityCRUDHandler.js.map +1 -1
- package/dist/rest/RESTEndpointHandler.d.ts.map +1 -1
- package/dist/rest/RESTEndpointHandler.js +25 -23
- package/dist/rest/RESTEndpointHandler.js.map +1 -1
- package/dist/rest/ViewOperationsHandler.d.ts +1 -1
- package/dist/rest/ViewOperationsHandler.d.ts.map +1 -1
- package/dist/rest/ViewOperationsHandler.js +21 -17
- package/dist/rest/ViewOperationsHandler.js.map +1 -1
- package/dist/scheduler/LearningCycleScheduler.d.ts.map +1 -1
- package/dist/scheduler/LearningCycleScheduler.js.map +1 -1
- package/dist/services/ScheduledJobsService.d.ts.map +1 -1
- package/dist/services/ScheduledJobsService.js +6 -4
- package/dist/services/ScheduledJobsService.js.map +1 -1
- package/dist/services/TaskOrchestrator.d.ts +1 -1
- package/dist/services/TaskOrchestrator.d.ts.map +1 -1
- package/dist/services/TaskOrchestrator.js +30 -30
- package/dist/services/TaskOrchestrator.js.map +1 -1
- package/dist/types.d.ts +3 -3
- package/dist/types.d.ts.map +1 -1
- package/dist/types.js +1 -0
- package/dist/types.js.map +1 -1
- package/dist/util.d.ts +1 -1
- package/dist/util.d.ts.map +1 -1
- package/dist/util.js +2 -2
- package/dist/util.js.map +1 -1
- package/package.json +39 -36
- package/src/agents/skip-agent.ts +1200 -1067
- package/src/agents/skip-sdk.ts +851 -877
- package/src/apolloServer/index.ts +2 -2
- package/src/auth/AuthProviderFactory.ts +14 -8
- package/src/auth/BaseAuthProvider.ts +4 -5
- package/src/auth/IAuthProvider.ts +2 -2
- package/src/auth/exampleNewUserSubClass.ts +2 -9
- package/src/auth/index.ts +26 -31
- package/src/auth/initializeProviders.ts +3 -3
- package/src/auth/newUsers.ts +134 -166
- package/src/auth/providers/Auth0Provider.ts +5 -5
- package/src/auth/providers/CognitoProvider.ts +10 -7
- package/src/auth/providers/GoogleProvider.ts +5 -4
- package/src/auth/providers/MSALProvider.ts +5 -5
- package/src/auth/providers/OktaProvider.ts +7 -6
- package/src/config.ts +54 -63
- package/src/context.ts +30 -42
- package/src/entitySubclasses/entityPermissions.server.ts +3 -3
- package/src/generated/generated.ts +40442 -48106
- package/src/generic/KeyInputOutputTypes.ts +6 -3
- package/src/generic/ResolverBase.ts +78 -119
- package/src/generic/RunViewResolver.ts +23 -27
- package/src/index.ts +48 -66
- package/src/resolvers/ActionResolver.ts +57 -46
- package/src/resolvers/AskSkipResolver.ts +533 -607
- package/src/resolvers/ComponentRegistryResolver.ts +562 -547
- package/src/resolvers/CreateQueryResolver.ts +655 -683
- package/src/resolvers/DatasetResolver.ts +6 -5
- package/src/resolvers/EntityCommunicationsResolver.ts +1 -1
- package/src/resolvers/EntityRecordNameResolver.ts +5 -9
- package/src/resolvers/EntityResolver.ts +7 -9
- package/src/resolvers/FileCategoryResolver.ts +2 -2
- package/src/resolvers/FileResolver.ts +4 -4
- package/src/resolvers/GetDataContextDataResolver.ts +118 -106
- package/src/resolvers/GetDataResolver.ts +205 -194
- package/src/resolvers/MergeRecordsResolver.ts +5 -5
- package/src/resolvers/PotentialDuplicateRecordResolver.ts +1 -1
- package/src/resolvers/QueryResolver.ts +78 -95
- package/src/resolvers/ReportResolver.ts +2 -2
- package/src/resolvers/RunAIAgentResolver.ts +828 -818
- package/src/resolvers/RunAIPromptResolver.ts +709 -693
- package/src/resolvers/RunTemplateResolver.ts +103 -105
- package/src/resolvers/SqlLoggingConfigResolver.ts +72 -69
- package/src/resolvers/SyncDataResolver.ts +352 -386
- package/src/resolvers/SyncRolesUsersResolver.ts +350 -387
- package/src/resolvers/TaskResolver.ts +115 -110
- package/src/resolvers/TransactionGroupResolver.ts +138 -143
- package/src/resolvers/UserFavoriteResolver.ts +8 -17
- package/src/resolvers/UserViewResolver.ts +12 -17
- package/src/rest/EntityCRUDHandler.ts +268 -291
- package/src/rest/RESTEndpointHandler.ts +776 -782
- package/src/rest/ViewOperationsHandler.ts +195 -191
- package/src/scheduler/LearningCycleScheduler.ts +52 -8
- package/src/services/ScheduledJobsService.ts +132 -129
- package/src/services/TaskOrchestrator.ts +776 -792
- package/src/types.ts +9 -15
- package/src/util.ts +109 -112
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import { Arg, Ctx, Field, InputType, Int, ObjectType, Query, Resolver } from 'type-graphql';
|
|
2
2
|
import { AppContext } from '../types.js';
|
|
3
|
-
import { LogError, Metadata } from '@memberjunction/
|
|
3
|
+
import { LogError, Metadata } from '@memberjunction/core';
|
|
4
4
|
import { GetReadOnlyProvider } from '../util.js';
|
|
5
5
|
|
|
6
6
|
@ObjectType()
|
|
@@ -33,16 +33,17 @@ export class DatasetItemFilterTypeGQL {
|
|
|
33
33
|
Filter: string;
|
|
34
34
|
}
|
|
35
35
|
|
|
36
|
+
|
|
36
37
|
@Resolver(DatasetResultType)
|
|
37
38
|
export class DatasetResolverExtended {
|
|
38
39
|
@Query(() => DatasetResultType)
|
|
39
40
|
async GetDatasetByName(
|
|
40
41
|
@Arg('DatasetName', () => String) DatasetName: string,
|
|
41
|
-
@Ctx() {
|
|
42
|
+
@Ctx() {providers}: AppContext,
|
|
42
43
|
@Arg('ItemFilters', () => [DatasetItemFilterTypeGQL], { nullable: 'itemsAndList' }) ItemFilters?: DatasetItemFilterTypeGQL[]
|
|
43
44
|
) {
|
|
44
45
|
try {
|
|
45
|
-
const md = GetReadOnlyProvider(providers, {
|
|
46
|
+
const md = GetReadOnlyProvider(providers, {allowFallbackToReadWrite: true});
|
|
46
47
|
const result = await md.GetDatasetByName(DatasetName, ItemFilters);
|
|
47
48
|
if (result) {
|
|
48
49
|
return {
|
|
@@ -89,11 +90,11 @@ export class DatasetStatusResolver {
|
|
|
89
90
|
@Query(() => DatasetStatusResultType)
|
|
90
91
|
async GetDatasetStatusByName(
|
|
91
92
|
@Arg('DatasetName', () => String) DatasetName: string,
|
|
92
|
-
@Ctx() {
|
|
93
|
+
@Ctx() {providers}: AppContext,
|
|
93
94
|
@Arg('ItemFilters', () => [DatasetItemFilterTypeGQL], { nullable: 'itemsAndList' }) ItemFilters?: DatasetItemFilterTypeGQL[]
|
|
94
95
|
) {
|
|
95
96
|
try {
|
|
96
|
-
const md = GetReadOnlyProvider(providers, {
|
|
97
|
+
const md = GetReadOnlyProvider(providers, {allowFallbackToReadWrite: true});
|
|
97
98
|
const result = await md.GetDatasetStatusByName(DatasetName, ItemFilters);
|
|
98
99
|
if (result) {
|
|
99
100
|
return {
|
|
@@ -3,7 +3,7 @@ import { AppContext } from '../types.js';
|
|
|
3
3
|
import { RunViewByIDInput } from '../generic/RunViewResolver.js';
|
|
4
4
|
import { Message } from '@memberjunction/communication-types';
|
|
5
5
|
import { EntityCommunicationsEngine } from '@memberjunction/entity-communications-server';
|
|
6
|
-
import { RunViewParams } from '@memberjunction/
|
|
6
|
+
import { RunViewParams } from '@memberjunction/core';
|
|
7
7
|
import { GraphQLJSONObject } from 'graphql-type-json';
|
|
8
8
|
import { TemplateEngineServer } from '@memberjunction/templates';
|
|
9
9
|
import { EntityCommunicationParams } from '@memberjunction/entity-communications-base';
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { Metadata, CompositeKey, DatabaseProviderBase } from '@memberjunction/
|
|
1
|
+
import { Metadata, CompositeKey, DatabaseProviderBase } from '@memberjunction/core';
|
|
2
2
|
import { Arg, Ctx, Field, InputType, ObjectType, Query, Resolver } from 'type-graphql';
|
|
3
3
|
import { AppContext } from '../types.js';
|
|
4
4
|
import { CompositeKeyInputType, CompositeKeyOutputType } from '../generic/KeyInputOutputTypes.js';
|
|
@@ -39,7 +39,7 @@ export class EntityRecordNameResolver {
|
|
|
39
39
|
@Arg('CompositeKey', () => CompositeKeyInputType) primaryKey: CompositeKey,
|
|
40
40
|
@Ctx() { providers, userPayload }: AppContext
|
|
41
41
|
): Promise<EntityRecordNameResult> {
|
|
42
|
-
const md = GetReadOnlyProvider(providers, {
|
|
42
|
+
const md = GetReadOnlyProvider(providers, {allowFallbackToReadWrite: true});
|
|
43
43
|
|
|
44
44
|
return await this.InnerGetEntityRecordName(md, EntityName, primaryKey);
|
|
45
45
|
}
|
|
@@ -47,21 +47,17 @@ export class EntityRecordNameResolver {
|
|
|
47
47
|
@Query(() => [EntityRecordNameResult])
|
|
48
48
|
async GetEntityRecordNames(
|
|
49
49
|
@Arg('info', () => [EntityRecordNameInput]) info: EntityRecordNameInput[],
|
|
50
|
-
@Ctx() {
|
|
50
|
+
@Ctx() {providers}: AppContext
|
|
51
51
|
): Promise<EntityRecordNameResult[]> {
|
|
52
52
|
const result: EntityRecordNameResult[] = [];
|
|
53
|
-
const md = GetReadOnlyProvider(providers, {
|
|
53
|
+
const md = GetReadOnlyProvider(providers, {allowFallbackToReadWrite: true});
|
|
54
54
|
for (const i of info) {
|
|
55
55
|
result.push(await this.InnerGetEntityRecordName(md, i.EntityName, i.CompositeKey));
|
|
56
56
|
}
|
|
57
57
|
return result;
|
|
58
58
|
}
|
|
59
59
|
|
|
60
|
-
async InnerGetEntityRecordName(
|
|
61
|
-
md: DatabaseProviderBase,
|
|
62
|
-
EntityName: string,
|
|
63
|
-
primaryKey: CompositeKeyInputType
|
|
64
|
-
): Promise<EntityRecordNameResult> {
|
|
60
|
+
async InnerGetEntityRecordName(md: DatabaseProviderBase, EntityName: string, primaryKey: CompositeKeyInputType): Promise<EntityRecordNameResult> {
|
|
65
61
|
const pk = new CompositeKey(primaryKey.KeyValuePairs);
|
|
66
62
|
const e = md.Entities.find((e) => e.Name === EntityName);
|
|
67
63
|
if (e) {
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { EntityPermissionType, IRunViewProvider } from '@memberjunction/
|
|
1
|
+
import { EntityPermissionType, IRunViewProvider } from '@memberjunction/core';
|
|
2
2
|
import { AppContext } from '../types.js';
|
|
3
3
|
import { Arg, Ctx, Query, Resolver, InputType, Field } from 'type-graphql';
|
|
4
4
|
import { MJEntity_, MJEntityResolverBase } from '../generated/generated.js';
|
|
@@ -33,16 +33,14 @@ export class EntityResolver extends MJEntityResolverBase {
|
|
|
33
33
|
else totalWhere = ` ${rlsWhere}`;
|
|
34
34
|
}
|
|
35
35
|
const rv = provider as any as IRunViewProvider;
|
|
36
|
-
const result = await rv.RunView(
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
},
|
|
41
|
-
userPayload.userRecord
|
|
42
|
-
);
|
|
36
|
+
const result = await rv.RunView({
|
|
37
|
+
EntityName: 'Entities',
|
|
38
|
+
ExtraFilter: totalWhere,
|
|
39
|
+
}, userPayload.userRecord);
|
|
43
40
|
if (result && result.Success) {
|
|
44
41
|
return result.Results;
|
|
45
|
-
}
|
|
42
|
+
}
|
|
43
|
+
else {
|
|
46
44
|
throw new Error(`Failed to fetch entities: ${result?.ErrorMessage || 'Unknown error'}`);
|
|
47
45
|
}
|
|
48
46
|
}
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { CompositeKey, EntityDeleteOptions, EntityPermissionType, EntitySaveOptions, Metadata, RunView } from '@memberjunction/
|
|
1
|
+
import { CompositeKey, EntityDeleteOptions, EntityPermissionType, EntitySaveOptions, Metadata, RunView } from '@memberjunction/core';
|
|
2
2
|
import { FileCategoryEntity, FileEntity } from '@memberjunction/core-entities';
|
|
3
3
|
import { AppContext, Arg, Ctx, DeleteOptionsInput, Int, Mutation } from '@memberjunction/server';
|
|
4
4
|
import { mj_core_schema } from '../config.js';
|
|
@@ -16,7 +16,7 @@ export class FileResolver extends FileCategoryResolverBase {
|
|
|
16
16
|
) {
|
|
17
17
|
const key = new CompositeKey();
|
|
18
18
|
key.LoadFromSingleKeyValuePair('ID', ID);
|
|
19
|
-
const p = GetReadWriteProvider(providers);
|
|
19
|
+
const p = GetReadWriteProvider(providers);
|
|
20
20
|
|
|
21
21
|
if (!(await this.BeforeDelete(p, key))) {
|
|
22
22
|
return null;
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { EntityPermissionType, Metadata, FieldValueCollection, EntitySaveOptions } from '@memberjunction/
|
|
1
|
+
import { EntityPermissionType, Metadata, FieldValueCollection, EntitySaveOptions } from '@memberjunction/core';
|
|
2
2
|
import { FileEntity, FileStorageProviderEntity } from '@memberjunction/core-entities';
|
|
3
3
|
import {
|
|
4
4
|
AppContext,
|
|
@@ -52,7 +52,7 @@ export class FileResolver extends FileResolverBase {
|
|
|
52
52
|
@PubSub() pubSub: PubSubEngine
|
|
53
53
|
) {
|
|
54
54
|
// Check to see if there's already an object with that name
|
|
55
|
-
const provider = GetReadOnlyProvider(context.providers, {
|
|
55
|
+
const provider = GetReadOnlyProvider(context.providers, {allowFallbackToReadWrite: true})
|
|
56
56
|
const user = this.GetUserFromPayload(context.userPayload);
|
|
57
57
|
const fileEntity = await provider.GetEntityObject<FileEntity>('Files', user);
|
|
58
58
|
const providerEntity = await provider.GetEntityObject<FileStorageProviderEntity>('File Storage Providers', user);
|
|
@@ -107,7 +107,7 @@ export class FileResolver extends FileResolverBase {
|
|
|
107
107
|
@PubSub() pubSub: PubSubEngine
|
|
108
108
|
) {
|
|
109
109
|
// if the name is changing, rename the target object as well
|
|
110
|
-
const md = GetReadOnlyProvider(context.providers, {
|
|
110
|
+
const md = GetReadOnlyProvider(context.providers, {allowFallbackToReadWrite: true});
|
|
111
111
|
const user = this.GetUserFromPayload(context.userPayload);
|
|
112
112
|
const fileEntity = await md.GetEntityObject<FileEntity>('Files', user);
|
|
113
113
|
fileEntity.CheckPermissions(EntityPermissionType.Update, true);
|
|
@@ -135,7 +135,7 @@ export class FileResolver extends FileResolverBase {
|
|
|
135
135
|
@Ctx() context: AppContext,
|
|
136
136
|
@PubSub() pubSub: PubSubEngine
|
|
137
137
|
) {
|
|
138
|
-
const md = GetReadOnlyProvider(context.providers, {
|
|
138
|
+
const md = GetReadOnlyProvider(context.providers, {allowFallbackToReadWrite: true});
|
|
139
139
|
const userInfo = this.GetUserFromPayload(context.userPayload);
|
|
140
140
|
|
|
141
141
|
const fileEntity = await md.GetEntityObject<FileEntity>('Files', userInfo);
|
|
@@ -1,124 +1,136 @@
|
|
|
1
|
-
import { Arg, Ctx, Field, ObjectType, Query } from
|
|
2
|
-
import { AppContext } from
|
|
3
|
-
import { DataContext } from
|
|
4
|
-
import { GetReadOnlyDataSource, GetReadOnlyProvider } from
|
|
5
|
-
import { Metadata } from
|
|
6
|
-
import { DataContextItemEntity } from
|
|
1
|
+
import { Arg, Ctx, Field, ObjectType, Query } from "type-graphql";
|
|
2
|
+
import { AppContext } from "../types.js";
|
|
3
|
+
import { DataContext } from "@memberjunction/data-context";
|
|
4
|
+
import { GetReadOnlyDataSource, GetReadOnlyProvider } from "../util.js";
|
|
5
|
+
import { Metadata } from "@memberjunction/core";
|
|
6
|
+
import { DataContextItemEntity } from "@memberjunction/core-entities";
|
|
7
7
|
|
|
8
8
|
@ObjectType()
|
|
9
9
|
export class GetDataContextItemDataOutputType {
|
|
10
|
-
|
|
11
|
-
|
|
10
|
+
@Field(() => Boolean)
|
|
11
|
+
Success: boolean;
|
|
12
12
|
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
13
|
+
/**
|
|
14
|
+
* If not successful, this will be the error message.
|
|
15
|
+
*/
|
|
16
|
+
@Field(() => String, { nullable: true })
|
|
17
|
+
ErrorMessage: string | null;
|
|
18
18
|
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
19
|
+
/**
|
|
20
|
+
* If successful, this will be the JSON for the data context item's data.
|
|
21
|
+
*/
|
|
22
|
+
@Field(() => String, { nullable: true })
|
|
23
|
+
Result: string | null;
|
|
24
24
|
}
|
|
25
25
|
|
|
26
26
|
@ObjectType()
|
|
27
27
|
export class GetDataContextDataOutputType {
|
|
28
|
-
|
|
29
|
-
|
|
28
|
+
@Field(() => Boolean)
|
|
29
|
+
Success: boolean;
|
|
30
30
|
|
|
31
|
-
|
|
32
|
-
|
|
31
|
+
@Field(() => [String], { nullable: 'itemsAndList' }) // Allow nulls inside array & entire field nullable
|
|
32
|
+
ErrorMessages: (string | null)[];
|
|
33
33
|
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
|
|
34
|
+
/**
|
|
35
|
+
* Each data context item's results will be converted to JSON and returned as a string
|
|
36
|
+
*/
|
|
37
|
+
@Field(() => [String], { nullable: 'itemsAndList' }) // Allow nulls inside array & entire field nullable
|
|
38
|
+
Results: (string | null)[];
|
|
39
39
|
}
|
|
40
40
|
|
|
41
|
+
|
|
41
42
|
export class GetDataContextDataResolver {
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
|
|
50
|
-
|
|
51
|
-
|
|
52
|
-
|
|
53
|
-
|
|
54
|
-
|
|
55
|
-
|
|
56
|
-
|
|
57
|
-
|
|
58
|
-
|
|
59
|
-
|
|
60
|
-
|
|
61
|
-
|
|
62
|
-
|
|
63
|
-
|
|
64
|
-
|
|
65
|
-
|
|
66
|
-
|
|
67
|
-
|
|
68
|
-
|
|
69
|
-
|
|
43
|
+
/**
|
|
44
|
+
* Returns data for a given data context item.
|
|
45
|
+
* @param DataContextItemID
|
|
46
|
+
*/
|
|
47
|
+
@Query(() => GetDataContextItemDataOutputType)
|
|
48
|
+
async GetDataContextItemData(
|
|
49
|
+
@Arg('DataContextItemID', () => String) DataContextItemID: string,
|
|
50
|
+
@Ctx() appCtx: AppContext
|
|
51
|
+
) {
|
|
52
|
+
try {
|
|
53
|
+
const ds = GetReadOnlyDataSource(appCtx.dataSources, {
|
|
54
|
+
allowFallbackToReadWrite: true,
|
|
55
|
+
})
|
|
56
|
+
const md = GetReadOnlyProvider(appCtx.providers, {allowFallbackToReadWrite: true});
|
|
57
|
+
const dciData = await md.GetEntityObject<DataContextItemEntity>("Data Context Items", appCtx.userPayload.userRecord);
|
|
58
|
+
if (await dciData.Load(DataContextItemID)) {
|
|
59
|
+
const dci = DataContext.CreateDataContextItem(); // use class factory to get whatever lowest level sub-class is registered
|
|
60
|
+
await dci.LoadMetadataFromEntityRecord(dciData, Metadata.Provider, appCtx.userPayload.userRecord);
|
|
61
|
+
// now the metadata is loaded so we can call the regular load function
|
|
62
|
+
if (await dci.LoadData(ds)) {
|
|
63
|
+
return {
|
|
64
|
+
Success: true,
|
|
65
|
+
ErrorMessage: null,
|
|
66
|
+
Result: JSON.stringify(dci.Data),
|
|
67
|
+
}
|
|
68
|
+
}
|
|
69
|
+
else {
|
|
70
|
+
return {
|
|
71
|
+
Success: false,
|
|
72
|
+
ErrorMessage: 'Error loading data context item data',
|
|
73
|
+
Result: null,
|
|
74
|
+
}
|
|
75
|
+
}
|
|
76
|
+
}
|
|
77
|
+
else {
|
|
78
|
+
return {
|
|
79
|
+
Success: false,
|
|
80
|
+
ErrorMessage: 'Error loading data context item metadata',
|
|
81
|
+
Result: null,
|
|
82
|
+
}
|
|
83
|
+
}
|
|
84
|
+
}
|
|
85
|
+
catch (e) {
|
|
86
|
+
return {
|
|
87
|
+
Success: false,
|
|
88
|
+
ErrorMessage: e,
|
|
89
|
+
Result: null,
|
|
90
|
+
}
|
|
70
91
|
}
|
|
71
|
-
} else {
|
|
72
|
-
return {
|
|
73
|
-
Success: false,
|
|
74
|
-
ErrorMessage: 'Error loading data context item metadata',
|
|
75
|
-
Result: null,
|
|
76
|
-
};
|
|
77
|
-
}
|
|
78
|
-
} catch (e) {
|
|
79
|
-
return {
|
|
80
|
-
Success: false,
|
|
81
|
-
ErrorMessage: e,
|
|
82
|
-
Result: null,
|
|
83
|
-
};
|
|
84
92
|
}
|
|
85
|
-
}
|
|
86
93
|
|
|
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
|
-
|
|
94
|
+
/**
|
|
95
|
+
* Returns data for a given data context.
|
|
96
|
+
* @param DataContextID
|
|
97
|
+
*/
|
|
98
|
+
@Query(() => GetDataContextDataOutputType)
|
|
99
|
+
async GetDataContextData(
|
|
100
|
+
@Arg('DataContextID', () => String) DataContextID: string,
|
|
101
|
+
@Ctx() appCtx: AppContext
|
|
102
|
+
) {
|
|
103
|
+
try {
|
|
104
|
+
// our job here is to load the entire data context, so we do that with the Data Context object
|
|
105
|
+
const dc = new DataContext();
|
|
106
|
+
const ds = GetReadOnlyDataSource(appCtx.dataSources, {
|
|
107
|
+
allowFallbackToReadWrite: true,
|
|
108
|
+
})
|
|
109
|
+
const success = await dc.Load(DataContextID, ds, true, false, 0, appCtx.userPayload.userRecord);
|
|
110
|
+
if (success) {
|
|
111
|
+
const retVal = {
|
|
112
|
+
Success: true,
|
|
113
|
+
ErrorMessages: null,
|
|
114
|
+
Results: dc.Items.map((item) => {
|
|
115
|
+
return JSON.stringify(item.Data);
|
|
116
|
+
}),
|
|
117
|
+
}
|
|
118
|
+
return retVal;
|
|
119
|
+
}
|
|
120
|
+
else {
|
|
121
|
+
return {
|
|
122
|
+
Success: false,
|
|
123
|
+
ErrorMessages: ['Error loading data context'],
|
|
124
|
+
Results: null,
|
|
125
|
+
}
|
|
126
|
+
}
|
|
127
|
+
}
|
|
128
|
+
catch (e) {
|
|
129
|
+
return {
|
|
130
|
+
Success: false,
|
|
131
|
+
ErrorMessages: [e],
|
|
132
|
+
Results: null,
|
|
133
|
+
}
|
|
134
|
+
}
|
|
122
135
|
}
|
|
123
|
-
|
|
124
|
-
}
|
|
136
|
+
}
|