@raketa-cloud/admin 0.0.14 → 0.0.15

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 (59) hide show
  1. package/package.json +1 -1
  2. package/src/cloud/ArticleChanges.js +15 -0
  3. package/src/cloud/ArticleRevisions.js +152 -0
  4. package/src/cloud/Articles.js +133 -0
  5. package/src/cloud/documents/articlesDocuments.js +109 -469
  6. package/src/cloud/documents/common.js +10 -0
  7. package/src/handlers/article_revisions/ArticleRevisionsHandler.js +49 -0
  8. package/src/handlers/article_revisions/CodeHandler.js +90 -0
  9. package/src/handlers/article_revisions/GeneralHandler.js +95 -0
  10. package/src/handlers/article_revisions/LocksHandler.js +54 -0
  11. package/src/handlers/article_revisions/MetaHandler.js +90 -0
  12. package/src/handlers/article_revisions/PublishesHandler.js +90 -0
  13. package/src/handlers/article_revisions/RevertsHandler.js +28 -0
  14. package/src/handlers/article_revisions/TagHandler.js +89 -0
  15. package/src/handlers/article_revisions/UnlocksHandler.js +22 -0
  16. package/src/handlers/article_revisions/VisualHandler.js +84 -0
  17. package/src/handlers/article_revisions/WidgetHandler.js +47 -0
  18. package/src/handlers/articles/ArticlesHandler.js +119 -0
  19. package/src/handlers/articles/ClonesHandler.js +17 -0
  20. package/src/handlers/articles/DeletesHandler.js +68 -0
  21. package/src/handlers/articles/TranslationsHandler.js +103 -0
  22. package/src/handlers/articles/URLsHandler.js +71 -0
  23. package/src/handlers/pages/PagesHandler.js +4 -2
  24. package/src/handlers/pages/TranslationsHandler.js +7 -5
  25. package/src/index.js +22 -0
  26. package/src/routeArticles.js +65 -0
  27. package/src/routeStandard.js +2 -0
  28. package/src/setupCloud.js +12 -0
  29. package/src/tests/handlers/articles/ArticlesHandler.test/create.test.js +144 -0
  30. package/src/tests/handlers/articles/ArticlesHandler.test/create_form.test.js +41 -0
  31. package/src/tests/handlers/articles/ArticlesHandler.test/index.test.js +49 -0
  32. package/src/tests/handlers/articles/ArticlesHandler.test/show.test.js +105 -0
  33. package/src/tests/handlers/articles/ConesHandler.test/create.test.js +54 -0
  34. package/src/tests/handlers/articles/DeletesHandler.test/create.test.js +110 -0
  35. package/src/tests/handlers/articles/DeletesHandler.test/create_form.test.js +54 -0
  36. package/src/tests/handlers/articles/URLsHandler.test/create.test.js +155 -0
  37. package/src/tests/handlers/articles/URLsHandler.test/create_form.test.js +51 -0
  38. package/src/tests/handlers/pages/PagesHandler.test/create.test.js +3 -3
  39. package/src/utils.js +46 -0
  40. package/src/views/article_revisions/_nav.ejs +40 -0
  41. package/src/views/article_revisions/codes/edit_form.ejs +39 -0
  42. package/src/views/article_revisions/general/edit_form.ejs +70 -0
  43. package/src/views/article_revisions/locks/create_form.ejs +35 -0
  44. package/src/views/article_revisions/meta/edit_form.ejs +41 -0
  45. package/src/views/article_revisions/publishes/_form.ejs +57 -0
  46. package/src/views/article_revisions/publishes/create_form.ejs +10 -0
  47. package/src/views/article_revisions/tags/edit_form.ejs +64 -0
  48. package/src/views/article_revisions/visuals/edit_form.ejs +42 -0
  49. package/src/views/articles/_form.ejs +86 -0
  50. package/src/views/articles/create_form.ejs +9 -0
  51. package/src/views/articles/deletes/create_form.ejs +55 -0
  52. package/src/views/articles/edit_form.ejs +3 -0
  53. package/src/views/articles/index.ejs +161 -0
  54. package/src/views/articles/show.ejs +281 -0
  55. package/src/views/articles/translations/_form.ejs +77 -0
  56. package/src/views/articles/translations/create_form.ejs +11 -0
  57. package/src/views/articles/urls/create_form.ejs +31 -0
  58. package/src/views/page_revisions/locks/create_form.ejs +1 -1
  59. package/test/factory.js +37 -0
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@raketa-cloud/admin",
3
- "version": "0.0.14",
3
+ "version": "0.0.15",
4
4
  "main": "src/index.js",
