@rytass/cms-base-nestjs-graphql-module 0.1.26 → 0.1.28

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.
Files changed (147) hide show
  1. package/LICENSE +21 -0
  2. package/cms-base-graphql.module.d.ts +9 -0
  3. package/cms-base-graphql.module.js +114 -0
  4. package/constants/enum/base-action.enum.d.ts +14 -0
  5. package/constants/enum/base-action.enum.js +17 -0
  6. package/constants/enum/base-resource.enum.d.ts +4 -0
  7. package/constants/enum/base-resource.enum.js +7 -0
  8. package/constants/option-providers.d.ts +2 -0
  9. package/constants/option-providers.js +20 -0
  10. package/data-loaders/article.dataloader.d.ts +17 -0
  11. package/data-loaders/article.dataloader.js +68 -0
  12. package/data-loaders/members.dataloader.d.ts +8 -0
  13. package/data-loaders/members.dataloader.js +56 -0
  14. package/decorators/language.decorator.d.ts +2 -0
  15. package/decorators/language.decorator.js +32 -0
  16. package/dto/article-collection.dto.d.ts +5 -0
  17. package/dto/article-collection.dto.js +27 -0
  18. package/dto/article-multi-language-content.dto.d.ts +7 -0
  19. package/dto/article-multi-language-content.dto.js +41 -0
  20. package/dto/article-signature-step.dto.d.ts +4 -0
  21. package/dto/article-signature-step.dto.js +28 -0
  22. package/dto/article-signature.dto.d.ts +7 -0
  23. package/dto/article-signature.dto.js +44 -0
  24. package/dto/article-stage-version.dto.d.ts +9 -0
  25. package/dto/article-stage-version.dto.js +59 -0
  26. package/dto/article-version-content.input.d.ts +7 -0
  27. package/dto/article-version-content.input.js +43 -0
  28. package/dto/article.dto.d.ts +7 -0
  29. package/dto/article.dto.js +37 -0
  30. package/dto/articles.args.d.ts +6 -0
  31. package/dto/articles.args.js +48 -0
  32. package/dto/backstage-article-collection.dto.d.ts +5 -0
  33. package/dto/backstage-article-collection.dto.js +27 -0
  34. package/dto/backstage-article.args.d.ts +6 -0
  35. package/dto/backstage-article.args.js +38 -0
  36. package/dto/backstage-article.dto.d.ts +6 -0
  37. package/dto/backstage-article.dto.js +38 -0
  38. package/dto/backstage-category.dto.d.ts +3 -0
  39. package/dto/backstage-category.dto.js +16 -0
  40. package/dto/base-article.dto.d.ts +7 -0
  41. package/dto/base-article.dto.js +47 -0
  42. package/dto/base-category.dto.d.ts +5 -0
  43. package/dto/base-category.dto.js +33 -0
  44. package/dto/categories.args.d.ts +8 -0
  45. package/dto/categories.args.js +62 -0
  46. package/dto/category-multi-language-name.dto.d.ts +4 -0
  47. package/dto/category-multi-language-name.dto.js +28 -0
  48. package/dto/category-multi-language-name.input.d.ts +4 -0
  49. package/dto/category-multi-language-name.input.js +30 -0
  50. package/dto/category.dto.d.ts +4 -0
  51. package/dto/category.dto.js +24 -0
  52. package/dto/collection.dto.d.ts +5 -0
  53. package/dto/collection.dto.js +33 -0
  54. package/dto/create-article.args.d.ts +11 -0
  55. package/dto/create-article.args.js +71 -0
  56. package/dto/create-category.args.d.ts +7 -0
  57. package/dto/create-category.args.js +45 -0
  58. package/dto/custom-field.input.d.ts +4 -0
  59. package/dto/custom-field.input.js +28 -0
  60. package/dto/update-article.args.d.ts +4 -0
  61. package/dto/update-article.args.js +24 -0
  62. package/dto/update-category.args.d.ts +4 -0
  63. package/dto/update-category.args.js +24 -0
  64. package/dto/user.dto.d.ts +4 -0
  65. package/dto/user.dto.js +28 -0
  66. package/index.cjs.js +2334 -0
  67. package/{src/index.ts → index.d.ts} +0 -2
  68. package/index.js +8 -0
  69. package/mutations/article.mutations.d.ts +22 -0
  70. package/mutations/article.mutations.js +338 -0
  71. package/mutations/category.mutations.d.ts +15 -0
  72. package/mutations/category.mutations.js +134 -0
  73. package/package.json +6 -10
  74. package/queries/article.queries.d.ts +16 -0
  75. package/queries/article.queries.js +132 -0
  76. package/queries/category.queries.d.ts +13 -0
  77. package/queries/category.queries.js +124 -0
  78. package/resolvers/article-signature.resolver.d.ts +10 -0
  79. package/resolvers/article-signature.resolver.js +68 -0
  80. package/resolvers/article.resolver.d.ts +14 -0
  81. package/resolvers/article.resolver.js +95 -0
  82. package/resolvers/backstage-article.resolver.d.ts +33 -0
  83. package/resolvers/backstage-article.resolver.js +296 -0
  84. package/resolvers/backstage-category.resolver.d.ts +8 -0
  85. package/resolvers/backstage-category.resolver.js +76 -0
  86. package/scalars/quadrats-element.scalar.d.ts +3 -0
  87. package/scalars/quadrats-element.scalar.js +47 -0
  88. package/typings/cms-graphql-base-providers.d.ts +3 -0
  89. package/typings/cms-graphql-base-providers.js +5 -0
  90. package/{src/typings/cms-graphql-base-root-module-async-options.dto.ts → typings/cms-graphql-base-root-module-async-options.dto.d.ts} +4 -6
  91. package/{src/typings/cms-graphql-base-root-module-option-factory.ts → typings/cms-graphql-base-root-module-option-factory.d.ts} +1 -2
  92. package/typings/cms-graphql-base-root-module-options.dto.d.ts +6 -0
  93. package/typings/dto/resolved-create-article-args.dto.d.ts +24 -0
  94. package/typings/dto/resolved-create-category-args.dto.d.ts +13 -0
  95. package/CHANGELOG.md +0 -306
  96. package/__tests__/enums.spec.ts +0 -76
  97. package/__tests__/language-decorator.spec.ts +0 -17
  98. package/__tests__/quadrats-element-scalar.spec.ts +0 -123
  99. package/llms.txt +0 -361
  100. package/project.json +0 -23
  101. package/src/cms-base-graphql.module.ts +0 -101
  102. package/src/constants/enum/base-action.enum.ts +0 -17
  103. package/src/constants/enum/base-resource.enum.ts +0 -4
  104. package/src/constants/option-providers.ts +0 -35
  105. package/src/data-loaders/article.dataloader.ts +0 -84
  106. package/src/data-loaders/members.dataloader.ts +0 -36
  107. package/src/decorators/language.decorator.ts +0 -45
  108. package/src/dto/article-collection.dto.ts +0 -9
  109. package/src/dto/article-multi-language-content.dto.ts +0 -18
  110. package/src/dto/article-signature-step.dto.ts +0 -10
  111. package/src/dto/article-signature.dto.ts +0 -21
  112. package/src/dto/article-stage-version.dto.ts +0 -23
  113. package/src/dto/article-version-content.input.ts +0 -18
  114. package/src/dto/article.dto.ts +0 -16
  115. package/src/dto/articles.args.ts +0 -16
  116. package/src/dto/backstage-article-collection.dto.ts +0 -9
  117. package/src/dto/backstage-article.args.ts +0 -20
  118. package/src/dto/backstage-article.dto.ts +0 -14
  119. package/src/dto/backstage-category.dto.ts +0 -5
  120. package/src/dto/base-article.dto.ts +0 -19
  121. package/src/dto/base-category.dto.ts +0 -13
  122. package/src/dto/categories.args.ts +0 -27
  123. package/src/dto/category-multi-language-name.dto.ts +0 -10
  124. package/src/dto/category-multi-language-name.input.ts +0 -10
  125. package/src/dto/category.dto.ts +0 -8
  126. package/src/dto/collection.dto.ts +0 -13
  127. package/src/dto/create-article.args.ts +0 -27
  128. package/src/dto/create-category.args.ts +0 -15
  129. package/src/dto/custom-field.input.ts +0 -10
  130. package/src/dto/update-article.args.ts +0 -8
  131. package/src/dto/update-category.args.ts +0 -8
  132. package/src/dto/user.dto.ts +0 -10
  133. package/src/mutations/article.mutations.ts +0 -177
  134. package/src/mutations/category.mutations.ts +0 -78
  135. package/src/queries/article.queries.ts +0 -71
  136. package/src/queries/category.queries.ts +0 -53
  137. package/src/resolvers/article-signature.resolver.ts +0 -29
  138. package/src/resolvers/article.resolver.ts +0 -41
  139. package/src/resolvers/backstage-article.resolver.ts +0 -161
  140. package/src/resolvers/backstage-category.resolver.ts +0 -40
  141. package/src/scalars/quadrats-element.scalar.ts +0 -56
  142. package/src/typings/cms-graphql-base-providers.ts +0 -3
  143. package/src/typings/cms-graphql-base-root-module-options.dto.ts +0 -11
  144. package/src/typings/dto/resolved-create-article-args.dto.ts +0 -33
  145. package/src/typings/dto/resolved-create-category-args.dto.ts +0 -19
  146. package/tsconfig.build.json +0 -8
  147. /package/{src/typings/custom-field-value.type.ts → typings/custom-field-value.type.d.ts} +0 -0
