@raketa-cloud/admin 0.0.6 → 0.0.8

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 (114) hide show
  1. package/package.json +3 -2
  2. package/src/Adapter.js +1 -1
  3. package/src/cloud/ChangePageURL.js +24 -0
  4. package/src/cloud/ClonesPage.js +14 -0
  5. package/src/cloud/DeletePage.js +35 -0
  6. package/src/cloud/PageChanges.js +15 -0
  7. package/src/cloud/PageRevisions.js +135 -0
  8. package/src/cloud/PageTranslations.js +22 -0
  9. package/src/cloud/Pages.js +63 -0
  10. package/src/cloud/RaketaClient.js +118 -0
  11. package/src/cloud/Redirects.js +81 -0
  12. package/src/cloud/RevertPageRevision.js +18 -0
  13. package/src/cloud/Settings.js +30 -0
  14. package/src/cloud/Tags.js +80 -0
  15. package/src/cloud/documents/articlesDocuments.js +608 -0
  16. package/src/cloud/documents/categoryDocuments.js +64 -0
  17. package/src/cloud/documents/common.js +84 -0
  18. package/src/cloud/documents/pagesDocuments.js +245 -0
  19. package/src/cloud/documents/redirectsDocuments.js +82 -0
  20. package/src/cloud/documents/settingsDocuments.js +23 -0
  21. package/src/cloud/documents/tagsDocuments.js +63 -0
  22. package/src/handlers/PageCloneHandler.js +17 -0
  23. package/src/handlers/PageCloneHandler.test/create.test.js +55 -0
  24. package/src/handlers/PageDeleteHandler.js +68 -0
  25. package/src/handlers/PageDeleteHandler.test/create.test.js +112 -0
  26. package/src/handlers/PageDeleteHandler.test/create_form.test.js +54 -0
  27. package/src/handlers/PageRevisionsCodesHandler.js +83 -0
  28. package/src/handlers/PageRevisionsCodesHandler.test/edit_form.test.js +56 -0
  29. package/src/handlers/PageRevisionsCodesHandler.test/update.test.js +137 -0
  30. package/src/handlers/PageRevisionsGeneralHandler.js +86 -0
  31. package/src/handlers/PageRevisionsGeneralHandler.test/edit_form.test.js +62 -0
  32. package/src/handlers/PageRevisionsGeneralHandler.test/update.test.js +147 -0
  33. package/src/handlers/PageRevisionsHandler.js +47 -0
  34. package/src/handlers/PageRevisionsHandler.test/create.test.js +67 -0
  35. package/src/handlers/PageRevisionsHandler.test/destroy.test.js +54 -0
  36. package/src/handlers/PageRevisionsLockHandler.js +54 -0
  37. package/src/handlers/PageRevisionsMetaHandler.js +83 -0
  38. package/src/handlers/PageRevisionsMetaHandler.test/edit_form.test.js +57 -0
  39. package/src/handlers/PageRevisionsMetaHandler.test/update.test.js +141 -0
  40. package/src/handlers/PageRevisionsTagsHandler.js +80 -0
  41. package/src/handlers/PageRevisionsTagsHandler.test/edit_form.test.js +69 -0
  42. package/src/handlers/PageRevisionsTagsHandler.test/update.test.js +141 -0
  43. package/src/handlers/PageRevisionsUnlockHandler.js +22 -0
  44. package/src/handlers/PageRevisionsVisualsHandler.js +77 -0
  45. package/src/handlers/PageRevisionsVisualsHandler.test/edit_form.test.js +55 -0
  46. package/src/handlers/PageRevisionsVisualsHandler.test/update.test.js +129 -0
  47. package/src/handlers/PageRevisionsWidgetsHandler.js +41 -0
  48. package/src/handlers/PageRevisionsWidgetsHandler.test/show.test.js +47 -0
  49. package/src/handlers/PageRevisionsWidgetsHandler.test/update.test.js +104 -0
  50. package/src/handlers/PageTranslationsHandler.js +91 -0
  51. package/src/handlers/PageURLsHandler.js +69 -0
  52. package/src/handlers/PageURLsHandler.test/create.test.js +157 -0
  53. package/src/handlers/PageURLsHandler.test/create_form.test.js +51 -0
  54. package/src/handlers/PagesHandler.js +114 -0
  55. package/src/handlers/PagesHandler.test/create.test.js +140 -0
  56. package/src/handlers/PagesHandler.test/create_form.test.js +41 -0
  57. package/src/handlers/PagesHandler.test/index.test.js +49 -0
  58. package/src/handlers/PagesHandler.test/show.test.js +103 -0
  59. package/src/handlers/PublishPageRevisionHandler.js +84 -0
  60. package/src/handlers/PublishPageRevisionHandler.test/create.test.js +136 -0
  61. package/src/handlers/PublishPageRevisionHandler.test/create_form.test.js +47 -0
  62. package/src/handlers/RedirectsHandler.js +124 -0
  63. package/src/handlers/RedirectsHandler.test/create.test.js +84 -0
  64. package/src/handlers/RedirectsHandler.test/create_form.test.js +29 -0
  65. package/src/handlers/RedirectsHandler.test/destroy.test.js +54 -0
  66. package/src/handlers/RedirectsHandler.test/edit_form.test.js +38 -0
  67. package/src/handlers/RedirectsHandler.test/index.test.js +42 -0
  68. package/src/handlers/RedirectsHandler.test/show.test.js +41 -0
  69. package/src/handlers/RedirectsHandler.test/update.test.js +89 -0
  70. package/src/handlers/RevertPageRevisionHandler.js +26 -0
  71. package/src/handlers/RevertPageRevisionHandler.test/create.test.js +80 -0
  72. package/src/handlers/SettingsGeneralHandler.js +13 -0
  73. package/src/handlers/SettingsLayoutHandler.js +51 -0
  74. package/src/handlers/SettingsMetaHandler.js +52 -0
  75. package/src/handlers/TagsHandler.js +113 -0
  76. package/src/helpers/FormBuilder.js +12 -4
  77. package/src/index.js +33 -0
  78. package/src/setupAuthentication.js +3 -0
  79. package/src/styles/application.css +55 -19
  80. package/src/views/layouts/application.ejs +30 -31
  81. package/src/views/layouts/header.ejs +6 -7
  82. package/src/views/page_deletes/create_form.ejs +55 -0
  83. package/src/views/page_lock/create_form.ejs +35 -0
  84. package/src/views/page_publish/_form.ejs +57 -0
  85. package/src/views/page_publish/create_form.ejs +11 -0
  86. package/src/views/page_revisions/_nav.ejs +40 -0
  87. package/src/views/page_revisions/codes/edit_form.ejs +39 -0
  88. package/src/views/page_revisions/general/edit_form.ejs +69 -0
  89. package/src/views/page_revisions/meta/edit_form.ejs +41 -0
  90. package/src/views/page_revisions/tags/edit_form.ejs +64 -0
  91. package/src/views/page_revisions/visuals/edit_form.ejs +42 -0
  92. package/src/views/page_translations/_form.ejs +76 -0
  93. package/src/views/page_translations/create_form.ejs +11 -0
  94. package/src/views/page_urls/create_form.ejs +31 -0
  95. package/src/views/pages/_form.ejs +84 -0
  96. package/src/views/pages/create_form.ejs +9 -0
  97. package/src/views/pages/edit_form.ejs +3 -0
  98. package/src/views/pages/index.ejs +161 -0
  99. package/src/views/pages/show.ejs +281 -0
  100. package/src/views/redirects/_form.ejs +40 -0
  101. package/src/views/redirects/create_form.ejs +9 -0
  102. package/src/views/redirects/edit_form.ejs +9 -0
  103. package/src/views/redirects/index.ejs +75 -1
  104. package/src/views/redirects/show.ejs +60 -0
  105. package/src/views/settings/_nav.ejs +28 -0
  106. package/src/views/settings/general/edit_form.ejs +26 -0
  107. package/src/views/settings/layout/edit_form.ejs +22 -0
  108. package/src/views/settings/meta/edit_form.ejs +38 -0
  109. package/src/views/tags/_form.ejs +39 -0
  110. package/src/views/tags/create_form.ejs +9 -0
  111. package/src/views/tags/edit_form.ejs +9 -0
  112. package/src/views/tags/index.ejs +43 -0
  113. package/test/factory.js +91 -0
  114. package/test/handlersHelper.js +9 -0
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@raketa-cloud/admin",
3
- "version": "0.0.6",
3
+ "version": "0.0.8",
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",
@@ -19,6 +19,7 @@
19
19
  "typescript": "^5.3.3"
