@raketa-cloud/admin 0.0.14 → 0.0.16

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 (141) 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/EventChanges.js +15 -0
  6. package/src/cloud/EventRevisions.js +149 -0
  7. package/src/cloud/Events.js +135 -0
  8. package/src/cloud/documents/articlesDocuments.js +109 -469
  9. package/src/cloud/documents/common.js +20 -0
  10. package/src/cloud/documents/eventsDocuments.js +254 -0
  11. package/src/handlers/article_revisions/ArticleRevisionsHandler.js +49 -0
  12. package/src/handlers/article_revisions/CodeHandler.js +90 -0
  13. package/src/handlers/article_revisions/GeneralHandler.js +95 -0
  14. package/src/handlers/article_revisions/LocksHandler.js +54 -0
  15. package/src/handlers/article_revisions/MetaHandler.js +90 -0
  16. package/src/handlers/article_revisions/PublishesHandler.js +90 -0
  17. package/src/handlers/article_revisions/RevertsHandler.js +28 -0
  18. package/src/handlers/article_revisions/TagHandler.js +89 -0
  19. package/src/handlers/article_revisions/UnlocksHandler.js +22 -0
  20. package/src/handlers/article_revisions/VisualHandler.js +84 -0
  21. package/src/handlers/article_revisions/WidgetHandler.js +47 -0
  22. package/src/handlers/articles/ArticlesHandler.js +119 -0
  23. package/src/handlers/articles/ClonesHandler.js +17 -0
  24. package/src/handlers/articles/DeletesHandler.js +68 -0
  25. package/src/handlers/articles/TranslationsHandler.js +103 -0
  26. package/src/handlers/articles/URLsHandler.js +71 -0
  27. package/src/handlers/event_revisions/CodeHandler.js +86 -0
  28. package/src/handlers/event_revisions/EventRevisionsHandler.js +47 -0
  29. package/src/handlers/event_revisions/GeneralHandler.js +93 -0
  30. package/src/handlers/event_revisions/LocksHandler.js +51 -0
  31. package/src/handlers/event_revisions/MetaHandler.js +86 -0
  32. package/src/handlers/event_revisions/PublishesHandler.js +84 -0
  33. package/src/handlers/event_revisions/RevertsHandler.js +26 -0
  34. package/src/handlers/event_revisions/TagHandler.js +85 -0
  35. package/src/handlers/event_revisions/UnlocksHandler.js +22 -0
  36. package/src/handlers/event_revisions/VisualHandler.js +80 -0
  37. package/src/handlers/event_revisions/WidgetHandler.js +41 -0
  38. package/src/handlers/events/ClonesHandler.js +17 -0
  39. package/src/handlers/events/DeletesHandler.js +68 -0
  40. package/src/handlers/events/EventsHandler.js +121 -0
  41. package/src/handlers/events/TranslationsHandler.js +99 -0
  42. package/src/handlers/events/URLsHandler.js +71 -0
  43. package/src/handlers/pages/PagesHandler.js +4 -2
  44. package/src/handlers/pages/TranslationsHandler.js +7 -5
  45. package/src/index.js +44 -0
  46. package/src/routeArticles.js +65 -0
  47. package/src/routeEvents.js +55 -0
  48. package/src/routeStandard.js +4 -0
  49. package/src/setupCloud.js +24 -0
  50. package/src/tests/handlers/article_revisions/CodesHandler.test/edit_form.test.js +56 -0
  51. package/src/tests/handlers/article_revisions/CodesHandler.test/update.test.js +139 -0
  52. package/src/tests/handlers/article_revisions/GeneralHandler.test/edit_form.test.js +65 -0
  53. package/src/tests/handlers/article_revisions/GeneralHandler.test/update.test.js +150 -0
  54. package/src/tests/handlers/article_revisions/MetaHandler.test/edit_form.test.js +57 -0
  55. package/src/tests/handlers/article_revisions/MetaHandler.test/update.test.js +143 -0
  56. package/src/tests/handlers/article_revisions/PageRevisionsHandler.test/create.test.js +75 -0
  57. package/src/tests/handlers/article_revisions/PageRevisionsHandler.test/destroy.test.js +53 -0
  58. package/src/tests/handlers/article_revisions/PublishesHandler.test/create.test.js +136 -0
  59. package/src/tests/handlers/article_revisions/PublishesHandler.test/create_form.test.js +47 -0
  60. package/src/tests/handlers/article_revisions/RevertsHandler.test/create.test.js +80 -0
  61. package/src/tests/handlers/article_revisions/TagHandler.test/edit_form.test.js +69 -0
  62. package/src/tests/handlers/article_revisions/TagHandler.test/update.test.js +143 -0
  63. package/src/tests/handlers/article_revisions/VisualHandler.test.test/edit_form.test.js +55 -0
  64. package/src/tests/handlers/article_revisions/VisualHandler.test.test/update.test.js +131 -0
  65. package/src/tests/handlers/article_revisions/WidgetHandler.test/show.test.js +46 -0
  66. package/src/tests/handlers/article_revisions/WidgetHandler.test/update.test.js +103 -0
  67. package/src/tests/handlers/articles/ArticlesHandler.test/create.test.js +144 -0
  68. package/src/tests/handlers/articles/ArticlesHandler.test/create_form.test.js +41 -0
  69. package/src/tests/handlers/articles/ArticlesHandler.test/index.test.js +49 -0
  70. package/src/tests/handlers/articles/ArticlesHandler.test/show.test.js +105 -0
  71. package/src/tests/handlers/articles/ConesHandler.test/create.test.js +54 -0
  72. package/src/tests/handlers/articles/DeletesHandler.test/create.test.js +110 -0
  73. package/src/tests/handlers/articles/DeletesHandler.test/create_form.test.js +54 -0
  74. package/src/tests/handlers/articles/URLsHandler.test/create.test.js +155 -0
  75. package/src/tests/handlers/articles/URLsHandler.test/create_form.test.js +51 -0
  76. package/src/tests/handlers/event_revisions/CodesHandler.test/edit_form.test.js +56 -0
  77. package/src/tests/handlers/event_revisions/CodesHandler.test/update.test.js +143 -0
  78. package/src/tests/handlers/event_revisions/GeneralHandler.test/edit_form.test.js +69 -0
  79. package/src/tests/handlers/event_revisions/GeneralHandler.test/update.test.js +158 -0
  80. package/src/tests/handlers/event_revisions/MetaHandler.test/edit_form.test.js +57 -0
  81. package/src/tests/handlers/event_revisions/MetaHandler.test/update.test.js +147 -0
  82. package/src/tests/handlers/event_revisions/PageRevisionsHandler.test/create.test.js +75 -0
  83. package/src/tests/handlers/event_revisions/PageRevisionsHandler.test/destroy.test.js +53 -0
  84. package/src/tests/handlers/event_revisions/PublishesHandler.test/create.test.js +136 -0
  85. package/src/tests/handlers/event_revisions/PublishesHandler.test/create_form.test.js +47 -0
  86. package/src/tests/handlers/event_revisions/RevertsHandler.test/create.test.js +80 -0
  87. package/src/tests/handlers/event_revisions/TagHandler.test/edit_form.test.js +69 -0
  88. package/src/tests/handlers/event_revisions/TagHandler.test/update.test.js +147 -0
  89. package/src/tests/handlers/event_revisions/VisualHandler.test.test/edit_form.test.js +55 -0
  90. package/src/tests/handlers/event_revisions/VisualHandler.test.test/update.test.js +135 -0
  91. package/src/tests/handlers/event_revisions/WidgetHandler.test/show.test.js +46 -0
  92. package/src/tests/handlers/event_revisions/WidgetHandler.test/update.test.js +103 -0
  93. package/src/tests/handlers/events/ConesHandler.test/create.test.js +54 -0
  94. package/src/tests/handlers/events/DeletesHandler.test/create.test.js +110 -0
  95. package/src/tests/handlers/events/DeletesHandler.test/create_form.test.js +54 -0
  96. package/src/tests/handlers/events/EventsHandler.test/create.test.js +152 -0
  97. package/src/tests/handlers/events/EventsHandler.test/create_form.test.js +41 -0
  98. package/src/tests/handlers/events/EventsHandler.test/index.test.js +49 -0
  99. package/src/tests/handlers/events/EventsHandler.test/show.test.js +105 -0
  100. package/src/tests/handlers/events/URLsHandler.test/create.test.js +155 -0
  101. package/src/tests/handlers/events/URLsHandler.test/create_form.test.js +51 -0
  102. package/src/tests/handlers/pages/PagesHandler.test/create.test.js +3 -3
  103. package/src/utils.js +46 -0
  104. package/src/views/article_revisions/_nav.ejs +40 -0
  105. package/src/views/article_revisions/codes/edit_form.ejs +39 -0
  106. package/src/views/article_revisions/general/edit_form.ejs +70 -0
  107. package/src/views/article_revisions/locks/create_form.ejs +35 -0
  108. package/src/views/article_revisions/meta/edit_form.ejs +41 -0
  109. package/src/views/article_revisions/publishes/_form.ejs +57 -0
  110. package/src/views/article_revisions/publishes/create_form.ejs +10 -0
  111. package/src/views/article_revisions/tags/edit_form.ejs +64 -0
  112. package/src/views/article_revisions/visuals/edit_form.ejs +42 -0
  113. package/src/views/articles/_form.ejs +86 -0
  114. package/src/views/articles/create_form.ejs +9 -0
  115. package/src/views/articles/deletes/create_form.ejs +55 -0
  116. package/src/views/articles/edit_form.ejs +3 -0
  117. package/src/views/articles/index.ejs +161 -0
  118. package/src/views/articles/show.ejs +281 -0
  119. package/src/views/articles/translations/_form.ejs +77 -0
  120. package/src/views/articles/translations/create_form.ejs +11 -0
  121. package/src/views/articles/urls/create_form.ejs +31 -0
  122. package/src/views/event_revisions/_nav.ejs +40 -0
  123. package/src/views/event_revisions/codes/edit_form.ejs +39 -0
  124. package/src/views/event_revisions/general/edit_form.ejs +72 -0
  125. package/src/views/event_revisions/locks/create_form.ejs +35 -0
  126. package/src/views/event_revisions/meta/edit_form.ejs +41 -0
  127. package/src/views/event_revisions/publishes/_form.ejs +57 -0
  128. package/src/views/event_revisions/publishes/create_form.ejs +10 -0
  129. package/src/views/event_revisions/tags/edit_form.ejs +64 -0
  130. package/src/views/event_revisions/visuals/edit_form.ejs +42 -0
  131. package/src/views/events/_form.ejs +88 -0
  132. package/src/views/events/create_form.ejs +9 -0
  133. package/src/views/events/deletes/create_form.ejs +55 -0
  134. package/src/views/events/edit_form.ejs +3 -0
  135. package/src/views/events/index.ejs +161 -0
  136. package/src/views/events/show.ejs +281 -0
  137. package/src/views/events/translations/_form.ejs +79 -0
  138. package/src/views/events/translations/create_form.ejs +11 -0
  139. package/src/views/events/urls/create_form.ejs +31 -0
  140. package/src/views/page_revisions/locks/create_form.ejs +1 -1
  141. package/test/factory.js +76 -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.16",
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
+ }
@@ -0,0 +1,15 @@
1
+ import RaketaClient from "./RaketaClient";
2
+ import { EventChangesDocument } from "./documents/eventsDocuments";
3
+
4
+ export default class EventChanges extends RaketaClient {
5
+ async all(eventId, locale) {
6
+ const { eventChanges: items } = await this.query(EventChangesDocument, {
7
+ input: {
8
+ id: eventId,
9
+ locale,
10
+ },
11
+ });
12
+
13
+ return items;
14
+ }
15
+ }
@@ -0,0 +1,149 @@
1
+ import RaketaClient from "./RaketaClient";
2
+ import {
3
+ DeleteEventDocument,
4
+ LockEventRevisionDocument,
5
+ MergeEventRevisionDocument,
6
+ EventRevisionDocument,
7
+ EventRevisionsDocument,
8
+ StartEventRevisionDocument,
9
+ UnlockEventRevisionDocument,
10
+ UpdateEventDocument,
11
+ UpdateEventWidgetsDocument,
12
+ ReopenEventChangeDocument,
13
+ } from "./documents/eventsDocuments";
14
+
15
+ export default class EventRevisions extends RaketaClient {
16
+ async all(eventId, locale) {
17
+ const { eventRevisions: items } = await this.query(EventRevisionsDocument, {
18
+ input: {
19
+ id: eventId,
20
+ locale,
21
+ },
22
+ });
23
+
24
+ return items;
25
+ }
26
+
27
+ async find(id, locale) {
28
+ const { eventRevision } = await this.query(EventRevisionDocument, {
29
+ input: {
30
+ id,
31
+ locale,
32
+ },
33
+ });
34
+
35
+ return eventRevision;
36
+ }
37
+
38
+ async publish(id, locale, params, eventParams) {
39
+ const {
40
+ mergeEventRevision: { event, errors },
41
+ } = await this.query(MergeEventRevisionDocument, {
42
+ input: {
43
+ id,
44
+ locale,
45
+ ...params,
46
+ event: { ...eventParams },
47
+ },
48
+ });
49
+
50
+ return { event, errors };
51
+ }
52
+
53
+ async create(eventId, locale) {
54
+ const {
55
+ startEventRevision: { revision, errors, eventErrors },
56
+ } = await this.query(StartEventRevisionDocument, {
57
+ input: {
58
+ id: eventId,
59
+ locale,
60
+ title: "New revision",
61
+ description: "",
62
+ },
63
+ });
64
+
65
+ return { revision, errors, eventErrors };
66
+ }
67
+
68
+ async update(id, locale, params) {
69
+ const {
70
+ updateEvent: { errors, event },
71
+ } = await this.query(UpdateEventDocument, {
72
+ input: {
73
+ id,
74
+ locale,
75
+ event: params,
76
+ },
77
+ });
78
+
79
+ return { event, errors };
80
+ }
81
+
82
+ async updateWidgets(id, locale, widgets) {
83
+ const {
84
+ updateEventWidgets: { errors, event },
85
+ } = await this.query(UpdateEventWidgetsDocument, {
86
+ input: {
87
+ id,
88
+ locale,
89
+ widgets: JSON.stringify(widgets),
90
+ },
91
+ });
92
+
93
+ return { event, errors };
94
+ }
95
+
96
+ async delete(revisionId, locale) {
97
+ const {
98
+ deleteEvent: { event, errors },
99
+ } = await this.query(DeleteEventDocument, {
100
+ input: {
101
+ id: revisionId,
102
+ locale,
103
+ },
104
+ });
105
+
106
+ return { revision: event, errors };
107
+ }
108
+
109
+ async lock(revisionId, locale, message) {
110
+ const {
111
+ lockEventRevision: { revision, errors },
112
+ } = await this.query(LockEventRevisionDocument, {
113
+ input: {
114
+ revisionId,
115
+ message,
116
+ locale,
117
+ },
118
+ });
119
+
120
+ return { revision, errors };
121
+ }
122
+
123
+ async unlock(revisionId, locale) {
124
+ const {
125
+ unlockEventRevision: { revision, errors },
126
+ } = await this.query(UnlockEventRevisionDocument, {
127
+ input: {
128
+ revisionId,
129
+ locale,
130
+ },
131
+ });
132
+
133
+ return { revision, errors };
134
+ }
135
+
136
+ async revert(eventId, version, locale) {
137
+ const {
138
+ reopenEventChange: { revision, errors, eventErrors },
139
+ } = await this.query(ReopenEventChangeDocument, {
140
+ input: {
141
+ eventId,
142
+ locale,
143
+ version,
144
+ },
145
+ });
146
+
147
+ return { revision, errors, eventErrors };
148
+ }
149
+ }
@@ -0,0 +1,135 @@
1
+ import RaketaClient from "./RaketaClient";
2
+ import {
3
+ CreateEventDocument,
4
+ EventByIdDocument,
5
+ EventsDocument,
6
+ CloneEventDocument,
7
+ DeleteEventDocument,
8
+ TranslateEventDocument,
9
+ ChangeEventSlugDocument,
10
+ } from "./documents/eventsDocuments";
11
+ import { toDateTimeInput } from "../utils";
12
+
13
+ export default class Events extends RaketaClient {
14
+ defaults() {
15
+ return {
16
+ visibility: "private",
17
+ layout: "default",
18
+ publish_at: toDateTimeInput(new Date()),
19
+ starts_at: toDateTimeInput(new Date()),
20
+ ends_at: toDateTimeInput(new Date()),
21
+ tags: [],
22
+ categories: [],
23
+ };
24
+ }
25
+
26
+ visibilityOptions() {
27
+ return [
28
+ ["private", "Private"],
29
+ ["public", "Public"],
30
+ ["unlisted", "Unlisted"],
31
+ ["protected", "Password protected"],
32
+ ];
33
+ }
34
+
35
+ async find(id, locale) {
36
+ const { event: item } = await this.query(EventByIdDocument, {
37
+ input: {
38
+ id,
39
+ locale,
40
+ },
41
+ });
42
+
43
+ return item;
44
+ }
45
+
46
+ async list(query, locale) {
47
+ const { events: items } = await this.query(
48
+ EventsDocument,
49
+ this.buildListInput(query, locale)
50
+ );
51
+
52
+ return items;
53
+ }
54
+
55
+ async create(params, locale, eventTypeSlug) {
56
+ params.widgets = JSON.stringify(params.widgets);
57
+ params.settings = JSON.stringify(params.settings);
58
+
59
+ const {
60
+ createEvent: { errors, event },
61
+ } = await this.query(CreateEventDocument, {
62
+ input: {
63
+ locale,
64
+ event: params,
65
+ eventTypeSlug,
66
+ },
67
+ });
68
+
69
+ return { event, errors };
70
+ }
71
+
72
+ async clone(id, locale) {
73
+ const {
74
+ cloneEvent: { errors, event },
75
+ } = await this.query(CloneEventDocument, {
76
+ input: { id: id, locale: locale },
77
+ });
78
+
79
+ return { event, errors };
80
+ }
81
+
82
+ async delete(id, locale, redirect) {
83
+ const input = {
84
+ id,
85
+ locale,
86
+ };
87
+
88
+ if (redirect) {
89
+ input.redirect = redirect;
90
+ }
91
+
92
+ const {
93
+ deleteEvent: { errors, event },
94
+ } = await this.query(DeleteEventDocument, { input });
95
+
96
+ return { event, errors };
97
+ }
98
+
99
+ async translate(id, locale, params) {
100
+ params.widgets = JSON.stringify(params.widgets);
101
+ params.settings = JSON.stringify(params.settings);
102
+
103
+ const {
104
+ translateEvent: { errors, event },
105
+ } = await this.query(TranslateEventDocument, {
106
+ input: {
107
+ locale,
108
+ sourceEventId: id,
109
+ event: params,
110
+ },
111
+ });
112
+
113
+ return { event, errors };
114
+ }
115
+
116
+ async updateSlug(id, slug, locale, redirect) {
117
+ const input = {
118
+ id,
119
+ slug,
120
+ locale,
121
+ };
122
+
123
+ if (redirect) {
124
+ input.redirect = redirect;
125
+ }
126
+
127
+ const {
128
+ changeEventSlug: { errors, event },
129
+ } = await this.query(ChangeEventSlugDocument, {
130
+ input,
131
+ });
132
+
133
+ return { event, errors };
134
+ }
135
+ }