@@ -1,6 +1,4 @@
1
1
  export * from './cms-base-graphql.module';
2
-
3
- // GraphQL Types
4
2
  export * from './dto/backstage-article.dto';
5
3
  export * from './dto/article.dto';
6
4
  export * from './dto/article-collection.dto';
package/index.js ADDED
@@ -0,0 +1,8 @@
1
+ export { CMSBaseGraphQLModule } from './cms-base-graphql.module.js';
2
+ export { BackstageArticleDto } from './dto/backstage-article.dto.js';
3
+ export { ArticleDto } from './dto/article.dto.js';
4
+ export { ArticleCollectionDto } from './dto/article-collection.dto.js';
5
+ export { BackstageArticleCollectionDto } from './dto/backstage-article-collection.dto.js';
6
+ export { CategoryDto } from './dto/category.dto.js';
7
+ export { BackstageCategoryDto } from './dto/backstage-category.dto.js';
8
+ export { CustomFieldInput } from './dto/custom-field.input.js';
@@ -0,0 +1,22 @@
1
+ import { ArticleBaseService } from '@rytass/cms-base-nestjs-module';
2
+ import { BackstageArticleDto } from '../dto/backstage-article.dto';
3
+ import { CreateArticleArgs } from '../dto/create-article.args';
4
+ import { UpdateArticleArgs } from '../dto/update-article.args';
5
+ import { CustomFieldInput } from '../dto/custom-field.input';
6
+ export declare class ArticleMutations {
7
+ private readonly multiLanguage;
8
+ private readonly mapArticleCustomFieldsToEntityColumns;
9
+ private readonly articleService;
10
+ constructor(multiLanguage: boolean, mapArticleCustomFieldsToEntityColumns: (customFields: CustomFieldInput[]) => Promise<Record<string, string>>, articleService: ArticleBaseService);
11
+ private resolveCreateArticleArgs;
12
+ createArticle(memberId: string, args: CreateArticleArgs): Promise<BackstageArticleDto>;
13
+ updateArticle(memberId: string, args: UpdateArticleArgs): Promise<BackstageArticleDto>;
14
+ deleteArticle(id: string): Promise<boolean>;
15
+ deleteArticleVersion(id: string, version: number): Promise<boolean>;
16
+ submitArticle(memberId: string, id: string): Promise<BackstageArticleDto>;
17
+ putBackArticle(_memberId: string, id: string): Promise<BackstageArticleDto>;
18
+ approveArticle(id: string, version?: number | null): Promise<BackstageArticleDto>;
19
+ rejectArticle(id: string, reason?: string | null): Promise<BackstageArticleDto>;
20
+ releaseArticle(userId: string, id: string, releasedAt: Date, version?: number | null): Promise<BackstageArticleDto>;
21
+ withdrawArticle(id: string, version: number): Promise<BackstageArticleDto>;
22
+ }
@@ -0,0 +1,338 @@
1
+ import { MULTIPLE_LANGUAGE_MODE, DEFAULT_LANGUAGE, ArticleBaseService } from '@rytass/cms-base-nestjs-module';
2
+ import { Mutation, Args, ID, Int, Resolver } from '@nestjs/graphql';
3
+ import { BackstageArticleDto } from '../dto/backstage-article.dto.js';
4
+ import { CreateArticleArgs } from '../dto/create-article.args.js';
5
+ import { AllowActions, MemberId } from '@rytass/member-base-nestjs-module';
6
+ import { UpdateArticleArgs } from '../dto/update-article.args.js';
7
+ import { Inject } from '@nestjs/common';
8
+ import { BaseAction } from '../constants/enum/base-action.enum.js';
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';
11
+
12
+ function _ts_decorate(decorators, target, key, desc) {
13
+ var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
14
+ if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
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
+ return c > 3 && r && Object.defineProperty(target, key, r), r;
17
+ }
18
+ function _ts_metadata(k, v) {
19
+ if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(k, v);
20
+ }
21
+ function _ts_param(paramIndex, decorator) {
22
+ return function(target, key) {
23
+ decorator(target, key, paramIndex);
24
+ };
25
+ }
26
+ class ArticleMutations {
27
+ multiLanguage;
28
+ mapArticleCustomFieldsToEntityColumns;
29
+ articleService;
30
+ constructor(multiLanguage, mapArticleCustomFieldsToEntityColumns, articleService){
31
+ this.multiLanguage = multiLanguage;
32
+ this.mapArticleCustomFieldsToEntityColumns = mapArticleCustomFieldsToEntityColumns;
33
+ this.articleService = articleService;
34
+ }
35
+ async resolveCreateArticleArgs(args) {
36
+ const extraArgsInput = {};
37
+ if (args.customFields?.length) {
38
+ Object.assign(extraArgsInput, await this.mapArticleCustomFieldsToEntityColumns(args.customFields));
39
+ }
40
+ const basePayload = {
41
+ categoryIds: args.categoryIds,
42
+ tags: args.tags,
43
+ submitted: args.submitted ?? undefined,
44
+ signatureLevel: args.signatureLevel ?? null,
45
+ releasedAt: args.releasedAt ?? null,
46
+ ...extraArgsInput
47
+ };
48
+ if (!this.multiLanguage) {
49
+ const [content] = args.multiLanguageContents;
50
+ return {
51
+ ...basePayload,
52
+ title: content.title,
53
+ content: content.content,
54
+ description: content.description ?? undefined
55
+ };
56
+ }
57
+ const multiLanguageContents = args.multiLanguageContents.reduce((vars, content)=>({
58
+ ...vars,
59
+ [content.language ?? DEFAULT_LANGUAGE]: {
60
+ title: content.title,
61
+ description: content.description,
62
+ content: content.content
63
+ }
64
+ }), {});
65
+ return {
66
+ ...basePayload,
67
+ multiLanguageContents
68
+ };
69
+ }
70
+ async createArticle(memberId, args) {
71
+ return this.articleService.create({
72
+ ...await this.resolveCreateArticleArgs(args),
73
+ userId: memberId
74
+ });
75
+ }
76
+ async updateArticle(memberId, args) {
77
+ return this.articleService.addVersion(args.id, {
78
+ ...await this.resolveCreateArticleArgs(args),
79
+ userId: memberId
80
+ });
81
+ }
82
+ async deleteArticle(id) {
83
+ await this.articleService.archive(id);
84
+ return true;
85
+ }
86
+ async deleteArticleVersion(id, version) {
87
+ await this.articleService.deleteVersion(id, version);
88
+ return true;
89
+ }
90
+ async submitArticle(memberId, id) {
91
+ return this.articleService.submit(id, {
92
+ userId: memberId
93
+ });
94
+ }
95
+ async putBackArticle(_memberId, id) {
96
+ return this.articleService.putBack(id);
97
+ }
98
+ async approveArticle(id, version) {
99
+ const article = await this.articleService.findById(id);
100
+ return this.articleService.approveVersion({
101
+ id,
102
+ version: version ?? article.version
103
+ });
104
+ }
105
+ async rejectArticle(id, reason) {
106
+ return this.articleService.rejectVersion({
107
+ id
108
+ }, {
109
+ reason
110
+ });
111
+ }
112
+ releaseArticle(userId, id, releasedAt, version) {
113
+ return this.articleService.release(id, {
114
+ releasedAt,
115
+ userId,
116
+ version: version ?? undefined
117
+ });
118
+ }
119
+ withdrawArticle(id, version) {
120
+ return this.articleService.withdraw(id, version);
121
+ }
122
+ }
123
+ _ts_decorate([
124
+ Mutation(()=>BackstageArticleDto),
125
+ AllowActions([
126
+ [
127
+ BaseResource.ARTICLE,
128
+ BaseAction.CREATE
129
+ ]
130
+ ]),
131
+ _ts_param(0, MemberId()),
132
+ _ts_param(1, Args()),
133
+ _ts_metadata("design:type", Function),
134
+ _ts_metadata("design:paramtypes", [
135
+ String,
136
+ typeof CreateArticleArgs === "undefined" ? Object : CreateArticleArgs
137
+ ]),
138
+ _ts_metadata("design:returntype", Promise)
139
+ ], ArticleMutations.prototype, "createArticle", null);
140
+ _ts_decorate([
141
+ Mutation(()=>BackstageArticleDto),
142
+ AllowActions([
143
+ [
144
+ BaseResource.ARTICLE,
145
+ BaseAction.UPDATE
146
+ ]
147
+ ]),
148
+ _ts_param(0, MemberId()),
149
+ _ts_param(1, Args()),
150
+ _ts_metadata("design:type", Function),
151
+ _ts_metadata("design:paramtypes", [
152
+ String,
153
+ typeof UpdateArticleArgs === "undefined" ? Object : UpdateArticleArgs
154
+ ]),
155
+ _ts_metadata("design:returntype", Promise)
156
+ ], ArticleMutations.prototype, "updateArticle", null);
157
+ _ts_decorate([
158
+ Mutation(()=>Boolean),
159
+ AllowActions([
160
+ [
161
+ BaseResource.ARTICLE,
162
+ BaseAction.DELETE
163
+ ]
164
+ ]),
165
+ _ts_param(0, Args('id', {
166
+ type: ()=>ID
167
+ })),
168
+ _ts_metadata("design:type", Function),
169
+ _ts_metadata("design:paramtypes", [
170
+ String
171
+ ]),
172
+ _ts_metadata("design:returntype", Promise)
173
+ ], ArticleMutations.prototype, "deleteArticle", null);
174
+ _ts_decorate([
175
+ Mutation(()=>Boolean),
176
+ AllowActions([
177
+ [
178
+ BaseResource.ARTICLE,
179
+ BaseAction.DELETE_VERSION
180
+ ]
181
+ ]),
182
+ _ts_param(0, Args('id', {
183
+ type: ()=>ID
184
+ })),
185
+ _ts_param(1, Args('version', {
186
+ type: ()=>Int
187
+ })),
188
+ _ts_metadata("design:type", Function),
189
+ _ts_metadata("design:paramtypes", [
190
+ String,
191
+ Number
192
+ ]),
193
+ _ts_metadata("design:returntype", Promise)
194
+ ], ArticleMutations.prototype, "deleteArticleVersion", null);
195
+ _ts_decorate([
196
+ Mutation(()=>BackstageArticleDto),
197
+ AllowActions([
198
+ [
199
+ BaseResource.ARTICLE,
200
+ BaseAction.SUBMIT
201
+ ]
202
+ ]),
203
+ _ts_param(0, MemberId()),
204
+ _ts_param(1, Args('id', {
205
+ type: ()=>ID
206
+ })),
207
+ _ts_metadata("design:type", Function),
208
+ _ts_metadata("design:paramtypes", [
209
+ String,
210
+ String
211
+ ]),
212
+ _ts_metadata("design:returntype", Promise)
213
+ ], ArticleMutations.prototype, "submitArticle", null);
214
+ _ts_decorate([
215
+ Mutation(()=>BackstageArticleDto),
216
+ AllowActions([
217
+ [
218
+ BaseResource.ARTICLE,
219
+ BaseAction.PUT_BACK
220
+ ]
221
+ ]),
222
+ _ts_param(0, MemberId()),
223
+ _ts_param(1, Args('id', {
224
+ type: ()=>ID
225
+ })),
226
+ _ts_metadata("design:type", Function),
227
+ _ts_metadata("design:paramtypes", [
228
+ String,
229
+ String
230
+ ]),
231
+ _ts_metadata("design:returntype", Promise)
232
+ ], ArticleMutations.prototype, "putBackArticle", null);
233
+ _ts_decorate([
234
+ Mutation(()=>BackstageArticleDto),
235
+ AllowActions([
236
+ [
237
+ BaseResource.ARTICLE,
238
+ BaseAction.APPROVE
239
+ ]
240
+ ]),
241
+ _ts_param(0, Args('id', {
242
+ type: ()=>ID
243
+ })),
244
+ _ts_param(1, Args('version', {
245
+ type: ()=>Int,
246
+ nullable: true
247
+ })),
248
+ _ts_metadata("design:type", Function),
249
+ _ts_metadata("design:paramtypes", [
250
+ String,
251
+ Object
252
+ ]),
253
+ _ts_metadata("design:returntype", Promise)
254
+ ], ArticleMutations.prototype, "approveArticle", null);
255
+ _ts_decorate([
256
+ Mutation(()=>BackstageArticleDto),
257
+ AllowActions([
258
+ [
259
+ BaseResource.ARTICLE,
260
+ BaseAction.REJECT
261
+ ]
262
+ ]),
263
+ _ts_param(0, Args('id', {
264
+ type: ()=>ID
265
+ })),
266
+ _ts_param(1, Args('reason', {
267
+ type: ()=>String,
268
+ nullable: true
269
+ })),
270
+ _ts_metadata("design:type", Function),
271
+ _ts_metadata("design:paramtypes", [
272
+ String,
273
+ Object
274
+ ]),
275
+ _ts_metadata("design:returntype", Promise)
276
+ ], ArticleMutations.prototype, "rejectArticle", null);
277
+ _ts_decorate([
278
+ Mutation(()=>BackstageArticleDto),
279
+ AllowActions([
280
+ [
281
+ BaseResource.ARTICLE,
282
+ BaseAction.RELEASE
283
+ ]
284
+ ]),
285
+ _ts_param(0, MemberId()),
286
+ _ts_param(1, Args('id', {
287
+ type: ()=>ID
288
+ })),
289
+ _ts_param(2, Args('releasedAt', {
290
+ type: ()=>Date
291
+ })),
292
+ _ts_param(3, Args('version', {
293
+ type: ()=>Int,
294
+ nullable: true
295
+ })),
296
+ _ts_metadata("design:type", Function),
297
+ _ts_metadata("design:paramtypes", [
298
+ String,
299
+ String,
300
+ typeof Date === "undefined" ? Object : Date,
301
+ Object
302
+ ]),
303
+ _ts_metadata("design:returntype", typeof Promise === "undefined" ? Object : Promise)
304
+ ], ArticleMutations.prototype, "releaseArticle", null);
305
+ _ts_decorate([
306
+ Mutation(()=>BackstageArticleDto),
307
+ AllowActions([
308
+ [
309
+ BaseResource.ARTICLE,
310
+ BaseAction.WITHDRAW
311
+ ]
312
+ ]),
313
+ _ts_param(0, Args('id', {
314
+ type: ()=>ID
315
+ })),
316
+ _ts_param(1, Args('version', {
317
+ type: ()=>Int
318
+ })),
319
+ _ts_metadata("design:type", Function),
320
+ _ts_metadata("design:paramtypes", [
321
+ String,
322
+ Number
323
+ ]),
324
+ _ts_metadata("design:returntype", typeof Promise === "undefined" ? Object : Promise)
325
+ ], ArticleMutations.prototype, "withdrawArticle", null);
326
+ ArticleMutations = _ts_decorate([
327
+ Resolver(),
328
+ _ts_param(0, Inject(MULTIPLE_LANGUAGE_MODE)),
329
+ _ts_param(1, Inject(MAP_ARTICLE_CUSTOM_FIELDS_TO_ENTITY_COLUMNS)),
330
+ _ts_metadata("design:type", Function),
331
+ _ts_metadata("design:paramtypes", [
332
+ Boolean,
333
+ Function,
334
+ typeof ArticleBaseService === "undefined" ? Object : ArticleBaseService
335
+ ])
336
+ ], ArticleMutations);
337
+
338
+ export { ArticleMutations };
@@ -0,0 +1,15 @@
1
+ import { CategoryBaseService } from '@rytass/cms-base-nestjs-module';
2
+ import { CreateCategoryArgs } from '../dto/create-category.args';
3
+ import { BackstageCategoryDto } from '../dto/backstage-category.dto';
4
+ import { UpdateCategoryArgs } from '../dto/update-category.args';
5
+ import { CustomFieldInput } from '../dto/custom-field.input';
6
+ export declare class CategoryMutations {
7
+ private readonly multiLanguage;
8
+ private readonly mapCategoryCustomFieldsToEntityColumns;
9
+ private readonly categoryService;
10
+ constructor(multiLanguage: boolean, mapCategoryCustomFieldsToEntityColumns: (customFields: CustomFieldInput[]) => Promise<Record<string, string>>, categoryService: CategoryBaseService);
11
+ private resolveCreateCategoryArgs;
12
+ createCategory(args: CreateCategoryArgs): Promise<BackstageCategoryDto>;
13
+ updateCategory(args: UpdateCategoryArgs): Promise<BackstageCategoryDto>;
14
+ deleteCategory(id: string): Promise<boolean>;
15
+ }
@@ -0,0 +1,134 @@
1
+ import { Mutation, Args, ID, Resolver } from '@nestjs/graphql';
2
+ import { MULTIPLE_LANGUAGE_MODE, CategoryBaseService } from '@rytass/cms-base-nestjs-module';
3
+ import { CreateCategoryArgs } from '../dto/create-category.args.js';
4
+ import { AllowActions } from '@rytass/member-base-nestjs-module';
5
+ import { BackstageCategoryDto } from '../dto/backstage-category.dto.js';
6
+ import { UpdateCategoryArgs } from '../dto/update-category.args.js';
7
+ import { Inject } from '@nestjs/common';
8
+ import { BaseAction } from '../constants/enum/base-action.enum.js';
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';
11
+
12
+ function _ts_decorate(decorators, target, key, desc) {
13
+ var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
14
+ if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
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
+ return c > 3 && r && Object.defineProperty(target, key, r), r;
17
+ }
18
+ function _ts_metadata(k, v) {
19
+ if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(k, v);
20
+ }
21
+ function _ts_param(paramIndex, decorator) {
22
+ return function(target, key) {
23
+ decorator(target, key, paramIndex);
24
+ };
25
+ }
26
+ class CategoryMutations {
27
+ multiLanguage;
28
+ mapCategoryCustomFieldsToEntityColumns;
29
+ categoryService;
30
+ constructor(multiLanguage, mapCategoryCustomFieldsToEntityColumns, categoryService){
31
+ this.multiLanguage = multiLanguage;
32
+ this.mapCategoryCustomFieldsToEntityColumns = mapCategoryCustomFieldsToEntityColumns;
33
+ this.categoryService = categoryService;
34
+ }
35
+ async resolveCreateCategoryArgs(args) {
36
+ const extraArgsInput = {};
37
+ if (args.customFields?.length) {
38
+ Object.assign(extraArgsInput, await this.mapCategoryCustomFieldsToEntityColumns(args.customFields));
39
+ }
40
+ const basePayload = {
41
+ parentIds: args.parentIds,
42
+ ...extraArgsInput
43
+ };
44
+ if (!this.multiLanguage) {
45
+ const [content] = args.multiLanguageNames;
46
+ return {
47
+ ...basePayload,
48
+ name: content.name
49
+ };
50
+ }
51
+ const multiLanguageNames = Object.fromEntries(args.multiLanguageNames.map((name)=>[
52
+ name.language,
53
+ name.name
54
+ ]));
55
+ return {
56
+ ...basePayload,
57
+ multiLanguageNames
58
+ };
59
+ }
60
+ async createCategory(args) {
61
+ return this.categoryService.create({
62
+ ...await this.resolveCreateCategoryArgs(args)
63
+ });
64
+ }
65
+ async updateCategory(args) {
66
+ return this.categoryService.update(args.id, {
67
+ ...await this.resolveCreateCategoryArgs(args)
68
+ });
69
+ }
70
+ async deleteCategory(id) {
71
+ await this.categoryService.archive(id);
72
+ return true;
73
+ }
74
+ }
75
+ _ts_decorate([
76
+ Mutation(()=>BackstageCategoryDto),
77
+ AllowActions([
78
+ [
79
+ BaseResource.CATEGORY,
80
+ BaseAction.CREATE
81
+ ]
82
+ ]),
83
+ _ts_param(0, Args()),
84
+ _ts_metadata("design:type", Function),
85
+ _ts_metadata("design:paramtypes", [
86
+ typeof CreateCategoryArgs === "undefined" ? Object : CreateCategoryArgs
87
+ ]),
88
+ _ts_metadata("design:returntype", Promise)
89
+ ], CategoryMutations.prototype, "createCategory", null);
90
+ _ts_decorate([
91
+ Mutation(()=>BackstageCategoryDto),
92
+ AllowActions([
93
+ [
94
+ BaseResource.CATEGORY,
95
+ BaseAction.UPDATE
96
+ ]
97
+ ]),
98
+ _ts_param(0, Args()),
99
+ _ts_metadata("design:type", Function),
100
+ _ts_metadata("design:paramtypes", [
101
+ typeof UpdateCategoryArgs === "undefined" ? Object : UpdateCategoryArgs
102
+ ]),
103
+ _ts_metadata("design:returntype", Promise)
104
+ ], CategoryMutations.prototype, "updateCategory", null);
105
+ _ts_decorate([
106
+ Mutation(()=>Boolean),
107
+ AllowActions([
108
+ [
109
+ BaseResource.CATEGORY,
110
+ BaseAction.DELETE
111
+ ]
112
+ ]),
113
+ _ts_param(0, Args('id', {
114
+ type: ()=>ID
115
+ })),
116
+ _ts_metadata("design:type", Function),
117
+ _ts_metadata("design:paramtypes", [
118
+ String
119
+ ]),
120
+ _ts_metadata("design:returntype", Promise)
121
+ ], CategoryMutations.prototype, "deleteCategory", null);
122
+ CategoryMutations = _ts_decorate([
123
+ Resolver(),
124
+ _ts_param(0, Inject(MULTIPLE_LANGUAGE_MODE)),
125
+ _ts_param(1, Inject(MAP_CATEGORY_CUSTOM_FIELDS_TO_ENTITY_COLUMNS)),
126
+ _ts_metadata("design:type", Function),
127
+ _ts_metadata("design:paramtypes", [
128
+ Boolean,
129
+ Function,
130
+ typeof CategoryBaseService === "undefined" ? Object : CategoryBaseService
131
+ ])
132
+ ], CategoryMutations);
133
+
134
+ export { CategoryMutations };
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@rytass/cms-base-nestjs-graphql-module",
3
- "version": "0.1.26",
3
+ "version": "0.1.28",
4
4
  "description": "Rytass Content Management System NestJS Base GraphQL Module",