5
5
  "scripts": {
6
6
  "dev": "npx tailwindcss -i ./src/styles/application.css -o ../../apps/admin/static/application.css --watch",
@@ -0,0 +1,15 @@
1
+ import RaketaClient from "./RaketaClient";
2
+ import { ArticleChangesDocument } from "./documents/articlesDocuments";
3
+
4
+ export default class ArticleChanges extends RaketaClient {
5
+ async all(articleId, locale) {
6
+ const { articleChanges: items } = await this.query(ArticleChangesDocument, {
7
+ input: {
8
+ id: articleId,
9
+ locale,
10
+ },
11
+ });
12
+
13
+ return items;
14
+ }
15
+ }
@@ -0,0 +1,152 @@
1
+ import RaketaClient from "./RaketaClient";
2
+ import {
3
+ DeleteArticleDocument,
4
+ LockArticleRevisionDocument,
5
+ MergeArticleRevisionDocument,
6
+ ArticleRevisionDocument,
7
+ ArticleRevisionsDocument,
8
+ StartArticleRevisionDocument,
9
+ UnlockArticleRevisionDocument,
10
+ UpdateArticleDocument,
11
+ UpdateArticleWidgetsDocument,
12
+ ReopenArticleChangeDocument,
13
+ } from "./documents/articlesDocuments";
14
+
15
+ export default class ArticleRevisions extends RaketaClient {
16
+ async all(articleId, locale) {
17
+ const { articleRevisions: items } = await this.query(
18
+ ArticleRevisionsDocument,
19
+ {
20
+ input: {
21
+ id: articleId,
22
+ locale,
23
+ },
24
+ }
25
+ );
26
+
27
+ return items;
28
+ }
29
+
30
+ async find(id, locale) {
31
+ const { articleRevision } = await this.query(ArticleRevisionDocument, {
32
+ input: {
33
+ id,
34
+ locale,
35
+ },
36
+ });
37
+
38
+ return articleRevision;
39
+ }
40
+
41
+ async publish(id, locale, params, articleParams) {
42
+ const {
43
+ mergeArticleRevision: { article, errors },
44
+ } = await this.query(MergeArticleRevisionDocument, {
45
+ input: {
46
+ id,
47
+ locale,
48
+ ...params,
49
+ article: { ...articleParams },
50
+ },
51
+ });
52
+
53
+ return { article, errors };
54
+ }
55
+
56
+ async create(articleId, locale) {
57
+ const {
58
+ startArticleRevision: { revision, errors, articleErrors },
59
+ } = await this.query(StartArticleRevisionDocument, {
60
+ input: {
61
+ id: articleId,
62
+ locale,
63
+ title: "New revision",
64
+ description: "",
65
+ },
66
+ });
67
+
68
+ return { revision, errors, articleErrors };
69
+ }
70
+
71
+ async update(id, locale, params) {
72
+ const {
73
+ updateArticle: { errors, article },
74
+ } = await this.query(UpdateArticleDocument, {
75
+ input: {
76
+ id,
77
+ locale,
78
+ article: params,
79
+ },
80
+ });
81
+
82
+ return { article, errors };
83
+ }
84
+
85
+ async updateWidgets(id, locale, widgets) {
86
+ const {
87
+ updateArticleWidgets: { errors, article },
88
+ } = await this.query(UpdateArticleWidgetsDocument, {
89
+ input: {
90
+ id,
91
+ locale,
92
+ widgets: JSON.stringify(widgets),
93
+ },
94
+ });
95
+
96
+ return { article, errors };
97
+ }
98
+
99
+ async delete(revisionId, locale) {
100
+ const {
101
+ deleteArticle: { article, errors },
102
+ } = await this.query(DeleteArticleDocument, {
103
+ input: {
104
+ id: revisionId,
105
+ locale,
106
+ },
107
+ });
108
+
109
+ return { revision: article, errors };
110
+ }
111
+
112
+ async lock(revisionId, locale, message) {
113
+ const {
114
+ lockArticleRevision: { revision, errors },
115
+ } = await this.query(LockArticleRevisionDocument, {
116
+ input: {
117
+ revisionId,
118
+ message,
119
+ locale,
120
+ },
121
+ });
122
+
123
+ return { revision, errors };
124
+ }
125
+
126
+ async unlock(revisionId, locale) {
127
+ const {
128
+ unlockArticleRevision: { revision, errors },
129
+ } = await this.query(UnlockArticleRevisionDocument, {
130
+ input: {
131
+ revisionId,
132
+ locale,
133
+ },
134
+ });
135
+
136
+ return { revision, errors };
137
+ }
138
+
139
+ async revert(articleId, version, locale) {
140
+ const {
141
+ reopenArticleChange: { revision, errors, articleErrors },
142
+ } = await this.query(ReopenArticleChangeDocument, {
143
+ input: {
144
+ articleId,
145
+ locale,
146
+ version,
147
+ },
148
+ });
149
+
150
+ return { revision, errors, articleErrors };
151
+ }
152
+ }
@@ -0,0 +1,133 @@
1
+ import RaketaClient from "./RaketaClient";
2
+ import {
3
+ CreateArticleDocument,
4
+ ArticleByIdDocument,
5
+ ArticlesDocument,
6
+ CloneArticleDocument,
7
+ DeleteArticleDocument,
8
+ TranslateArticleDocument,
9
+ ChangeArticleSlugDocument,
10
+ } from "./documents/articlesDocuments";
11
+ import { toDateTimeInput } from "../utils";
12
+
13
+ export default class Articles extends RaketaClient {
14
+ defaults() {
15
+ return {
16
+ visibility: "private",
17
+ layout: "default",
18
+ publish_at: toDateTimeInput(new Date()),
19
+ tags: [],
20
+ categories: [],
21
+ };
22
+ }
23
+
24
+ visibilityOptions() {
25
+ return [
26
+ ["private", "Private"],
27
+ ["public", "Public"],
28
+ ["unlisted", "Unlisted"],
29
+ ["protected", "Password protected"],
30
+ ];
31
+ }
32
+
33
+ async find(id, locale) {
34
+ const { article: item } = await this.query(ArticleByIdDocument, {
35
+ input: {
36
+ id,
37
+ locale,
38
+ },
39
+ });
40
+
41
+ return item;
42
+ }
43
+
44
+ async list(query, locale) {
45
+ const { articles: items } = await this.query(
46
+ ArticlesDocument,
47
+ this.buildListInput(query, locale)
48
+ );
49
+
50
+ return items;
51
+ }
52
+
53
+ async create(params, locale, articleTypeSlug) {
54
+ params.widgets = JSON.stringify(params.widgets);
55
+ params.settings = JSON.stringify(params.settings);
56
+
57
+ const {
58
+ createArticle: { errors, article },
59
+ } = await this.query(CreateArticleDocument, {
60
+ input: {
61
+ locale,
62
+ article: params,
63
+ articleTypeSlug,
64
+ },
65
+ });
66
+
67
+ return { article, errors };
68
+ }
69
+
70
+ async clone(id, locale) {
71
+ const {
72
+ cloneArticle: { errors, article },
73
+ } = await this.query(CloneArticleDocument, {
74
+ input: { id: id, locale: locale },
75
+ });
76
+
77
+ return { article, errors };
78
+ }
79
+
80
+ async delete(id, locale, redirect) {
81
+ const input = {
82
+ id,
83
+ locale,
84
+ };
85
+
86
+ if (redirect) {
87
+ input.redirect = redirect;
88
+ }
89
+
90
+ const {
91
+ deleteArticle: { errors, article },
92
+ } = await this.query(DeleteArticleDocument, { input });
93
+
94
+ return { article, errors };
95
+ }
96
+
97
+ async translate(id, locale, params) {
98
+ params.widgets = JSON.stringify(params.widgets);
99
+ params.settings = JSON.stringify(params.settings);
100
+
101
+ const {
102
+ translateArticle: { errors, article },
103
+ } = await this.query(TranslateArticleDocument, {
104
+ input: {
105
+ locale,
106
+ sourceArticleId: id,
107
+ article: params,
108
+ },
109
+ });
110
+
111
+ return { article, errors };
112
+ }
113
+
114
+ async updateSlug(id, slug, locale, redirect) {
115
+ const input = {
116
+ id,
117
+ slug,
118
+ locale,
119
+ };
120
+
121
+ if (redirect) {
122
+ input.redirect = redirect;
123
+ }
124
+
125
+ const {
126
+ changeArticleSlug: { errors, article },
127
+ } = await this.query(ChangeArticleSlugDocument, {
128
+ input,
129
+ });
130
+
131
+ return { article, errors };
132
+ }
133
+ }