20
20
  },
21
21
  "dependencies": {
22
- "ejs": "^3.1.10"
22
+ "ejs": "^3.1.10",
23
+ "graphql-request": "5.1.0"
23
24
  }
24
25
  }
package/src/Adapter.js CHANGED
@@ -1,5 +1,5 @@
1
- import nodePath from "node:path";
2
1
  import { existsSync } from "node:fs";
2
+ import nodePath from "node:path";
3
3
  import ejs from "ejs";
4
4
  import FormBuilder from "./helpers/FormBuilder";
5
5
  import HTMLBuilder from "./helpers/HTMLBuilder";
@@ -0,0 +1,24 @@
1
+ import RaketaClient from "./RaketaClient";
2
+ import { ChangePageSlugDocument } from "./documents/pagesDocuments";
3
+
4
+ export default class ChangePageURL extends RaketaClient {
5
+ async update(id, slug, locale, redirect) {
6
+ const input = {
7
+ id,
8
+ slug,
9
+ locale,
10
+ };
11
+
12
+ if (redirect) {
13
+ input.redirect = redirect;
14
+ }
15
+
16
+ const {
17
+ changePageSlug: { errors, page },
18
+ } = await this.query(ChangePageSlugDocument, {
19
+ input,
20
+ });
21
+
22
+ return { page, errors };
23
+ }
24
+ }
@@ -0,0 +1,14 @@
1
+ import RaketaClient from "./RaketaClient";
2
+ import { ClonePageDocument } from "./documents/pagesDocuments";
3
+
4
+ export default class ClonePage extends RaketaClient {
5
+ async clone(id, locale) {
6
+ const {
7
+ clonePage: { errors, page },
8
+ } = await this.query(ClonePageDocument, {
9
+ input: { id: id, locale: locale },
10
+ });
11
+
12
+ return { page, errors };
13
+ }
14
+ }
@@ -0,0 +1,35 @@
1
+ import RaketaClient from "./RaketaClient";
2
+ import {
3
+ DeletePageDocument,
4
+ PageByIdDocument,
5
+ } from "./documents/pagesDocuments";
6
+
7
+ export default class DeletePage extends RaketaClient {
8
+ async find(id, locale) {
9
+ const { page: item } = await this.query(PageByIdDocument, {
10
+ input: {
11
+ id,
12
+ locale,
13
+ },
14
+ });
15
+
16
+ return item;
17
+ }
18
+
19
+ async delete(id, locale, redirect) {
20
+ const input = {
21
+ id,
22
+ locale,
23
+ };
24
+
25
+ if (redirect) {
26
+ input.redirect = redirect;
27
+ }
28
+
29
+ const {
30
+ deletePage: { errors, page },
31
+ } = await this.query(DeletePageDocument, { input });
32
+
33
+ return { page, errors };
34
+ }
35
+ }
@@ -0,0 +1,15 @@
1
+ import RaketaClient from "./RaketaClient";
2
+ import { PageChangesDocument } from "./documents/pagesDocuments";
3
+
4
+ export default class PageChanges extends RaketaClient {
5
+ async all(pageId, locale) {
6
+ const { pageChanges: items } = await this.query(PageChangesDocument, {
7
+ input: {
8
+ id: pageId,
9
+ locale,
10
+ },
11
+ });
12
+
13
+ return items;
14
+ }
15
+ }
@@ -0,0 +1,135 @@
1
+ import RaketaClient from "./RaketaClient";
2
+ import {
3
+ DeletePageDocument,
4
+ LockPageRevisionDocument,
5
+ MergePageRevisionDocument,
6
+ PageByIdDocument,
7
+ PageRevisionDocument,
8
+ PageRevisionsDocument,
9
+ StartPageRevisionDocument,
10
+ UnlockPageRevisionDocument,
11
+ UpdatePageDocument,
12
+ UpdatePageWidgetsDocument,
13
+ } from "./documents/pagesDocuments";
14
+
15
+ export default class PageRevisions extends RaketaClient {
16
+ async all(pageId, locale) {
17
+ const { pageRevisions: items } = await this.query(PageRevisionsDocument, {
18
+ input: {
19
+ id: pageId,
20
+ locale,
21
+ },
22
+ });
23
+
24
+ return items;
25
+ }
26
+
27
+ async find(id, locale) {
28
+ const { pageRevision } = await this.query(PageRevisionDocument, {
29
+ input: {
30
+ id,
31
+ locale,
32
+ },
33
+ });
34
+
35
+ return pageRevision;
36
+ }
37
+
38
+ async publish(id, locale, params, pageParams) {
39
+ const {
40
+ mergePageRevision: { page, errors },
41
+ } = await this.query(MergePageRevisionDocument, {
42
+ input: {
43
+ id,
44
+ locale,
45
+ ...params,
46
+ page: { ...pageParams },
47
+ },
48
+ });
49
+
50
+ return { page, errors };
51
+ }
52
+
53
+ async create(pageId, locale) {
54
+ const {
55
+ startPageRevision: { revision, errors, pageErrors },
56
+ } = await this.query(StartPageRevisionDocument, {
57
+ input: {
58
+ id: pageId,
59
+ locale,
60
+ title: "New revision",
61
+ description: "",
62
+ },
63
+ });
64
+
65
+ return { revision, errors, pageErrors };
66
+ }
67
+
68
+ async update(id, locale, params) {
69
+ const {
70
+ updatePage: { errors, page },
71
+ } = await this.query(UpdatePageDocument, {
72
+ input: {
73
+ id,
74
+ locale,
75
+ page: params,
76
+ },
77
+ });
78
+
79
+ return { page, errors };
80
+ }
81
+
82
+ async updateWidgets(id, locale, widgets) {
83
+ const {
84
+ updatePageWidgets: { errors, page },
85
+ } = await this.query(UpdatePageWidgetsDocument, {
86
+ input: {
87
+ id,
88
+ locale,
89
+ widgets: JSON.stringify(widgets),
90
+ },
91
+ });
92
+
93
+ return { page, errors };
94
+ }
95
+
96
+ async delete(revisionId, locale) {
97
+ const {
98
+ deletePage: { page, errors },
99
+ } = await this.query(DeletePageDocument, {
100
+ input: {
101
+ id: revisionId,
102
+ locale,
103
+ },
104
+ });
105
+
106
+ return { revision: page, errors };
107
+ }
108
+
109
+ async lock(revisionId, locale, message) {
110
+ const {
111
+ lockPageRevision: { revision, errors },
112
+ } = await this.query(LockPageRevisionDocument, {
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
+ unlockPageRevision: { revision, errors },
126
+ } = await this.query(UnlockPageRevisionDocument, {
127
+ input: {
128
+ revisionId,
129
+ locale,
130
+ },
131
+ });
132
+
133
+ return { revision, errors };
134
+ }
135
+ }
@@ -0,0 +1,22 @@
1
+ import RaketaClient from "./RaketaClient";
2
+ import { TranslatePageDocument } from "./documents/pagesDocuments";
3
+
4
+ export default class PageTranslations extends RaketaClient {
5
+ async create(locale, sourcePageId, params) {
6
+ console.log(params);
7
+ params.widgets = JSON.stringify(params.widgets);
8
+ params.settings = JSON.stringify(params.settings);
9
+ console.log(params);
10
+ const {
11
+ translatePage: { errors, page },
12
+ } = await this.query(TranslatePageDocument, {
13
+ input: {
14
+ locale,
15
+ sourcePageId,
16
+ page: params,
17
+ },
18
+ });
19
+
20
+ return { page, errors };
21
+ }
22
+ }
@@ -0,0 +1,63 @@
1
+ import RaketaClient from "./RaketaClient";
2
+ import {
3
+ CreatePageDocument,
4
+ PageByIdDocument,
5
+ PagesDocument,
6
+ } from "./documents/pagesDocuments";
7
+
8
+ export default class Pages extends RaketaClient {
9
+ defaults() {
10
+ return {
11
+ visibility: "private",
12
+ layout: "default",
13
+ tags: [],
14
+ categories: [],
15
+ };
16
+ }
17
+
18
+ visibilityOptions() {
19
+ return [
20
+ ["private", "Private"],
21
+ ["public", "Public"],
22
+ ["unlisted", "Unlisted"],
23
+ ["protected", "Password protected"],
24
+ ];
25
+ }
26
+
27
+ async find(id, locale) {
28
+ const { page: item } = await this.query(PageByIdDocument, {
29
+ input: {
30
+ id,
31
+ locale,
32
+ },
33
+ });
34
+
35
+ return item;
36
+ }
37
+
38
+ async list(query, locale) {
39
+ const { pages: items } = await this.query(
40
+ PagesDocument,
41
+ this.buildListInput(query, locale)
42
+ );
43
+
44
+ return items;
45
+ }
46
+
47
+ async create(params, locale, pageTypeSlug) {
48
+ params.widgets = JSON.stringify(params.widgets);
49
+ params.settings = JSON.stringify(params.settings);
50
+
51
+ const {
52
+ createPage: { errors, page },
53
+ } = await this.query(CreatePageDocument, {
54
+ input: {
55
+ locale,
56
+ page: params,
57
+ pageTypeSlug,
58
+ },
59
+ });
60
+
61
+ return { page, errors };
62
+ }
63
+ }
@@ -0,0 +1,118 @@
1
+ import { request } from "graphql-request";
2
+
3
+ function isObjectEmpty(obj) {
4
+ for (const key in obj) {
5
+ if (Object.hasOwn(obj, key)) return false;
6
+ }
7
+
8
+ return true;
9
+ }
10
+
11
+ export default class RaketaClient {
12
+ constructor(getConfig, token) {
13
+ this.getConfig = getConfig;
14
+ this.token = token;
15
+ }
16
+
17
+ gqlRequest(url, query, variables = {}, headers = {}) {
18
+ return request({
19
+ url,
20
+ document: query,
21
+ variables: variables,
22
+ requestHeaders: headers,
23
+ });
24
+ }
25
+
26
+ query(query, variables = {}) {
27
+ return this.gqlRequest(this.getConfig().instanceURL, query, variables, {
28
+ "x-raketa-project": this.getConfig().project,
29
+ "x-raketa-service": this.getConfig().service,
30
+ "x-raketa-identity": this.token,
31
+ });
32
+ }
33
+
34
+ formatErrors(errors, generalErrorTo = null) {
35
+ const result = {};
36
+
37
+ errors.forEach((error) => {
38
+ const key =
39
+ generalErrorTo && error.key === "generalError"
40
+ ? generalErrorTo
41
+ : error.key;
42
+
43
+ if (!result[key]) {
44
+ result[key] = [];
45
+ }
46
+
47
+ result[key].push(error.message);
48
+ });
49
+
50
+ Object.keys(result).forEach((key) => {
51
+ result[key] = result[key].join(", ");
52
+ });
53
+
54
+ return { ...result };
55
+ }
56
+
57
+ buildFiltersInput(query) {
58
+ if (!query) {
59
+ return {};
60
+ }
61
+
62
+ const { page, ...rest } = query;
63
+
64
+ if (isObjectEmpty(rest)) {
65
+ return {};
66
+ }
67
+ const filters = {};
68
+
69
+ for (const key in rest) {
70
+ const stringKey = key.toString();
71
+
72
+ if (stringKey.startsWith("f:") && rest[key]) {
73
+ filters[stringKey.slice(2)] = rest[key];
74
+ }
75
+ }
76
+
77
+ return filters;
78
+ }
79
+
80
+ buildOrderInput(query) {
81
+ const orderBy = query.order_by || "";
82
+
83
+ if (!orderBy) {
84
+ return null;
85
+ }
86
+
87
+ return {
88
+ field: orderBy,
89
+ direction: query.order_direction || "ASC",
90
+ };
91
+ }
92
+
93
+ buildPaginationInput(query) {
94
+ const page = Number.parseInt(query.page || "1", 10);
95
+
96
+ return { page: page, pageSize: 25 };
97
+ }
98
+
99
+ buildListInput(query, locale = null) {
100
+ const orderBy = this.buildOrderInput(query);
101
+ const variables = {
102
+ input: {
103
+ pagination: this.buildPaginationInput(query),
104
+ filters: this.buildFiltersInput(query),
105
+ },
106
+ };
107
+
108
+ if (orderBy) {
109
+ variables.input.orderBy = orderBy;
110
+ }
111
+
112
+ if (locale) {
113
+ variables.input.locale = locale;
114
+ }
115
+
116
+ return variables;
117
+ }
118
+ }
@@ -0,0 +1,81 @@
1
+ import RaketaClient from "./RaketaClient";
2
+ import {
3
+ RedirectByIdDocument,
4
+ RedirectChangesDocument,
5
+ RedirectsDocument,
6
+ CreateRedirectDocument,
7
+ UpdateRedirectDocument,
8
+ DeleteRedirectDocument,
9
+ } from "./documents/redirectsDocuments";
10
+
11
+ export default class Redirects extends RaketaClient {
12
+ async list(query) {
13
+ const { redirects: items } = await this.query(
14
+ RedirectsDocument,
15
+ this.buildListInput(query)
16
+ );
17
+
18
+ return items;
19
+ }
20
+
21
+ async find(id) {
22
+ const { redirect: item } = await this.query(RedirectByIdDocument, {
23
+ input: {
24
+ id,
25
+ },
26
+ });
27
+
28
+ return item;
29
+ }
30
+
31
+ async create(params) {
32
+ const {
33
+ createRedirect: { errors, redirect },
34
+ } = await this.query(CreateRedirectDocument, {
35
+ input: {
36
+ redirect: params,
37
+ },
38
+ });
39
+
40
+ return { redirect, errors };
41
+ }
42
+
43
+ async update(id, params) {
44
+ const {
45
+ updateRedirect: { errors, redirect },
46
+ } = await this.query(UpdateRedirectDocument, {
47
+ input: {
48
+ id,
49
+ redirect: params,
50
+ },
51
+ });
52
+
53
+ return { redirect, errors };
54
+ }
55
+
56
+ async delete(id) {
57
+ const {
58
+ deleteRedirect: { errors, redirect },
59
+ } = await this.query(DeleteRedirectDocument, {
60
+ input: {
61
+ id,
62
+ },
63
+ });
64
+
65
+ return { redirect, errors };
66
+ }
67
+
68
+ async history(id) {
69
+ const { redirectChanges: items } = await this.query(
70
+ RedirectChangesDocument,
71
+ {
72
+ input: {
73
+ id,
74
+ locale: "en",
75
+ },
76
+ }
77
+ );
78
+
79
+ return items;
80
+ }
81
+ }
@@ -0,0 +1,18 @@
1
+ import RaketaClient from "./RaketaClient";
2
+ import { ReopenPageChangeDocument } from "./documents/pagesDocuments";
3
+
4
+ export default class RevertPageRevision extends RaketaClient {
5
+ async create(pageId, version, locale) {
6
+ const {
7
+ reopenPageChange: { revision, errors, pageErrors },
8
+ } = await this.query(ReopenPageChangeDocument, {
9
+ input: {
10
+ pageId,
11
+ locale,
12
+ version,
13
+ },
14
+ });
15
+
16
+ return { revision, errors, pageErrors };
17
+ }
18
+ }
@@ -0,0 +1,30 @@
1
+ import RaketaClient from "./RaketaClient";
2
+ import {
3
+ UpdateSettingDocument,
4
+ SettingDocument,
5
+ } from "./documents/settingsDocuments";
6
+
7
+ export default class Settings extends RaketaClient {
8
+ async find(locale) {
9
+ const {
10
+ setting: { value },
11
+ } = await this.query(SettingDocument, {
12
+ locale,
13
+ });
14
+
15
+ return value;
16
+ }
17
+
18
+ async update(locale, params) {
19
+ const {
20
+ updateSetting: { errors, setting },
21
+ } = await this.query(UpdateSettingDocument, {
22
+ input: {
23
+ locale,
24
+ setting: { value: JSON.stringify(params) },
25
+ },
26
+ });
27
+
28
+ return { setting, errors };
29
+ }
30
+ }
@@ -0,0 +1,80 @@
1
+ import RaketaClient from "./RaketaClient";
2
+ import {
3
+ CreateTagDocument,
4
+ DeleteTagDocument,
5
+ TagByIdDocument,
6
+ TagsDocument,
7
+ UpdateTagDocument,
8
+ } from "./documents/tagsDocuments";
9
+
10
+ export default class Tags extends RaketaClient {
11
+ async list(query, locale) {
12
+ const { tags: items } = await this.query(
13
+ TagsDocument,
14
+ this.buildListInput(query, locale)
15
+ );
16
+
17
+ return items;
18
+ }
19
+
20
+ async all(locale) {
21
+ const { tags: items } = await this.query(TagsDocument, {
22
+ input: {
23
+ locale: locale,
24
+ },
25
+ });
26
+
27
+ return items;
28
+ }
29
+
30
+ async find(id, locale) {
31
+ const { tag: item } = await this.query(TagByIdDocument, {
32
+ input: {
33
+ id,
34
+ locale,
35
+ },
36
+ });
37
+
38
+ return item;
39
+ }
40
+
41
+ async create(params, locale) {
42
+ const {
43
+ createTag: { errors, tag },
44
+ } = await this.query(CreateTagDocument, {
45
+ input: {
46
+ locale,
47
+ tag: params,
48
+ },
49
+ });
50
+
51
+ return { tag, errors };
52
+ }
53
+
54
+ async update(id, params, locale) {
55
+ const {
56
+ updateTag: { errors, tag },
57
+ } = await this.query(UpdateTagDocument, {
58
+ input: {
59
+ id,
60
+ locale,
61
+ tag: params,
62
+ },
63
+ });
64
+
65
+ return { tag, errors };
66
+ }
67
+
68
+ async delete(id, locale) {
69
+ const {
70
+ deleteTag: { errors, tag },
71
+ } = await this.query(DeleteTagDocument, {
72
+ input: {
73
+ id,
74
+ locale,
75
+ },
76
+ });
77
+
78
+ return { tag, errors };
79
+ }
80
+ }