5
5
  "keywords": [
6
6
  "rytass",
@@ -15,13 +15,6 @@
15
15
  "type": "git",
16
16
  "url": "git+https://github.com/Rytass/Utils.git"
17
17
  },
18
- "scripts": {
19
- "clean": "nx clean",
20
- "build": "nx build",
21
- "lint": "nx lint",
22
- "test": "nx test",
23
- "test:watch": "nx test:watch"
24
- },
25
18
  "bugs": {
26
19
  "url": "https://github.com/Rytass/Utils/issues"
27
20
  },
@@ -33,9 +26,12 @@
33
26
  "typeorm": "*"
34
27
  },
35
28
  "dependencies": {
36
- "@rytass/cms-base-nestjs-module": "^0.2.14",
29
+ "@rytass/cms-base-nestjs-module": "^0.2.16",
37
30
  "@rytass/member-base-nestjs-module": "^0.2.18",
38
31
  "dataloader": "^2.2.3",
39
32
  "lru-cache": "^11.2.4"
40
- }
33
+ },
34
+ "main": "./index.cjs.js",
35
+ "module": "./index.js",
36
+ "typings": "./index.d.ts"
41
37
  }
@@ -0,0 +1,16 @@
1
+ import { ArticleBaseService } from '@rytass/cms-base-nestjs-module';
2
+ import { ArticlesArgs } from '../dto/articles.args';
3
+ import { ArticleCollectionDto } from '../dto/article-collection.dto';
4
+ import { ArticleDto } from '../dto/article.dto';
5
+ import { BackstageArticleDto } from '../dto/backstage-article.dto';
6
+ import { BackstageArticleCollectionDto } from '../dto/backstage-article-collection.dto';
7
+ import { BackstageArticleArgs } from '../dto/backstage-article.args';
8
+ export declare class ArticleQueries {
9
+ private readonly articleService;
10
+ private readonly multiLanguage;
11
+ constructor(articleService: ArticleBaseService, multiLanguage: boolean);
12
+ article(id: string, language?: string): Promise<ArticleDto>;
13
+ articles(args: ArticlesArgs, language?: string): Promise<ArticleCollectionDto>;
14
+ backstageArticle(id: string, version?: number | null): Promise<BackstageArticleDto>;
15
+ backstageArticles(args: BackstageArticleArgs): Promise<BackstageArticleCollectionDto>;
16
+ }