@rytass/cms-base-nestjs-graphql-module 0.0.25 → 0.0.27
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/cms-base-graphql.module.d.ts +6 -3
- package/cms-base-graphql.module.js +41 -0
- package/constants/option-providers.d.ts +2 -0
- package/constants/option-providers.js +20 -0
- package/dto/articles.args.js +2 -2
- package/dto/categories.args.js +3 -3
- package/dto/create-article.args.d.ts +2 -0
- package/dto/create-article.args.js +10 -0
- package/dto/create-category.args.d.ts +2 -0
- package/dto/create-category.args.js +10 -0
- package/dto/custom-field.input.d.ts +4 -0
- package/dto/custom-field.input.js +28 -0
- package/index.cjs.js +172 -50
- package/index.d.ts +1 -0
- package/index.js +1 -0
- package/mutations/article.mutations.d.ts +3 -1
- package/mutations/article.mutations.js +15 -5
- package/mutations/category.mutations.d.ts +3 -1
- package/mutations/category.mutations.js +19 -9
- package/package.json +1 -1
- package/typings/cms-graphql-base-providers.d.ts +3 -0
- package/typings/cms-graphql-base-providers.js +5 -0
- package/typings/cms-graphql-base-root-module-async-options.dto.d.ts +9 -0
- package/typings/cms-graphql-base-root-module-option-factory.d.ts +4 -0
- package/typings/cms-graphql-base-root-module-options.dto.d.ts +6 -0
|
@@ -1,6 +1,9 @@
|
|
|
1
1
|
import { DynamicModule } from '@nestjs/common';
|
|
2
|
-
import {
|
|
2
|
+
import { CMSGraphqlBaseModuleOptionsDto } from './typings/cms-graphql-base-root-module-options.dto';
|
|
3
|
+
import { CMSGraphqlBaseModuleAsyncOptionsDto } from './typings/cms-graphql-base-root-module-async-options.dto';
|
|
3
4
|
export declare class CMSBaseGraphQLModule {
|
|
4
|
-
static forRootAsync(options:
|
|
5
|
-
static forRoot(options
|
|
5
|
+
static forRootAsync(options: CMSGraphqlBaseModuleAsyncOptionsDto): DynamicModule;
|
|
6
|
+
static forRoot(options: CMSGraphqlBaseModuleOptionsDto): DynamicModule;
|
|
7
|
+
private static createAsyncProvider;
|
|
8
|
+
private static createAsyncOptionsProvider;
|
|
6
9
|
}
|
|
@@ -10,6 +10,8 @@ import { ArticleResolver } from './resolvers/article.resolver.js';
|
|
|
10
10
|
import { BackstageArticleResolver } from './resolvers/backstage-article.resolver.js';
|
|
11
11
|
import { ArticleSignatureResolver } from './resolvers/article-signature.resolver.js';
|
|
12
12
|
import { BackstageCategoryResolver } from './resolvers/backstage-category.resolver.js';
|
|
13
|
+
import { OptionProviders } from './constants/option-providers.js';
|
|
14
|
+
import { CMS_BASE_GRAPHQL_MODULE_OPTIONS } from './typings/cms-graphql-base-providers.js';
|
|
13
15
|
|
|
14
16
|
function _ts_decorate(decorators, target, key, desc) {
|
|
15
17
|
var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
|
|
@@ -29,6 +31,8 @@ class CMSBaseGraphQLModule {
|
|
|
29
31
|
CMSBaseModule
|
|
30
32
|
],
|
|
31
33
|
providers: [
|
|
34
|
+
...this.createAsyncProvider(options),
|
|
35
|
+
...OptionProviders,
|
|
32
36
|
MemberDataLoader,
|
|
33
37
|
ArticleDataLoader,
|
|
34
38
|
ArticleResolver,
|
|
@@ -52,6 +56,11 @@ class CMSBaseGraphQLModule {
|
|
|
52
56
|
CMSBaseModule
|
|
53
57
|
],
|
|
54
58
|
providers: [
|
|
59
|
+
{
|
|
60
|
+
provide: CMS_BASE_GRAPHQL_MODULE_OPTIONS,
|
|
61
|
+
useValue: options
|
|
62
|
+
},
|
|
63
|
+
...OptionProviders,
|
|
55
64
|
MemberDataLoader,
|
|
56
65
|
ArticleDataLoader,
|
|
57
66
|
ArticleResolver,
|
|
@@ -65,6 +74,38 @@ class CMSBaseGraphQLModule {
|
|
|
65
74
|
]
|
|
66
75
|
};
|
|
67
76
|
}
|
|
77
|
+
static createAsyncProvider(options) {
|
|
78
|
+
if (options.useExisting || options.useFactory) {
|
|
79
|
+
return [
|
|
80
|
+
this.createAsyncOptionsProvider(options)
|
|
81
|
+
];
|
|
82
|
+
}
|
|
83
|
+
return [
|
|
84
|
+
this.createAsyncOptionsProvider(options),
|
|
85
|
+
...options.useClass ? [
|
|
86
|
+
{
|
|
87
|
+
provide: options.useClass,
|
|
88
|
+
useClass: options.useClass
|
|
89
|
+
}
|
|
90
|
+
] : []
|
|
91
|
+
];
|
|
92
|
+
}
|
|
93
|
+
static createAsyncOptionsProvider(options) {
|
|
94
|
+
if (options.useFactory) {
|
|
95
|
+
return {
|
|
96
|
+
provide: CMS_BASE_GRAPHQL_MODULE_OPTIONS,
|
|
97
|
+
useFactory: options.useFactory,
|
|
98
|
+
inject: options.inject || []
|
|
99
|
+
};
|
|
100
|
+
}
|
|
101
|
+
return {
|
|
102
|
+
provide: CMS_BASE_GRAPHQL_MODULE_OPTIONS,
|
|
103
|
+
useFactory: async (optionsFactory)=>await optionsFactory.createCMSOptions(),
|
|
104
|
+
inject: [
|
|
105
|
+
options.useExisting || options.useClass
|
|
106
|
+
]
|
|
107
|
+
};
|
|
108
|
+
}
|
|
68
109
|
}
|
|
69
110
|
CMSBaseGraphQLModule = _ts_decorate([
|
|
70
111
|
Module({})
|
|
@@ -0,0 +1,20 @@
|
|
|
1
|
+
import { MAP_ARTICLE_CUSTOM_FIELDS_TO_ENTITY_COLUMNS, CMS_BASE_GRAPHQL_MODULE_OPTIONS, MAP_CATEGORY_CUSTOM_FIELDS_TO_ENTITY_COLUMNS } from '../typings/cms-graphql-base-providers.js';
|
|
2
|
+
|
|
3
|
+
const OptionProviders = [
|
|
4
|
+
{
|
|
5
|
+
provide: MAP_ARTICLE_CUSTOM_FIELDS_TO_ENTITY_COLUMNS,
|
|
6
|
+
useFactory: async (options)=>options?.mapArticleCustomFieldsToEntityColumns ? options.mapArticleCustomFieldsToEntityColumns : ()=>({}),
|
|
7
|
+
inject: [
|
|
8
|
+
CMS_BASE_GRAPHQL_MODULE_OPTIONS
|
|
9
|
+
]
|
|
10
|
+
},
|
|
11
|
+
{
|
|
12
|
+
provide: MAP_CATEGORY_CUSTOM_FIELDS_TO_ENTITY_COLUMNS,
|
|
13
|
+
useFactory: async (options)=>options?.mapCategoryCustomFieldsToEntityColumns ? options.mapCategoryCustomFieldsToEntityColumns : ()=>({}),
|
|
14
|
+
inject: [
|
|
15
|
+
CMS_BASE_GRAPHQL_MODULE_OPTIONS
|
|
16
|
+
]
|
|
17
|
+
}
|
|
18
|
+
];
|
|
19
|
+
|
|
20
|
+
export { OptionProviders };
|
package/dto/articles.args.js
CHANGED
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { Field, Int, ArgsType } from '@nestjs/graphql';
|
|
1
|
+
import { Field, ID, Int, ArgsType } from '@nestjs/graphql';
|
|
2
2
|
|
|
3
3
|
function _ts_decorate(decorators, target, key, desc) {
|
|
4
4
|
var c = arguments.length, r = c < 3 ? target : desc, d;
|
|
@@ -17,7 +17,7 @@ class ArticlesArgs {
|
|
|
17
17
|
}
|
|
18
18
|
_ts_decorate([
|
|
19
19
|
Field(()=>[
|
|
20
|
-
|
|
20
|
+
ID
|
|
21
21
|
], {
|
|
22
22
|
nullable: true
|
|
23
23
|
}),
|
package/dto/categories.args.js
CHANGED
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { Field, ArgsType, registerEnumType } from '@nestjs/graphql';
|
|
1
|
+
import { Field, ID, ArgsType, registerEnumType } from '@nestjs/graphql';
|
|
2
2
|
import { CategorySorter } from '@rytass/cms-base-nestjs-module';
|
|
3
3
|
|
|
4
4
|
function _ts_decorate(decorators, target, key, desc) {
|
|
@@ -19,7 +19,7 @@ class CategoriesArgs {
|
|
|
19
19
|
}
|
|
20
20
|
_ts_decorate([
|
|
21
21
|
Field(()=>[
|
|
22
|
-
|
|
22
|
+
ID
|
|
23
23
|
], {
|
|
24
24
|
nullable: true
|
|
25
25
|
}),
|
|
@@ -27,7 +27,7 @@ _ts_decorate([
|
|
|
27
27
|
], CategoriesArgs.prototype, "parentIds", void 0);
|
|
28
28
|
_ts_decorate([
|
|
29
29
|
Field(()=>[
|
|
30
|
-
|
|
30
|
+
ID
|
|
31
31
|
], {
|
|
32
32
|
nullable: true
|
|
33
33
|
}),
|
|
@@ -1,4 +1,5 @@
|
|
|
1
1
|
import { ArticleVersionContentInput } from './article-version-content.input';
|
|
2
|
+
import { CustomFieldInput } from './custom-field.input';
|
|
2
3
|
export declare class CreateArticleArgs {
|
|
3
4
|
categoryIds: string[];
|
|
4
5
|
tags: string[];
|
|
@@ -6,4 +7,5 @@ export declare class CreateArticleArgs {
|
|
|
6
7
|
releasedAt?: Date | null;
|
|
7
8
|
submitted?: boolean | null;
|
|
8
9
|
signatureLevel?: string | null;
|
|
10
|
+
customFields?: CustomFieldInput[];
|
|
9
11
|
}
|
|
@@ -1,5 +1,6 @@
|
|
|
1
1
|
import { Field, ID, ArgsType } from '@nestjs/graphql';
|
|
2
2
|
import { ArticleVersionContentInput } from './article-version-content.input.js';
|
|
3
|
+
import { CustomFieldInput } from './custom-field.input.js';
|
|
3
4
|
|
|
4
5
|
function _ts_decorate(decorators, target, key, desc) {
|
|
5
6
|
var c = arguments.length, r = c < 3 ? target : desc, d;
|
|
@@ -17,6 +18,7 @@ class CreateArticleArgs {
|
|
|
17
18
|
releasedAt;
|
|
18
19
|
submitted;
|
|
19
20
|
signatureLevel;
|
|
21
|
+
customFields;
|
|
20
22
|
}
|
|
21
23
|
_ts_decorate([
|
|
22
24
|
Field(()=>[
|
|
@@ -54,6 +56,14 @@ _ts_decorate([
|
|
|
54
56
|
}),
|
|
55
57
|
_ts_metadata("design:type", Object)
|
|
56
58
|
], CreateArticleArgs.prototype, "signatureLevel", void 0);
|
|
59
|
+
_ts_decorate([
|
|
60
|
+
Field(()=>[
|
|
61
|
+
CustomFieldInput
|
|
62
|
+
], {
|
|
63
|
+
nullable: true
|
|
64
|
+
}),
|
|
65
|
+
_ts_metadata("design:type", Array)
|
|
66
|
+
], CreateArticleArgs.prototype, "customFields", void 0);
|
|
57
67
|
CreateArticleArgs = _ts_decorate([
|
|
58
68
|
ArgsType()
|
|
59
69
|
], CreateArticleArgs);
|
|
@@ -1,5 +1,7 @@
|
|
|
1
1
|
import { CategoryMultiLanguageNameInput } from './category-multi-language-name.input';
|
|
2
|
+
import { CustomFieldInput } from './custom-field.input';
|
|
2
3
|
export declare class CreateCategoryArgs {
|
|
3
4
|
parentIds?: string[] | null;
|
|
4
5
|
multiLanguageNames: CategoryMultiLanguageNameInput[];
|
|
6
|
+
customFields?: CustomFieldInput[];
|
|
5
7
|
}
|
|
@@ -1,5 +1,6 @@
|
|
|
1
1
|
import { Field, ID, ArgsType } from '@nestjs/graphql';
|
|
2
2
|
import { CategoryMultiLanguageNameInput } from './category-multi-language-name.input.js';
|
|
3
|
+
import { CustomFieldInput } from './custom-field.input.js';
|
|
3
4
|
|
|
4
5
|
function _ts_decorate(decorators, target, key, desc) {
|
|
5
6
|
var c = arguments.length, r = c < 3 ? target : desc, d;
|
|
@@ -13,6 +14,7 @@ function _ts_metadata(k, v) {
|
|
|
13
14
|
class CreateCategoryArgs {
|
|
14
15
|
parentIds;
|
|
15
16
|
multiLanguageNames;
|
|
17
|
+
customFields;
|
|
16
18
|
}
|
|
17
19
|
_ts_decorate([
|
|
18
20
|
Field(()=>[
|
|
@@ -28,6 +30,14 @@ _ts_decorate([
|
|
|
28
30
|
]),
|
|
29
31
|
_ts_metadata("design:type", Array)
|
|
30
32
|
], CreateCategoryArgs.prototype, "multiLanguageNames", void 0);
|
|
33
|
+
_ts_decorate([
|
|
34
|
+
Field(()=>[
|
|
35
|
+
CustomFieldInput
|
|
36
|
+
], {
|
|
37
|
+
nullable: true
|
|
38
|
+
}),
|
|
39
|
+
_ts_metadata("design:type", Array)
|
|
40
|
+
], CreateCategoryArgs.prototype, "customFields", void 0);
|
|
31
41
|
CreateCategoryArgs = _ts_decorate([
|
|
32
42
|
ArgsType()
|
|
33
43
|
], CreateCategoryArgs);
|
|
@@ -0,0 +1,28 @@
|
|
|
1
|
+
import { Field, ID, InputType } from '@nestjs/graphql';
|
|
2
|
+
|
|
3
|
+
function _ts_decorate(decorators, target, key, desc) {
|
|
4
|
+
var c = arguments.length, r = c < 3 ? target : desc, d;
|
|
5
|
+
if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
|
|
6
|
+
else for(var i = decorators.length - 1; i >= 0; i--)if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
|
|
7
|
+
return c > 3 && r && Object.defineProperty(target, key, r), r;
|
|
8
|
+
}
|
|
9
|
+
function _ts_metadata(k, v) {
|
|
10
|
+
if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(k, v);
|
|
11
|
+
}
|
|
12
|
+
class CustomFieldInput {
|
|
13
|
+
key;
|
|
14
|
+
value;
|
|
15
|
+
}
|
|
16
|
+
_ts_decorate([
|
|
17
|
+
Field(()=>ID),
|
|
18
|
+
_ts_metadata("design:type", String)
|
|
19
|
+
], CustomFieldInput.prototype, "key", void 0);
|
|
20
|
+
_ts_decorate([
|
|
21
|
+
Field(()=>String),
|
|
22
|
+
_ts_metadata("design:type", String)
|
|
23
|
+
], CustomFieldInput.prototype, "value", void 0);
|
|
24
|
+
CustomFieldInput = _ts_decorate([
|
|
25
|
+
InputType('CustomFieldInput')
|
|
26
|
+
], CustomFieldInput);
|
|
27
|
+
|
|
28
|
+
export { CustomFieldInput };
|
package/index.cjs.js
CHANGED
|
@@ -9,13 +9,13 @@ var DataLoader = require('dataloader');
|
|
|
9
9
|
var lruCache = require('lru-cache');
|
|
10
10
|
var typeorm = require('typeorm');
|
|
11
11
|
|
|
12
|
-
function _ts_decorate$
|
|
12
|
+
function _ts_decorate$z(decorators, target, key, desc) {
|
|
13
13
|
var c = arguments.length, r = c < 3 ? target : desc, d;
|
|
14
14
|
if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
|
|
15
15
|
else for(var i = decorators.length - 1; i >= 0; i--)if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
|
|
16
16
|
return c > 3 && r && Object.defineProperty(target, key, r), r;
|
|
17
17
|
}
|
|
18
|
-
function _ts_metadata$
|
|
18
|
+
function _ts_metadata$x(k, v) {
|
|
19
19
|
if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(k, v);
|
|
20
20
|
}
|
|
21
21
|
class BaseArticleDto {
|
|
@@ -25,41 +25,41 @@ class BaseArticleDto {
|
|
|
25
25
|
updatedAt;
|
|
26
26
|
releasedAt;
|
|
27
27
|
}
|
|
28
|
-
_ts_decorate$
|
|
28
|
+
_ts_decorate$z([
|
|
29
29
|
graphql.Field(()=>graphql.ID),
|
|
30
|
-
_ts_metadata$
|
|
30
|
+
_ts_metadata$x("design:type", String)
|
|
31
31
|
], BaseArticleDto.prototype, "id", void 0);
|
|
32
|
-
_ts_decorate$
|
|
32
|
+
_ts_decorate$z([
|
|
33
33
|
graphql.Field(()=>[
|
|
34
34
|
String
|
|
35
35
|
]),
|
|
36
|
-
_ts_metadata$
|
|
36
|
+
_ts_metadata$x("design:type", Array)
|
|
37
37
|
], BaseArticleDto.prototype, "tags", void 0);
|
|
38
|
-
_ts_decorate$
|
|
38
|
+
_ts_decorate$z([
|
|
39
39
|
graphql.Field(()=>Date),
|
|
40
|
-
_ts_metadata$
|
|
40
|
+
_ts_metadata$x("design:type", typeof Date === "undefined" ? Object : Date)
|
|
41
41
|
], BaseArticleDto.prototype, "createdAt", void 0);
|
|
42
|
-
_ts_decorate$
|
|
42
|
+
_ts_decorate$z([
|
|
43
43
|
graphql.Field(()=>Date),
|
|
44
|
-
_ts_metadata$
|
|
44
|
+
_ts_metadata$x("design:type", typeof Date === "undefined" ? Object : Date)
|
|
45
45
|
], BaseArticleDto.prototype, "updatedAt", void 0);
|
|
46
|
-
_ts_decorate$
|
|
46
|
+
_ts_decorate$z([
|
|
47
47
|
graphql.Field(()=>Date, {
|
|
48
48
|
nullable: true
|
|
49
49
|
}),
|
|
50
|
-
_ts_metadata$
|
|
50
|
+
_ts_metadata$x("design:type", Object)
|
|
51
51
|
], BaseArticleDto.prototype, "releasedAt", void 0);
|
|
52
|
-
BaseArticleDto = _ts_decorate$
|
|
52
|
+
BaseArticleDto = _ts_decorate$z([
|
|
53
53
|
graphql.ObjectType('BaseArticle')
|
|
54
54
|
], BaseArticleDto);
|
|
55
55
|
|
|
56
|
-
function _ts_decorate$
|
|
56
|
+
function _ts_decorate$y(decorators, target, key, desc) {
|
|
57
57
|
var c = arguments.length, r = c < 3 ? target : desc, d;
|
|
58
58
|
if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
|
|
59
59
|
else for(var i = decorators.length - 1; i >= 0; i--)if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
|
|
60
60
|
return c > 3 && r && Object.defineProperty(target, key, r), r;
|
|
61
61
|
}
|
|
62
|
-
function _ts_metadata$
|
|
62
|
+
function _ts_metadata$w(k, v) {
|
|
63
63
|
if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(k, v);
|
|
64
64
|
}
|
|
65
65
|
class BackstageArticleDto extends BaseArticleDto {
|
|
@@ -67,23 +67,23 @@ class BackstageArticleDto extends BaseArticleDto {
|
|
|
67
67
|
deletedAt;
|
|
68
68
|
submittedAt;
|
|
69
69
|
}
|
|
70
|
-
_ts_decorate$
|
|
70
|
+
_ts_decorate$y([
|
|
71
71
|
graphql.Field(()=>graphql.Int),
|
|
72
|
-
_ts_metadata$
|
|
72
|
+
_ts_metadata$w("design:type", Number)
|
|
73
73
|
], BackstageArticleDto.prototype, "version", void 0);
|
|
74
|
-
_ts_decorate$
|
|
74
|
+
_ts_decorate$y([
|
|
75
75
|
graphql.Field(()=>Date, {
|
|
76
76
|
nullable: true
|
|
77
77
|
}),
|
|
78
|
-
_ts_metadata$
|
|
78
|
+
_ts_metadata$w("design:type", Object)
|
|
79
79
|
], BackstageArticleDto.prototype, "deletedAt", void 0);
|
|
80
|
-
_ts_decorate$
|
|
80
|
+
_ts_decorate$y([
|
|
81
81
|
graphql.Field(()=>Date, {
|
|
82
82
|
nullable: true
|
|
83
83
|
}),
|
|
84
|
-
_ts_metadata$
|
|
84
|
+
_ts_metadata$w("design:type", Object)
|
|
85
85
|
], BackstageArticleDto.prototype, "submittedAt", void 0);
|
|
86
|
-
BackstageArticleDto = _ts_decorate$
|
|
86
|
+
BackstageArticleDto = _ts_decorate$y([
|
|
87
87
|
graphql.ObjectType('BackstageArticle')
|
|
88
88
|
], BackstageArticleDto);
|
|
89
89
|
|
|
@@ -130,13 +130,13 @@ const QuadratsContentScalar = new graphql$1.GraphQLScalarType({
|
|
|
130
130
|
}
|
|
131
131
|
});
|
|
132
132
|
|
|
133
|
-
function _ts_decorate$
|
|
133
|
+
function _ts_decorate$x(decorators, target, key, desc) {
|
|
134
134
|
var c = arguments.length, r = c < 3 ? target : desc, d;
|
|
135
135
|
if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
|
|
136
136
|
else for(var i = decorators.length - 1; i >= 0; i--)if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
|
|
137
137
|
return c > 3 && r && Object.defineProperty(target, key, r), r;
|
|
138
138
|
}
|
|
139
|
-
function _ts_metadata$
|
|
139
|
+
function _ts_metadata$v(k, v) {
|
|
140
140
|
if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(k, v);
|
|
141
141
|
}
|
|
142
142
|
class ArticleVersionContentInput {
|
|
@@ -145,30 +145,55 @@ class ArticleVersionContentInput {
|
|
|
145
145
|
description;
|
|
146
146
|
content;
|
|
147
147
|
}
|
|
148
|
-
_ts_decorate$
|
|
148
|
+
_ts_decorate$x([
|
|
149
149
|
graphql.Field(()=>String, {
|
|
150
150
|
nullable: true
|
|
151
151
|
}),
|
|
152
|
-
_ts_metadata$
|
|
152
|
+
_ts_metadata$v("design:type", Object)
|
|
153
153
|
], ArticleVersionContentInput.prototype, "language", void 0);
|
|
154
|
-
_ts_decorate$
|
|
154
|
+
_ts_decorate$x([
|
|
155
155
|
graphql.Field(()=>String),
|
|
156
|
-
_ts_metadata$
|
|
156
|
+
_ts_metadata$v("design:type", String)
|
|
157
157
|
], ArticleVersionContentInput.prototype, "title", void 0);
|
|
158
|
-
_ts_decorate$
|
|
158
|
+
_ts_decorate$x([
|
|
159
159
|
graphql.Field(()=>String, {
|
|
160
160
|
nullable: true
|
|
161
161
|
}),
|
|
162
|
-
_ts_metadata$
|
|
162
|
+
_ts_metadata$v("design:type", Object)
|
|
163
163
|
], ArticleVersionContentInput.prototype, "description", void 0);
|
|
164
|
-
_ts_decorate$
|
|
164
|
+
_ts_decorate$x([
|
|
165
165
|
graphql.Field(()=>QuadratsContentScalar),
|
|
166
|
-
_ts_metadata$
|
|
166
|
+
_ts_metadata$v("design:type", Array)
|
|
167
167
|
], ArticleVersionContentInput.prototype, "content", void 0);
|
|
168
|
-
ArticleVersionContentInput = _ts_decorate$
|
|
168
|
+
ArticleVersionContentInput = _ts_decorate$x([
|
|
169
169
|
graphql.InputType('ArticleVersionContentInput')
|
|
170
170
|
], ArticleVersionContentInput);
|
|
171
171
|
|
|
172
|
+
function _ts_decorate$w(decorators, target, key, desc) {
|
|
173
|
+
var c = arguments.length, r = c < 3 ? target : desc, d;
|
|
174
|
+
if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
|
|
175
|
+
else for(var i = decorators.length - 1; i >= 0; i--)if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
|
|
176
|
+
return c > 3 && r && Object.defineProperty(target, key, r), r;
|
|
177
|
+
}
|
|
178
|
+
function _ts_metadata$u(k, v) {
|
|
179
|
+
if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(k, v);
|
|
180
|
+
}
|
|
181
|
+
class CustomFieldInput {
|
|
182
|
+
key;
|
|
183
|
+
value;
|
|
184
|
+
}
|
|
185
|
+
_ts_decorate$w([
|
|
186
|
+
graphql.Field(()=>graphql.ID),
|
|
187
|
+
_ts_metadata$u("design:type", String)
|
|
188
|
+
], CustomFieldInput.prototype, "key", void 0);
|
|
189
|
+
_ts_decorate$w([
|
|
190
|
+
graphql.Field(()=>String),
|
|
191
|
+
_ts_metadata$u("design:type", String)
|
|
192
|
+
], CustomFieldInput.prototype, "value", void 0);
|
|
193
|
+
CustomFieldInput = _ts_decorate$w([
|
|
194
|
+
graphql.InputType('CustomFieldInput')
|
|
195
|
+
], CustomFieldInput);
|
|
196
|
+
|
|
172
197
|
function _ts_decorate$v(decorators, target, key, desc) {
|
|
173
198
|
var c = arguments.length, r = c < 3 ? target : desc, d;
|
|
174
199
|
if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
|
|
@@ -185,6 +210,7 @@ class CreateArticleArgs {
|
|
|
185
210
|
releasedAt;
|
|
186
211
|
submitted;
|
|
187
212
|
signatureLevel;
|
|
213
|
+
customFields;
|
|
188
214
|
}
|
|
189
215
|
_ts_decorate$v([
|
|
190
216
|
graphql.Field(()=>[
|
|
@@ -222,6 +248,14 @@ _ts_decorate$v([
|
|
|
222
248
|
}),
|
|
223
249
|
_ts_metadata$t("design:type", Object)
|
|
224
250
|
], CreateArticleArgs.prototype, "signatureLevel", void 0);
|
|
251
|
+
_ts_decorate$v([
|
|
252
|
+
graphql.Field(()=>[
|
|
253
|
+
CustomFieldInput
|
|
254
|
+
], {
|
|
255
|
+
nullable: true
|
|
256
|
+
}),
|
|
257
|
+
_ts_metadata$t("design:type", Array)
|
|
258
|
+
], CreateArticleArgs.prototype, "customFields", void 0);
|
|
225
259
|
CreateArticleArgs = _ts_decorate$v([
|
|
226
260
|
graphql.ArgsType()
|
|
227
261
|
], CreateArticleArgs);
|
|
@@ -268,6 +302,10 @@ var BaseResource = /*#__PURE__*/ function(BaseResource) {
|
|
|
268
302
|
return BaseResource;
|
|
269
303
|
}({});
|
|
270
304
|
|
|
305
|
+
const CMS_BASE_GRAPHQL_MODULE_OPTIONS = Symbol('CMS_BASE_GRAPHQL_MODULE_OPTIONS');
|
|
306
|
+
const MAP_ARTICLE_CUSTOM_FIELDS_TO_ENTITY_COLUMNS = Symbol('MAP_ARTICLE_CUSTOM_FIELDS_TO_ENTITY_COLUMNS');
|
|
307
|
+
const MAP_CATEGORY_CUSTOM_FIELDS_TO_ENTITY_COLUMNS = Symbol('MAP_CATEGORY_CUSTOM_FIELDS_TO_ENTITY_COLUMNS');
|
|
308
|
+
|
|
271
309
|
function _ts_decorate$t(decorators, target, key, desc) {
|
|
272
310
|
var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
|
|
273
311
|
if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
|
|
@@ -284,18 +322,25 @@ function _ts_param$9(paramIndex, decorator) {
|
|
|
284
322
|
}
|
|
285
323
|
class ArticleMutations {
|
|
286
324
|
multiLanguage;
|
|
325
|
+
mapArticleCustomFieldsToEntityColumns;
|
|
287
326
|
articleService;
|
|
288
|
-
constructor(multiLanguage, articleService){
|
|
327
|
+
constructor(multiLanguage, mapArticleCustomFieldsToEntityColumns, articleService){
|
|
289
328
|
this.multiLanguage = multiLanguage;
|
|
329
|
+
this.mapArticleCustomFieldsToEntityColumns = mapArticleCustomFieldsToEntityColumns;
|
|
290
330
|
this.articleService = articleService;
|
|
291
331
|
}
|
|
292
|
-
resolveCreateArticleArgs(args) {
|
|
332
|
+
async resolveCreateArticleArgs(args) {
|
|
333
|
+
const extraArgsInput = {};
|
|
334
|
+
if (args.customFields?.length) {
|
|
335
|
+
Object.assign(extraArgsInput, await this.mapArticleCustomFieldsToEntityColumns(args.customFields));
|
|
336
|
+
}
|
|
293
337
|
const basePayload = {
|
|
294
338
|
categoryIds: args.categoryIds,
|
|
295
339
|
tags: args.tags,
|
|
296
340
|
submitted: args.submitted ?? undefined,
|
|
297
341
|
signatureLevel: args.signatureLevel ?? null,
|
|
298
|
-
releasedAt: args.releasedAt ?? null
|
|
342
|
+
releasedAt: args.releasedAt ?? null,
|
|
343
|
+
...extraArgsInput
|
|
299
344
|
};
|
|
300
345
|
if (!this.multiLanguage) {
|
|
301
346
|
const [content] = args.multiLanguageContents;
|
|
@@ -321,13 +366,13 @@ class ArticleMutations {
|
|
|
321
366
|
}
|
|
322
367
|
async createArticle(memberId, args) {
|
|
323
368
|
return this.articleService.create({
|
|
324
|
-
...this.resolveCreateArticleArgs(args),
|
|
369
|
+
...await this.resolveCreateArticleArgs(args),
|
|
325
370
|
userId: memberId
|
|
326
371
|
});
|
|
327
372
|
}
|
|
328
373
|
async updateArticle(memberId, args) {
|
|
329
374
|
return this.articleService.addVersion(args.id, {
|
|
330
|
-
...this.resolveCreateArticleArgs(args),
|
|
375
|
+
...await this.resolveCreateArticleArgs(args),
|
|
331
376
|
userId: memberId
|
|
332
377
|
});
|
|
333
378
|
}
|
|
@@ -578,9 +623,11 @@ _ts_decorate$t([
|
|
|
578
623
|
ArticleMutations = _ts_decorate$t([
|
|
579
624
|
graphql.Resolver(),
|
|
580
625
|
_ts_param$9(0, common.Inject(cmsBaseNestjsModule.MULTIPLE_LANGUAGE_MODE)),
|
|
626
|
+
_ts_param$9(1, common.Inject(MAP_ARTICLE_CUSTOM_FIELDS_TO_ENTITY_COLUMNS)),
|
|
581
627
|
_ts_metadata$r("design:type", Function),
|
|
582
628
|
_ts_metadata$r("design:paramtypes", [
|
|
583
629
|
Boolean,
|
|
630
|
+
Function,
|
|
584
631
|
typeof cmsBaseNestjsModule.ArticleBaseService === "undefined" ? Object : cmsBaseNestjsModule.ArticleBaseService
|
|
585
632
|
])
|
|
586
633
|
], ArticleMutations);
|
|
@@ -624,6 +671,7 @@ function _ts_metadata$p(k, v) {
|
|
|
624
671
|
class CreateCategoryArgs {
|
|
625
672
|
parentIds;
|
|
626
673
|
multiLanguageNames;
|
|
674
|
+
customFields;
|
|
627
675
|
}
|
|
628
676
|
_ts_decorate$r([
|
|
629
677
|
graphql.Field(()=>[
|
|
@@ -639,6 +687,14 @@ _ts_decorate$r([
|
|
|
639
687
|
]),
|
|
640
688
|
_ts_metadata$p("design:type", Array)
|
|
641
689
|
], CreateCategoryArgs.prototype, "multiLanguageNames", void 0);
|
|
690
|
+
_ts_decorate$r([
|
|
691
|
+
graphql.Field(()=>[
|
|
692
|
+
CustomFieldInput
|
|
693
|
+
], {
|
|
694
|
+
nullable: true
|
|
695
|
+
}),
|
|
696
|
+
_ts_metadata$p("design:type", Array)
|
|
697
|
+
], CreateCategoryArgs.prototype, "customFields", void 0);
|
|
642
698
|
CreateCategoryArgs = _ts_decorate$r([
|
|
643
699
|
graphql.ArgsType()
|
|
644
700
|
], CreateCategoryArgs);
|
|
@@ -721,14 +777,21 @@ function _ts_param$8(paramIndex, decorator) {
|
|
|
721
777
|
}
|
|
722
778
|
class CategoryMutations {
|
|
723
779
|
multiLanguage;
|
|
780
|
+
mapCategoryCustomFieldsToEntityColumns;
|
|
724
781
|
categoryService;
|
|
725
|
-
constructor(multiLanguage, categoryService){
|
|
782
|
+
constructor(multiLanguage, mapCategoryCustomFieldsToEntityColumns, categoryService){
|
|
726
783
|
this.multiLanguage = multiLanguage;
|
|
784
|
+
this.mapCategoryCustomFieldsToEntityColumns = mapCategoryCustomFieldsToEntityColumns;
|
|
727
785
|
this.categoryService = categoryService;
|
|
728
786
|
}
|
|
729
|
-
resolveCreateCategoryArgs(args) {
|
|
787
|
+
async resolveCreateCategoryArgs(args) {
|
|
788
|
+
const extraArgsInput = {};
|
|
789
|
+
if (args.customFields?.length) {
|
|
790
|
+
Object.assign(extraArgsInput, await this.mapCategoryCustomFieldsToEntityColumns(args.customFields));
|
|
791
|
+
}
|
|
730
792
|
const basePayload = {
|
|
731
|
-
parentIds: args.parentIds
|
|
793
|
+
parentIds: args.parentIds,
|
|
794
|
+
...extraArgsInput
|
|
732
795
|
};
|
|
733
796
|
if (!this.multiLanguage) {
|
|
734
797
|
const [content] = args.multiLanguageNames;
|
|
@@ -746,14 +809,14 @@ class CategoryMutations {
|
|
|
746
809
|
multiLanguageNames
|
|
747
810
|
};
|
|
748
811
|
}
|
|
749
|
-
createCategory(args) {
|
|
812
|
+
async createCategory(args) {
|
|
750
813
|
return this.categoryService.create({
|
|
751
|
-
...this.resolveCreateCategoryArgs(args)
|
|
814
|
+
...await this.resolveCreateCategoryArgs(args)
|
|
752
815
|
});
|
|
753
816
|
}
|
|
754
|
-
updateCategory(args) {
|
|
817
|
+
async updateCategory(args) {
|
|
755
818
|
return this.categoryService.update(args.id, {
|
|
756
|
-
...this.resolveCreateCategoryArgs(args)
|
|
819
|
+
...await this.resolveCreateCategoryArgs(args)
|
|
757
820
|
});
|
|
758
821
|
}
|
|
759
822
|
async deleteCategory(id) {
|
|
@@ -774,7 +837,7 @@ _ts_decorate$n([
|
|
|
774
837
|
_ts_metadata$m("design:paramtypes", [
|
|
775
838
|
typeof CreateCategoryArgs === "undefined" ? Object : CreateCategoryArgs
|
|
776
839
|
]),
|
|
777
|
-
_ts_metadata$m("design:returntype",
|
|
840
|
+
_ts_metadata$m("design:returntype", Promise)
|
|
778
841
|
], CategoryMutations.prototype, "createCategory", null);
|
|
779
842
|
_ts_decorate$n([
|
|
780
843
|
graphql.Mutation(()=>BackstageCategoryDto),
|
|
@@ -789,7 +852,7 @@ _ts_decorate$n([
|
|
|
789
852
|
_ts_metadata$m("design:paramtypes", [
|
|
790
853
|
typeof UpdateCategoryArgs === "undefined" ? Object : UpdateCategoryArgs
|
|
791
854
|
]),
|
|
792
|
-
_ts_metadata$m("design:returntype",
|
|
855
|
+
_ts_metadata$m("design:returntype", Promise)
|
|
793
856
|
], CategoryMutations.prototype, "updateCategory", null);
|
|
794
857
|
_ts_decorate$n([
|
|
795
858
|
graphql.Mutation(()=>Boolean),
|
|
@@ -811,9 +874,11 @@ _ts_decorate$n([
|
|
|
811
874
|
CategoryMutations = _ts_decorate$n([
|
|
812
875
|
graphql.Resolver(),
|
|
813
876
|
_ts_param$8(0, common.Inject(cmsBaseNestjsModule.MULTIPLE_LANGUAGE_MODE)),
|
|
877
|
+
_ts_param$8(1, common.Inject(MAP_CATEGORY_CUSTOM_FIELDS_TO_ENTITY_COLUMNS)),
|
|
814
878
|
_ts_metadata$m("design:type", Function),
|
|
815
879
|
_ts_metadata$m("design:paramtypes", [
|
|
816
880
|
Boolean,
|
|
881
|
+
Function,
|
|
817
882
|
typeof cmsBaseNestjsModule.CategoryBaseService === "undefined" ? Object : cmsBaseNestjsModule.CategoryBaseService
|
|
818
883
|
])
|
|
819
884
|
], CategoryMutations);
|
|
@@ -835,7 +900,7 @@ class ArticlesArgs {
|
|
|
835
900
|
}
|
|
836
901
|
_ts_decorate$m([
|
|
837
902
|
graphql.Field(()=>[
|
|
838
|
-
|
|
903
|
+
graphql.ID
|
|
839
904
|
], {
|
|
840
905
|
nullable: true
|
|
841
906
|
}),
|
|
@@ -1164,7 +1229,7 @@ class CategoriesArgs {
|
|
|
1164
1229
|
}
|
|
1165
1230
|
_ts_decorate$f([
|
|
1166
1231
|
graphql.Field(()=>[
|
|
1167
|
-
|
|
1232
|
+
graphql.ID
|
|
1168
1233
|
], {
|
|
1169
1234
|
nullable: true
|
|
1170
1235
|
}),
|
|
@@ -1172,7 +1237,7 @@ _ts_decorate$f([
|
|
|
1172
1237
|
], CategoriesArgs.prototype, "parentIds", void 0);
|
|
1173
1238
|
_ts_decorate$f([
|
|
1174
1239
|
graphql.Field(()=>[
|
|
1175
|
-
|
|
1240
|
+
graphql.ID
|
|
1176
1241
|
], {
|
|
1177
1242
|
nullable: true
|
|
1178
1243
|
}),
|
|
@@ -2141,6 +2206,23 @@ BackstageCategoryResolver = _ts_decorate$1([
|
|
|
2141
2206
|
])
|
|
2142
2207
|
], BackstageCategoryResolver);
|
|
2143
2208
|
|
|
2209
|
+
const OptionProviders = [
|
|
2210
|
+
{
|
|
2211
|
+
provide: MAP_ARTICLE_CUSTOM_FIELDS_TO_ENTITY_COLUMNS,
|
|
2212
|
+
useFactory: async (options)=>options?.mapArticleCustomFieldsToEntityColumns ? options.mapArticleCustomFieldsToEntityColumns : ()=>({}),
|
|
2213
|
+
inject: [
|
|
2214
|
+
CMS_BASE_GRAPHQL_MODULE_OPTIONS
|
|
2215
|
+
]
|
|
2216
|
+
},
|
|
2217
|
+
{
|
|
2218
|
+
provide: MAP_CATEGORY_CUSTOM_FIELDS_TO_ENTITY_COLUMNS,
|
|
2219
|
+
useFactory: async (options)=>options?.mapCategoryCustomFieldsToEntityColumns ? options.mapCategoryCustomFieldsToEntityColumns : ()=>({}),
|
|
2220
|
+
inject: [
|
|
2221
|
+
CMS_BASE_GRAPHQL_MODULE_OPTIONS
|
|
2222
|
+
]
|
|
2223
|
+
}
|
|
2224
|
+
];
|
|
2225
|
+
|
|
2144
2226
|
function _ts_decorate(decorators, target, key, desc) {
|
|
2145
2227
|
var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
|
|
2146
2228
|
if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
|
|
@@ -2159,6 +2241,8 @@ class CMSBaseGraphQLModule {
|
|
|
2159
2241
|
cmsBaseNestjsModule.CMSBaseModule
|
|
2160
2242
|
],
|
|
2161
2243
|
providers: [
|
|
2244
|
+
...this.createAsyncProvider(options),
|
|
2245
|
+
...OptionProviders,
|
|
2162
2246
|
MemberDataLoader,
|
|
2163
2247
|
ArticleDataLoader,
|
|
2164
2248
|
ArticleResolver,
|
|
@@ -2182,6 +2266,11 @@ class CMSBaseGraphQLModule {
|
|
|
2182
2266
|
cmsBaseNestjsModule.CMSBaseModule
|
|
2183
2267
|
],
|
|
2184
2268
|
providers: [
|
|
2269
|
+
{
|
|
2270
|
+
provide: CMS_BASE_GRAPHQL_MODULE_OPTIONS,
|
|
2271
|
+
useValue: options
|
|
2272
|
+
},
|
|
2273
|
+
...OptionProviders,
|
|
2185
2274
|
MemberDataLoader,
|
|
2186
2275
|
ArticleDataLoader,
|
|
2187
2276
|
ArticleResolver,
|
|
@@ -2195,6 +2284,38 @@ class CMSBaseGraphQLModule {
|
|
|
2195
2284
|
]
|
|
2196
2285
|
};
|
|
2197
2286
|
}
|
|
2287
|
+
static createAsyncProvider(options) {
|
|
2288
|
+
if (options.useExisting || options.useFactory) {
|
|
2289
|
+
return [
|
|
2290
|
+
this.createAsyncOptionsProvider(options)
|
|
2291
|
+
];
|
|
2292
|
+
}
|
|
2293
|
+
return [
|
|
2294
|
+
this.createAsyncOptionsProvider(options),
|
|
2295
|
+
...options.useClass ? [
|
|
2296
|
+
{
|
|
2297
|
+
provide: options.useClass,
|
|
2298
|
+
useClass: options.useClass
|
|
2299
|
+
}
|
|
2300
|
+
] : []
|
|
2301
|
+
];
|
|
2302
|
+
}
|
|
2303
|
+
static createAsyncOptionsProvider(options) {
|
|
2304
|
+
if (options.useFactory) {
|
|
2305
|
+
return {
|
|
2306
|
+
provide: CMS_BASE_GRAPHQL_MODULE_OPTIONS,
|
|
2307
|
+
useFactory: options.useFactory,
|
|
2308
|
+
inject: options.inject || []
|
|
2309
|
+
};
|
|
2310
|
+
}
|
|
2311
|
+
return {
|
|
2312
|
+
provide: CMS_BASE_GRAPHQL_MODULE_OPTIONS,
|
|
2313
|
+
useFactory: async (optionsFactory)=>await optionsFactory.createCMSOptions(),
|
|
2314
|
+
inject: [
|
|
2315
|
+
options.useExisting || options.useClass
|
|
2316
|
+
]
|
|
2317
|
+
};
|
|
2318
|
+
}
|
|
2198
2319
|
}
|
|
2199
2320
|
CMSBaseGraphQLModule = _ts_decorate([
|
|
2200
2321
|
common.Module({})
|
|
@@ -2207,3 +2328,4 @@ exports.BackstageArticleDto = BackstageArticleDto;
|
|
|
2207
2328
|
exports.BackstageCategoryDto = BackstageCategoryDto;
|
|
2208
2329
|
exports.CMSBaseGraphQLModule = CMSBaseGraphQLModule;
|
|
2209
2330
|
exports.CategoryDto = CategoryDto;
|
|
2331
|
+
exports.CustomFieldInput = CustomFieldInput;
|
package/index.d.ts
CHANGED
package/index.js
CHANGED
|
@@ -5,3 +5,4 @@ export { ArticleCollectionDto } from './dto/article-collection.dto.js';
|
|
|
5
5
|
export { BackstageArticleCollectionDto } from './dto/backstage-article-collection.dto.js';
|
|
6
6
|
export { CategoryDto } from './dto/category.dto.js';
|
|
7
7
|
export { BackstageCategoryDto } from './dto/backstage-category.dto.js';
|
|
8
|
+
export { CustomFieldInput } from './dto/custom-field.input.js';
|
|
@@ -2,10 +2,12 @@ import { ArticleBaseService } from '@rytass/cms-base-nestjs-module';
|
|
|
2
2
|
import { BackstageArticleDto } from '../dto/backstage-article.dto';
|
|
3
3
|
import { CreateArticleArgs } from '../dto/create-article.args';
|
|
4
4
|
import { UpdateArticleArgs } from '../dto/update-article.args';
|
|
5
|
+
import { CustomFieldInput } from '../dto/custom-field.input';
|
|
5
6
|
export declare class ArticleMutations {
|
|
6
7
|
private readonly multiLanguage;
|
|
8
|
+
private readonly mapArticleCustomFieldsToEntityColumns;
|
|
7
9
|
private readonly articleService;
|
|
8
|
-
constructor(multiLanguage: boolean, articleService: ArticleBaseService);
|
|
10
|
+
constructor(multiLanguage: boolean, mapArticleCustomFieldsToEntityColumns: (customFields: CustomFieldInput[]) => Promise<Record<string, string>>, articleService: ArticleBaseService);
|
|
9
11
|
private resolveCreateArticleArgs;
|
|
10
12
|
createArticle(memberId: string, args: CreateArticleArgs): Promise<BackstageArticleDto>;
|
|
11
13
|
updateArticle(memberId: string, args: UpdateArticleArgs): Promise<BackstageArticleDto>;
|
|
@@ -7,6 +7,7 @@ import { UpdateArticleArgs } from '../dto/update-article.args.js';
|
|
|
7
7
|
import { Inject } from '@nestjs/common';
|
|
8
8
|
import { BaseAction } from '../constants/enum/base-action.enum.js';
|
|
9
9
|
import { BaseResource } from '../constants/enum/base-resource.enum.js';
|
|
10
|
+
import { MAP_ARTICLE_CUSTOM_FIELDS_TO_ENTITY_COLUMNS } from '../typings/cms-graphql-base-providers.js';
|
|
10
11
|
|
|
11
12
|
function _ts_decorate(decorators, target, key, desc) {
|
|
12
13
|
var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
|
|
@@ -24,18 +25,25 @@ function _ts_param(paramIndex, decorator) {
|
|
|
24
25
|
}
|
|
25
26
|
class ArticleMutations {
|
|
26
27
|
multiLanguage;
|
|
28
|
+
mapArticleCustomFieldsToEntityColumns;
|
|
27
29
|
articleService;
|
|
28
|
-
constructor(multiLanguage, articleService){
|
|
30
|
+
constructor(multiLanguage, mapArticleCustomFieldsToEntityColumns, articleService){
|
|
29
31
|
this.multiLanguage = multiLanguage;
|
|
32
|
+
this.mapArticleCustomFieldsToEntityColumns = mapArticleCustomFieldsToEntityColumns;
|
|
30
33
|
this.articleService = articleService;
|
|
31
34
|
}
|
|
32
|
-
resolveCreateArticleArgs(args) {
|
|
35
|
+
async resolveCreateArticleArgs(args) {
|
|
36
|
+
const extraArgsInput = {};
|
|
37
|
+
if (args.customFields?.length) {
|
|
38
|
+
Object.assign(extraArgsInput, await this.mapArticleCustomFieldsToEntityColumns(args.customFields));
|
|
39
|
+
}
|
|
33
40
|
const basePayload = {
|
|
34
41
|
categoryIds: args.categoryIds,
|
|
35
42
|
tags: args.tags,
|
|
36
43
|
submitted: args.submitted ?? undefined,
|
|
37
44
|
signatureLevel: args.signatureLevel ?? null,
|
|
38
|
-
releasedAt: args.releasedAt ?? null
|
|
45
|
+
releasedAt: args.releasedAt ?? null,
|
|
46
|
+
...extraArgsInput
|
|
39
47
|
};
|
|
40
48
|
if (!this.multiLanguage) {
|
|
41
49
|
const [content] = args.multiLanguageContents;
|
|
@@ -61,13 +69,13 @@ class ArticleMutations {
|
|
|
61
69
|
}
|
|
62
70
|
async createArticle(memberId, args) {
|
|
63
71
|
return this.articleService.create({
|
|
64
|
-
...this.resolveCreateArticleArgs(args),
|
|
72
|
+
...await this.resolveCreateArticleArgs(args),
|
|
65
73
|
userId: memberId
|
|
66
74
|
});
|
|
67
75
|
}
|
|
68
76
|
async updateArticle(memberId, args) {
|
|
69
77
|
return this.articleService.addVersion(args.id, {
|
|
70
|
-
...this.resolveCreateArticleArgs(args),
|
|
78
|
+
...await this.resolveCreateArticleArgs(args),
|
|
71
79
|
userId: memberId
|
|
72
80
|
});
|
|
73
81
|
}
|
|
@@ -318,9 +326,11 @@ _ts_decorate([
|
|
|
318
326
|
ArticleMutations = _ts_decorate([
|
|
319
327
|
Resolver(),
|
|
320
328
|
_ts_param(0, Inject(MULTIPLE_LANGUAGE_MODE)),
|
|
329
|
+
_ts_param(1, Inject(MAP_ARTICLE_CUSTOM_FIELDS_TO_ENTITY_COLUMNS)),
|
|
321
330
|
_ts_metadata("design:type", Function),
|
|
322
331
|
_ts_metadata("design:paramtypes", [
|
|
323
332
|
Boolean,
|
|
333
|
+
Function,
|
|
324
334
|
typeof ArticleBaseService === "undefined" ? Object : ArticleBaseService
|
|
325
335
|
])
|
|
326
336
|
], ArticleMutations);
|
|
@@ -2,10 +2,12 @@ import { CategoryBaseService } from '@rytass/cms-base-nestjs-module';
|
|
|
2
2
|
import { CreateCategoryArgs } from '../dto/create-category.args';
|
|
3
3
|
import { BackstageCategoryDto } from '../dto/backstage-category.dto';
|
|
4
4
|
import { UpdateCategoryArgs } from '../dto/update-category.args';
|
|
5
|
+
import { CustomFieldInput } from '../dto/custom-field.input';
|
|
5
6
|
export declare class CategoryMutations {
|
|
6
7
|
private readonly multiLanguage;
|
|
8
|
+
private readonly mapCategoryCustomFieldsToEntityColumns;
|
|
7
9
|
private readonly categoryService;
|
|
8
|
-
constructor(multiLanguage: boolean, categoryService: CategoryBaseService);
|
|
10
|
+
constructor(multiLanguage: boolean, mapCategoryCustomFieldsToEntityColumns: (customFields: CustomFieldInput[]) => Promise<Record<string, string>>, categoryService: CategoryBaseService);
|
|
9
11
|
private resolveCreateCategoryArgs;
|
|
10
12
|
createCategory(args: CreateCategoryArgs): Promise<BackstageCategoryDto>;
|
|
11
13
|
updateCategory(args: UpdateCategoryArgs): Promise<BackstageCategoryDto>;
|
|
@@ -7,6 +7,7 @@ import { UpdateCategoryArgs } from '../dto/update-category.args.js';
|
|
|
7
7
|
import { Inject } from '@nestjs/common';
|
|
8
8
|
import { BaseAction } from '../constants/enum/base-action.enum.js';
|
|
9
9
|
import { BaseResource } from '../constants/enum/base-resource.enum.js';
|
|
10
|
+
import { MAP_CATEGORY_CUSTOM_FIELDS_TO_ENTITY_COLUMNS } from '../typings/cms-graphql-base-providers.js';
|
|
10
11
|
|
|
11
12
|
function _ts_decorate(decorators, target, key, desc) {
|
|
12
13
|
var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
|
|
@@ -24,14 +25,21 @@ function _ts_param(paramIndex, decorator) {
|
|
|
24
25
|
}
|
|
25
26
|
class CategoryMutations {
|
|
26
27
|
multiLanguage;
|
|
28
|
+
mapCategoryCustomFieldsToEntityColumns;
|
|
27
29
|
categoryService;
|
|
28
|
-
constructor(multiLanguage, categoryService){
|
|
30
|
+
constructor(multiLanguage, mapCategoryCustomFieldsToEntityColumns, categoryService){
|
|
29
31
|
this.multiLanguage = multiLanguage;
|
|
32
|
+
this.mapCategoryCustomFieldsToEntityColumns = mapCategoryCustomFieldsToEntityColumns;
|
|
30
33
|
this.categoryService = categoryService;
|
|
31
34
|
}
|
|
32
|
-
resolveCreateCategoryArgs(args) {
|
|
35
|
+
async resolveCreateCategoryArgs(args) {
|
|
36
|
+
const extraArgsInput = {};
|
|
37
|
+
if (args.customFields?.length) {
|
|
38
|
+
Object.assign(extraArgsInput, await this.mapCategoryCustomFieldsToEntityColumns(args.customFields));
|
|
39
|
+
}
|
|
33
40
|
const basePayload = {
|
|
34
|
-
parentIds: args.parentIds
|
|
41
|
+
parentIds: args.parentIds,
|
|
42
|
+
...extraArgsInput
|
|
35
43
|
};
|
|
36
44
|
if (!this.multiLanguage) {
|
|
37
45
|
const [content] = args.multiLanguageNames;
|
|
@@ -49,14 +57,14 @@ class CategoryMutations {
|
|
|
49
57
|
multiLanguageNames
|
|
50
58
|
};
|
|
51
59
|
}
|
|
52
|
-
createCategory(args) {
|
|
60
|
+
async createCategory(args) {
|
|
53
61
|
return this.categoryService.create({
|
|
54
|
-
...this.resolveCreateCategoryArgs(args)
|
|
62
|
+
...await this.resolveCreateCategoryArgs(args)
|
|
55
63
|
});
|
|
56
64
|
}
|
|
57
|
-
updateCategory(args) {
|
|
65
|
+
async updateCategory(args) {
|
|
58
66
|
return this.categoryService.update(args.id, {
|
|
59
|
-
...this.resolveCreateCategoryArgs(args)
|
|
67
|
+
...await this.resolveCreateCategoryArgs(args)
|
|
60
68
|
});
|
|
61
69
|
}
|
|
62
70
|
async deleteCategory(id) {
|
|
@@ -77,7 +85,7 @@ _ts_decorate([
|
|
|
77
85
|
_ts_metadata("design:paramtypes", [
|
|
78
86
|
typeof CreateCategoryArgs === "undefined" ? Object : CreateCategoryArgs
|
|
79
87
|
]),
|
|
80
|
-
_ts_metadata("design:returntype",
|
|
88
|
+
_ts_metadata("design:returntype", Promise)
|
|
81
89
|
], CategoryMutations.prototype, "createCategory", null);
|
|
82
90
|
_ts_decorate([
|
|
83
91
|
Mutation(()=>BackstageCategoryDto),
|
|
@@ -92,7 +100,7 @@ _ts_decorate([
|
|
|
92
100
|
_ts_metadata("design:paramtypes", [
|
|
93
101
|
typeof UpdateCategoryArgs === "undefined" ? Object : UpdateCategoryArgs
|
|
94
102
|
]),
|
|
95
|
-
_ts_metadata("design:returntype",
|
|
103
|
+
_ts_metadata("design:returntype", Promise)
|
|
96
104
|
], CategoryMutations.prototype, "updateCategory", null);
|
|
97
105
|
_ts_decorate([
|
|
98
106
|
Mutation(()=>Boolean),
|
|
@@ -114,9 +122,11 @@ _ts_decorate([
|
|
|
114
122
|
CategoryMutations = _ts_decorate([
|
|
115
123
|
Resolver(),
|
|
116
124
|
_ts_param(0, Inject(MULTIPLE_LANGUAGE_MODE)),
|
|
125
|
+
_ts_param(1, Inject(MAP_CATEGORY_CUSTOM_FIELDS_TO_ENTITY_COLUMNS)),
|
|
117
126
|
_ts_metadata("design:type", Function),
|
|
118
127
|
_ts_metadata("design:paramtypes", [
|
|
119
128
|
Boolean,
|
|
129
|
+
Function,
|
|
120
130
|
typeof CategoryBaseService === "undefined" ? Object : CategoryBaseService
|
|
121
131
|
])
|
|
122
132
|
], CategoryMutations);
|
package/package.json
CHANGED
|
@@ -0,0 +1,5 @@
|
|
|
1
|
+
const CMS_BASE_GRAPHQL_MODULE_OPTIONS = Symbol('CMS_BASE_GRAPHQL_MODULE_OPTIONS');
|
|
2
|
+
const MAP_ARTICLE_CUSTOM_FIELDS_TO_ENTITY_COLUMNS = Symbol('MAP_ARTICLE_CUSTOM_FIELDS_TO_ENTITY_COLUMNS');
|
|
3
|
+
const MAP_CATEGORY_CUSTOM_FIELDS_TO_ENTITY_COLUMNS = Symbol('MAP_CATEGORY_CUSTOM_FIELDS_TO_ENTITY_COLUMNS');
|
|
4
|
+
|
|
5
|
+
export { CMS_BASE_GRAPHQL_MODULE_OPTIONS, MAP_ARTICLE_CUSTOM_FIELDS_TO_ENTITY_COLUMNS, MAP_CATEGORY_CUSTOM_FIELDS_TO_ENTITY_COLUMNS };
|
|
@@ -0,0 +1,9 @@
|
|
|
1
|
+
import { ModuleMetadata, Type } from '@nestjs/common';
|
|
2
|
+
import { CMSGraphqlBaseModuleOptionFactory } from './cms-graphql-base-root-module-option-factory';
|
|
3
|
+
import { CMSGraphqlBaseModuleOptionsDto } from './cms-graphql-base-root-module-options.dto';
|
|
4
|
+
export interface CMSGraphqlBaseModuleAsyncOptionsDto extends Pick<ModuleMetadata, 'imports'> {
|
|
5
|
+
useFactory?: (...args: any[]) => Promise<CMSGraphqlBaseModuleOptionsDto> | CMSGraphqlBaseModuleOptionsDto;
|
|
6
|
+
inject?: any[];
|
|
7
|
+
useClass?: Type<CMSGraphqlBaseModuleOptionFactory>;
|
|
8
|
+
useExisting?: Type<CMSGraphqlBaseModuleOptionFactory>;
|
|
9
|
+
}
|
|
@@ -0,0 +1,6 @@
|
|
|
1
|
+
import { CMSBaseModuleOptionsDto } from '@rytass/cms-base-nestjs-module';
|
|
2
|
+
import { CustomFieldInput } from '../dto/custom-field.input';
|
|
3
|
+
export interface CMSGraphqlBaseModuleOptionsDto extends CMSBaseModuleOptionsDto {
|
|
4
|
+
mapArticleCustomFieldsToEntityColumns?: (customFields: CustomFieldInput[]) => Promise<Record<string, string | object>> | Record<string, string | object>;
|
|
5
|
+
mapCategoryCustomFieldsToEntityColumns?: (customFields: CustomFieldInput[]) => Promise<Record<string, string | object>> | Record<string, string | object>;
|
|
6
|
+
}
|