@webbio/strapi-plugin-page-builder 0.12.1-platform → 0.12.2-platform

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 (173) hide show
  1. package/README.md +166 -166
  2. package/admin/src/api/collection-type.ts +111 -111
  3. package/admin/src/api/entity-relation.ts +42 -42
  4. package/admin/src/api/has-page-relation.ts +37 -37
  5. package/admin/src/api/has-platform-relation.ts +40 -40
  6. package/admin/src/api/page-type-relation.ts +41 -41
  7. package/admin/src/api/platform-page-types.ts +45 -45
  8. package/admin/src/api/platform-relation.ts +42 -42
  9. package/admin/src/api/platform.ts +35 -35
  10. package/admin/src/api/search-filtered-entity.ts +114 -114
  11. package/admin/src/api/template.ts +39 -39
  12. package/admin/src/components/Combobox/index.tsx +83 -83
  13. package/admin/src/components/Combobox/react-select-custom-styles.tsx +121 -121
  14. package/admin/src/components/Combobox/styles.ts +46 -46
  15. package/admin/src/components/ConfirmModal/index.tsx +90 -90
  16. package/admin/src/components/EditView/CollectionTypeSearch/index.tsx +127 -127
  17. package/admin/src/components/EditView/CollectionTypeSettings/CreatePageButton/index.tsx +149 -149
  18. package/admin/src/components/EditView/CollectionTypeSettings/CreatePageButton/styles.ts +19 -19
  19. package/admin/src/components/EditView/CollectionTypeSettings/index.tsx +82 -82
  20. package/admin/src/components/EditView/Details/index.tsx +48 -48
  21. package/admin/src/components/EditView/Details/styles.ts +51 -51
  22. package/admin/src/components/EditView/PageSettings/index.tsx +124 -124
  23. package/admin/src/components/EditView/Platform/platform-select.tsx +30 -30
  24. package/admin/src/components/EditView/Template/TemplateConfirmModal/index.tsx +36 -36
  25. package/admin/src/components/EditView/Template/TemplateSelect/index.tsx +70 -70
  26. package/admin/src/components/EditView/Template/TemplateSelect/use-template-modules.ts +41 -41
  27. package/admin/src/components/EditView/index.tsx +35 -35
  28. package/admin/src/components/EditView/page-type-select.tsx +32 -32
  29. package/admin/src/components/EditView/wrapper.tsx +41 -41
  30. package/admin/src/components/GlobalPlatformSelect/index.tsx +40 -40
  31. package/admin/src/components/GlobalPlatformSelect/styles.ts +27 -27
  32. package/admin/src/components/Initializer/index.tsx +24 -24
  33. package/admin/src/components/PageFilters/PageTypeFilter/index.tsx +39 -39
  34. package/admin/src/components/PageFilters/PlatformFilter/index.tsx +32 -32
  35. package/admin/src/components/PageFilters/filters.tsx +189 -189
  36. package/admin/src/components/PageFilters/index.tsx +35 -35
  37. package/admin/src/components/PageTypeEditView/TemplatePlatformSelect/index.tsx +76 -76
  38. package/admin/src/components/PageTypeEditView/index.tsx +53 -53
  39. package/admin/src/components/PlatformFilteredSelectField/InputIcon/index.tsx +23 -23
  40. package/admin/src/components/PlatformFilteredSelectField/Multi/index.tsx +210 -210
  41. package/admin/src/components/PlatformFilteredSelectField/Single/index.tsx +197 -197
  42. package/admin/src/components/PlatformFilteredSelectField/hooks/useRelationLoad.tsx +128 -128
  43. package/admin/src/components/PlatformFilteredSelectField/index.tsx +85 -85
  44. package/admin/src/components/PlatformFilteredSelectField/styles.tsx +77 -77
  45. package/admin/src/components/PlatformFilteredSelectField/utils/get-translations.ts +3 -3
  46. package/admin/src/components/PlatformFilteredSelectField/utils/relation-helper.ts +147 -147
  47. package/admin/src/components/PluginIcon/index.tsx +94 -94
  48. package/admin/src/components/StrapiCore/admin/admin/src/content-manager/components/Relations/RelationInput.tsx +689 -689
  49. package/admin/src/components/StrapiCore/admin/admin/src/content-manager/components/Relations/RelationInputDataManager.tsx +6 -6
  50. package/admin/src/components/StrapiCore/admin/admin/src/content-manager/components/Relations/useRelation.ts +170 -170
  51. package/admin/src/components/StrapiCore/admin/admin/src/content-manager/components/Relations/utils/getRelationLink.ts +5 -5
  52. package/admin/src/components/StrapiCore/admin/admin/src/content-manager/components/Relations/utils/normalizeRelations.ts +52 -52
  53. package/admin/src/components/StrapiCore/admin/admin/src/content-manager/constants/attributes.ts +3 -3
  54. package/admin/src/components/StrapiCore/admin/admin/src/content-manager/hooks/useDragAndDrop.ts +253 -253
  55. package/admin/src/components/StrapiCore/admin/admin/src/content-manager/hooks/useKeyboardDragAndDrop.ts +96 -96
  56. package/admin/src/components/StrapiCore/admin/admin/src/content-manager/hooks/usePrev.ts +11 -11
  57. package/admin/src/components/StrapiCore/admin/admin/src/content-manager/utils/dragAndDrop.ts +8 -8
  58. package/admin/src/components/StrapiCore/admin/admin/src/content-manager/utils/paths.ts +29 -29
  59. package/admin/src/components/StrapiCore/admin/admin/src/content-manager/utils/refs.ts +19 -19
  60. package/admin/src/components/StrapiCore/admin/admin/src/content-manager/utils/translations.ts +3 -3
  61. package/admin/src/components/StrapiCore/content-manager/shared/contracts/collection-types.ts +300 -300
  62. package/admin/src/components/StrapiCore/content-manager/shared/contracts/components.ts +72 -72
  63. package/admin/src/components/StrapiCore/content-manager/shared/contracts/content-types.ts +116 -116
  64. package/admin/src/components/StrapiCore/content-manager/shared/contracts/index.ts +8 -8
  65. package/admin/src/components/StrapiCore/content-manager/shared/contracts/init.ts +22 -22
  66. package/admin/src/components/StrapiCore/content-manager/shared/contracts/relations.ts +80 -80
  67. package/admin/src/components/StrapiCore/content-manager/shared/contracts/review-workflows.ts +88 -88
  68. package/admin/src/components/StrapiCore/content-manager/shared/contracts/single-types.ts +112 -112
  69. package/admin/src/components/StrapiCore/content-manager/shared/contracts/uid.ts +48 -48
  70. package/admin/src/components/StrapiCore/content-manager/shared/index.ts +1 -1
  71. package/admin/src/constants.ts +3 -3
  72. package/admin/src/index.tsx +101 -101
  73. package/admin/src/middlewares/index.tsx +37 -37
  74. package/admin/src/pages/app/index.tsx +14 -14
  75. package/admin/src/pluginId.ts +5 -5
  76. package/admin/src/translations/en.json +9 -9
  77. package/admin/src/translations/nl.json +9 -9
  78. package/admin/src/utils/findDomElement.ts +6 -6
  79. package/admin/src/utils/findElementParent.ts +20 -20
  80. package/admin/src/utils/getObjectFromFormName.ts +42 -42
  81. package/admin/src/utils/getRequestUrl.ts +11 -11
  82. package/admin/src/utils/getTrad.ts +5 -5
  83. package/admin/src/utils/hooks/useDebounce.ts +17 -17
  84. package/admin/src/utils/hooks/useDefaultPlatformFromLocalStorage.ts +61 -61
  85. package/admin/src/utils/hooks/useGetLocaleFromUrl.ts +9 -9
  86. package/admin/src/utils/hooks/useHideOverviewFilterTags.ts +34 -34
  87. package/admin/src/utils/hooks/usePlatformFormData.ts +64 -64
  88. package/admin/src/utils/hooks/usePrevious.ts +12 -12
  89. package/admin/src/utils/sanitizeModules.ts +93 -93
  90. package/custom.d.ts +6 -6
  91. package/dist/package.json +1 -1
  92. package/dist/server/bootstrap.js +1 -0
  93. package/dist/server/graphql/page-by-path.js +9 -9
  94. package/dist/server/graphql/page-by-slug.js +89 -0
  95. package/dist/server/graphql/pages-by-uid.js +5 -5
  96. package/dist/server/services/private-content/graphql/index.js +27 -27
  97. package/dist/server/services/private-content/graphql/types/index.js +74 -74
  98. package/dist/server/utils/graphql.js +100 -0
  99. package/dist/server/utils/paginationValidation.js +31 -0
  100. package/dist/tsconfig.server.tsbuildinfo +1 -1
  101. package/package.json +78 -78
  102. package/server/bootstrap/collection-type-lifecycles.ts +47 -47
  103. package/server/bootstrap/permissions.ts +161 -161
  104. package/server/bootstrap.ts +261 -260
  105. package/server/config/index.ts +4 -4
  106. package/server/content-types/index.ts +7 -7
  107. package/server/content-types/user-category/schema.json +23 -23
  108. package/server/controllers/collection-types.ts +32 -32
  109. package/server/controllers/index.ts +19 -19
  110. package/server/controllers/page-type.ts +18 -18
  111. package/server/controllers/page.ts +9 -9
  112. package/server/controllers/platform.ts +21 -21
  113. package/server/controllers/private-content.ts +17 -17
  114. package/server/controllers/sitemap.ts +32 -32
  115. package/server/controllers/template.ts +16 -16
  116. package/server/controllers/user-category.ts +3 -3
  117. package/server/destroy.ts +5 -5
  118. package/server/graphql/index.ts +9 -9
  119. package/server/graphql/page-by-path.ts +132 -132
  120. package/server/graphql/page-type.ts +67 -67
  121. package/server/graphql/pages-by-uid.ts +89 -89
  122. package/server/index.ts +23 -23
  123. package/server/middlewares/index.ts +1 -1
  124. package/server/policies/index.ts +5 -5
  125. package/server/policies/isAuthorizedPage.ts +11 -11
  126. package/server/register.ts +22 -22
  127. package/server/routes/index.ts +115 -115
  128. package/server/routes/user-category.ts +3 -3
  129. package/server/schema/page-end.json +96 -96
  130. package/server/schema/page-start.json +87 -87
  131. package/server/schema/page-type-end.json +53 -53
  132. package/server/schema/page-type-start.json +38 -38
  133. package/server/schema/platform-start.json +21 -21
  134. package/server/schema/template-end.json +40 -40
  135. package/server/schema/template-start.json +35 -35
  136. package/server/services/builder.ts +232 -232
  137. package/server/services/collection-types.ts +95 -95
  138. package/server/services/email.ts +127 -127
  139. package/server/services/index.ts +23 -23
  140. package/server/services/page-type.ts +30 -30
  141. package/server/services/page.ts +24 -24
  142. package/server/services/platform.ts +30 -30
  143. package/server/services/private-content/components/admin-email.json +22 -22
  144. package/server/services/private-content/components/email.json +22 -22
  145. package/server/services/private-content/components/platform-email.json +30 -30
  146. package/server/services/private-content/constants/index.ts +13 -13
  147. package/server/services/private-content/graphql/index.ts +88 -88
  148. package/server/services/private-content/graphql/resolvers/findOnePage.ts +40 -40
  149. package/server/services/private-content/graphql/resolvers/findPage.ts +45 -45
  150. package/server/services/private-content/graphql/resolvers/forgot-password.ts +34 -34
  151. package/server/services/private-content/graphql/resolvers/login.ts +56 -56
  152. package/server/services/private-content/graphql/resolvers/register.ts +78 -78
  153. package/server/services/private-content/graphql/resolvers/reset-password.ts +44 -44
  154. package/server/services/private-content/graphql/types/index.ts +96 -96
  155. package/server/services/private-content/index.ts +95 -95
  156. package/server/services/private-content/mail-template/txtMail.email.template.text.ts +6 -6
  157. package/server/services/private-content/page.ts +20 -20
  158. package/server/services/private-content/platform.ts +19 -19
  159. package/server/services/private-content/schemas/index.ts +28 -28
  160. package/server/services/private-content/user.ts +197 -197
  161. package/server/services/sitemap.ts +83 -83
  162. package/server/services/template.ts +13 -13
  163. package/server/services/user-category.ts +3 -3
  164. package/server/utils/filter-underscore-arguments.ts +12 -12
  165. package/server/utils/reload-strapi-on-load.ts +13 -13
  166. package/server/utils/strapi.ts +50 -50
  167. package/shared/utils/constants.ts +8 -8
  168. package/shared/utils/sleep.ts +1 -1
  169. package/strapi-admin.js +3 -3
  170. package/strapi-server.js +3 -3
  171. package/tsconfig.json +20 -20
  172. package/tsconfig.server.json +25 -25
  173. package/dist/server/content-types/user-categories/schema.json +0 -18
@@ -0,0 +1,89 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ const filter_underscore_arguments_1 = require("../utils/filter-underscore-arguments");
4
+ const constants_1 = require("../../shared/utils/constants");
5
+ const getPageBySlug = (strapi) => {
6
+ const typeDefs = () => {
7
+ return `
8
+ extend type Page {
9
+ collectionType: GenericMorph
10
+ }
11
+
12
+ type Query {
13
+ getPageBySlug(path: String, _domain: String, _locale: String, _publicationState: PublicationState): PageEntity
14
+ }
15
+
16
+ `;
17
+ };
18
+ const resolvers = (strapi) => {
19
+ const { transformArgs } = strapi.plugin('graphql').service('builders').utils;
20
+ return {
21
+ Query: {
22
+ getPageBySlug: {
23
+ resolve: async (_parent, args, ctx) => {
24
+ var _a;
25
+ try {
26
+ const filteredArgs = {
27
+ ...(0, filter_underscore_arguments_1.filterUnderscoreArguments)(args),
28
+ platform: { domain: args._domain }
29
+ };
30
+ const { toEntityResponse } = strapi.plugin('graphql').service('format').returnTypes;
31
+ const getPage = async () => {
32
+ var _a, _b, _c;
33
+ const transformedArgs = transformArgs(filteredArgs, {
34
+ contentType: strapi.contentTypes[constants_1.PAGE_UID],
35
+ usePagination: false
36
+ });
37
+ const results = await ((_a = strapi.entityService) === null || _a === void 0 ? void 0 : _a.findMany(constants_1.PAGE_UID, {
38
+ filters: filteredArgs,
39
+ locale: args._locale,
40
+ publicationState: args._publicationState,
41
+ populate: '*'
42
+ }));
43
+ const entityResponse = toEntityResponse((results === null || results === void 0 ? void 0 : results[0]) || {}, {
44
+ args: transformedArgs,
45
+ resourceUID: constants_1.PAGE_UID
46
+ });
47
+ if (!(entityResponse === null || entityResponse === void 0 ? void 0 : entityResponse.value) || Object.keys(entityResponse.value).length === 0) {
48
+ throw new Error(ctx.koaContext.response.message);
49
+ }
50
+ const collectionTypeDataFilter = (_c = (_b = entityResponse === null || entityResponse === void 0 ? void 0 : entityResponse.value) === null || _b === void 0 ? void 0 : _b.collectionTypeData) === null || _c === void 0 ? void 0 : _c.filter(Boolean);
51
+ const collectionType = collectionTypeDataFilter.length === 1 ? collectionTypeDataFilter === null || collectionTypeDataFilter === void 0 ? void 0 : collectionTypeDataFilter[0] : null;
52
+ const addedAttributes = {
53
+ collectionType: collectionType
54
+ };
55
+ const result = {
56
+ ...entityResponse.value,
57
+ ...addedAttributes
58
+ };
59
+ return result;
60
+ };
61
+ const results = await getPage();
62
+ if (((_a = Object.values(results)) === null || _a === void 0 ? void 0 : _a.filter(Boolean).length) > 0) {
63
+ return results;
64
+ }
65
+ else {
66
+ throw new Error(ctx.koaContext.response.message);
67
+ }
68
+ }
69
+ catch (error) {
70
+ console.log('Error in getPageBySlug:', error);
71
+ throw new Error(ctx.koaContext.response.message);
72
+ }
73
+ }
74
+ }
75
+ }
76
+ };
77
+ };
78
+ const resolversConfig = {
79
+ 'Query.getPageBySlug': {
80
+ auth: false
81
+ }
82
+ };
83
+ return {
84
+ typeDefs: typeDefs(),
85
+ resolvers: resolvers(strapi),
86
+ resolversConfig
87
+ };
88
+ };
89
+ exports.default = getPageBySlug;
@@ -5,11 +5,11 @@ const getPageInfoFromUID = (strapi) => {
5
5
  const collectionTypes = strapi.service('plugin::page-builder.collection-types').withPageMorph();
6
6
  const typeDefs = () => {
7
7
  const entityInfo = collectionTypes.map((collectionType) => {
8
- return `
9
- type Query {
10
- get${collectionType.type}Pages(filters: ${collectionType.type}FiltersInput, pagination: PaginationArg, publicationState: PublicationState, sort: [String]): ${collectionType.type}EntityResponseCollection
11
- }
12
-
8
+ return `
9
+ type Query {
10
+ get${collectionType.type}Pages(filters: ${collectionType.type}FiltersInput, pagination: PaginationArg, publicationState: PublicationState, sort: [String]): ${collectionType.type}EntityResponseCollection
11
+ }
12
+
13
13
  `;
14
14
  });
15
15
  return `${entityInfo}`;
@@ -11,33 +11,33 @@ const findPage_1 = require("./resolvers/findPage");
11
11
  const extendGraphQL = () => {
12
12
  const extensionService = strapi.plugin('graphql').service('extension');
13
13
  const extension = () => ({
14
- typeDefs: `
15
- ${types_1.RegisterInput}
16
-
17
- ${types_1.LoginInput}
18
-
19
- ${types_1.RegisterResponse}
20
-
21
- ${types_1.LoginResponse}
22
-
23
- ${types_1.User}
24
-
25
- ${types_1.Mutations}
26
-
27
- ${types_1.ForgotPasswordInput}
28
-
29
- ${types_1.ForgotPasswordResponse}
30
-
31
- ${types_1.ResetPasswordInput}
32
-
33
- ${types_1.ResetPasswordResponse}
34
-
35
- ${types_1.ResetPasswordInput}
36
-
37
- ${types_1.ResetPasswordResponse}
38
-
39
- ${types_1.Queries}
40
-
14
+ typeDefs: `
15
+ ${types_1.RegisterInput}
16
+
17
+ ${types_1.LoginInput}
18
+
19
+ ${types_1.RegisterResponse}
20
+
21
+ ${types_1.LoginResponse}
22
+
23
+ ${types_1.User}
24
+
25
+ ${types_1.Mutations}
26
+
27
+ ${types_1.ForgotPasswordInput}
28
+
29
+ ${types_1.ForgotPasswordResponse}
30
+
31
+ ${types_1.ResetPasswordInput}
32
+
33
+ ${types_1.ResetPasswordResponse}
34
+
35
+ ${types_1.ResetPasswordInput}
36
+
37
+ ${types_1.ResetPasswordResponse}
38
+
39
+ ${types_1.Queries}
40
+
41
41
  `,
42
42
  resolvers: {
43
43
  Query: {
@@ -1,89 +1,89 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.Queries = exports.Mutations = exports.ResetPasswordResponse = exports.ResetPasswordInput = exports.ResetPassword = exports.User = exports.ForgotPasswordResponse = exports.RegisterResponse = exports.LoginResponse = exports.RegisterInput = exports.ForgotPasswordInput = exports.LoginInput = void 0;
4
- exports.LoginInput = `
5
- input LoginInput {
6
- email: String!
7
- password: String!
8
- domain: String!
9
- }
4
+ exports.LoginInput = `
5
+ input LoginInput {
6
+ email: String!
7
+ password: String!
8
+ domain: String!
9
+ }
10
10
  `;
11
- exports.ForgotPasswordInput = `
12
- input ForgotPasswordInput {
13
- email: String!
14
- domain: String!
11
+ exports.ForgotPasswordInput = `
12
+ input ForgotPasswordInput {
13
+ email: String!
14
+ domain: String!
15
15
  }`;
16
- exports.RegisterInput = `
17
- input RegisterInput {
18
- email: String!
19
- password: String!
20
- firstName: String
21
- lastName: String
22
- company: String
23
- jobTitle: String
24
- address: String
25
- postalCode: String
26
- city: String
27
- country: String
28
- phone: String
29
- subscribeToNewsletter: Boolean
30
- categories: [ID]
31
- domain: String!
32
- }
16
+ exports.RegisterInput = `
17
+ input RegisterInput {
18
+ email: String!
19
+ password: String!
20
+ firstName: String
21
+ lastName: String
22
+ company: String
23
+ jobTitle: String
24
+ address: String
25
+ postalCode: String
26
+ city: String
27
+ country: String
28
+ phone: String
29
+ subscribeToNewsletter: Boolean
30
+ categories: [ID]
31
+ domain: String!
32
+ }
33
33
  `;
34
- exports.LoginResponse = `
35
- type LoginResponse {
36
- jwt: String
37
- user: User
38
- }
34
+ exports.LoginResponse = `
35
+ type LoginResponse {
36
+ jwt: String
37
+ user: User
38
+ }
39
39
  `;
40
- exports.RegisterResponse = `
41
- type RegisterResponse {
42
- user: User
43
- }
40
+ exports.RegisterResponse = `
41
+ type RegisterResponse {
42
+ user: User
43
+ }
44
44
  `;
45
- exports.ForgotPasswordResponse = `
46
- type ForgotPasswordResponse {
47
- message: String
48
- }
45
+ exports.ForgotPasswordResponse = `
46
+ type ForgotPasswordResponse {
47
+ message: String
48
+ }
49
49
  `;
50
- exports.User = `
51
- type User {
52
- id: ID!
53
- email: String!
54
- confirmed: Boolean
55
- blocked: Boolean
56
- activated: Boolean
57
- }
50
+ exports.User = `
51
+ type User {
52
+ id: ID!
53
+ email: String!
54
+ confirmed: Boolean
55
+ blocked: Boolean
56
+ activated: Boolean
57
+ }
58
58
  `;
59
- exports.ResetPassword = `
60
- type ResetPassword {
61
- jwt: String
62
- email: String
63
- }
59
+ exports.ResetPassword = `
60
+ type ResetPassword {
61
+ jwt: String
62
+ email: String
63
+ }
64
64
  `;
65
- exports.ResetPasswordInput = `
66
- input ResetPasswordInput {
67
- password: String!
68
- resetPasswordToken: String!
69
- }
65
+ exports.ResetPasswordInput = `
66
+ input ResetPasswordInput {
67
+ password: String!
68
+ resetPasswordToken: String!
69
+ }
70
70
  `;
71
- exports.ResetPasswordResponse = `
72
- type ResetPasswordResponse {
73
- user: User
74
- }
71
+ exports.ResetPasswordResponse = `
72
+ type ResetPasswordResponse {
73
+ user: User
74
+ }
75
75
  `;
76
- exports.Mutations = `
77
- type Mutation {
78
- platformLogin(input: LoginInput!): LoginResponse
79
- platformRegister(input: RegisterInput!): RegisterResponse
80
- platformForgotPassword(input: ForgotPasswordInput!): ForgotPasswordResponse
81
- platformResetPassword(input: ResetPasswordInput!): ResetPasswordResponse
82
- }
76
+ exports.Mutations = `
77
+ type Mutation {
78
+ platformLogin(input: LoginInput!): LoginResponse
79
+ platformRegister(input: RegisterInput!): RegisterResponse
80
+ platformForgotPassword(input: ForgotPasswordInput!): ForgotPasswordResponse
81
+ platformResetPassword(input: ResetPasswordInput!): ResetPasswordResponse
82
+ }
83
83
  `;
84
- exports.Queries = `
85
- type Query {
86
- page(id: ID, locale: I18NLocaleCode): PageEntityResponse
87
- pages(filters: PageFiltersInput pagination: PaginationArg = {} sort: [String] = [] publicationState: PublicationState = LIVE locale: I18NLocaleCode): PageEntityResponseCollection
88
- }
84
+ exports.Queries = `
85
+ type Query {
86
+ page(id: ID, locale: I18NLocaleCode): PageEntityResponse
87
+ pages(filters: PageFiltersInput pagination: PaginationArg = {} sort: [String] = [] publicationState: PublicationState = LIVE locale: I18NLocaleCode): PageEntityResponseCollection
88
+ }
89
89
  `;
@@ -0,0 +1,100 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.registerGraphQLResolvers = void 0;
4
+ const constants_1 = require("../../shared/utils/constants");
5
+ const findPageByPath = (strapi) => {
6
+ const typeDefs = `
7
+ type Query {
8
+ findPageByPath(path: String, locale: I18NLocaleCode): PageEntityResponse
9
+ }
10
+ `;
11
+ const resolvers = (strapi) => {
12
+ const { transformArgs } = strapi.plugin('graphql').service('builders').utils;
13
+ const { toEntityResponse, toEntityResponseCollection } = strapi.plugin('graphql').service('format').returnTypes;
14
+ return {
15
+ Query: {
16
+ findPageByPath: {
17
+ resolve: async (parent, args, ctx) => {
18
+ const contentType = strapi.getModel(constants_1.PAGE_UID);
19
+ const transformedArgs = transformArgs(args, { contentType });
20
+ const queryResult = await strapi.entityService.findMany(contentType.uid, {
21
+ filters: {
22
+ path: {
23
+ $eq: transformedArgs.path
24
+ }
25
+ },
26
+ locale: transformedArgs.locale
27
+ });
28
+ const result = queryResult === null || queryResult === void 0 ? void 0 : queryResult[0];
29
+ return toEntityResponse(result, {
30
+ args: transformedArgs,
31
+ resourceUID: contentType.uid
32
+ });
33
+ }
34
+ }
35
+ }
36
+ };
37
+ };
38
+ const resolversConfig = {
39
+ 'Query.findPageByPath': {
40
+ auth: false
41
+ }
42
+ };
43
+ return {
44
+ typeDefs,
45
+ resolvers: resolvers(strapi),
46
+ resolversConfig
47
+ };
48
+ };
49
+ const findPagePaths = (strapi) => {
50
+ const typeDefs = `
51
+ type PageByPath {
52
+ id: Int!
53
+ path: String!
54
+ title: String!
55
+ locale: String!
56
+ pageType: ENUM_PAGE_PAGETYPE
57
+ updatedAt: DateTime!
58
+ publishedAt: DateTime!
59
+ }
60
+
61
+ type Query {
62
+ findPagePaths(locale: String, pageType: String = "all"): [PageByPath]
63
+ }
64
+ `;
65
+ const resolvers = (strapi) => {
66
+ const { transformArgs } = strapi.plugin('graphql').service('builders').utils;
67
+ return {
68
+ Query: {
69
+ findPagePaths: {
70
+ resolve: async (parent, args, ctx) => {
71
+ const contentType = strapi.getModel(constants_1.PAGE_UID);
72
+ const transformedArgs = transformArgs(args, { contentType });
73
+ const queryResult = await strapi.entityService.findMany(contentType.uid, {
74
+ populate: '*',
75
+ locale: transformedArgs.locale
76
+ });
77
+ const result = queryResult.filter((page) => page === null || page === void 0 ? void 0 : page.path);
78
+ return result;
79
+ }
80
+ }
81
+ }
82
+ };
83
+ };
84
+ const resolversConfig = {
85
+ 'Query.findPagePaths': {
86
+ auth: false
87
+ }
88
+ };
89
+ return {
90
+ typeDefs,
91
+ resolvers: resolvers(strapi),
92
+ resolversConfig
93
+ };
94
+ };
95
+ const registerGraphQLResolvers = (strapi) => {
96
+ const extensionService = strapi.plugin('graphql').service('extension');
97
+ extensionService.use(findPageByPath(strapi));
98
+ extensionService.use(findPagePaths(strapi));
99
+ };
100
+ exports.registerGraphQLResolvers = registerGraphQLResolvers;
@@ -0,0 +1,31 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.Pagination = void 0;
4
+ class Pagination {
5
+ static checkPagination(page, pageSize) {
6
+ const startPage = page === 1 ? 0 : page - 1;
7
+ const start = startPage * pageSize;
8
+ const limit = (startPage + 1) * pageSize;
9
+ return { start, limit };
10
+ }
11
+ static async getPaginationInfo(transformedpageArgs, transformArgs, start, pageSize, entityResponse, uid) {
12
+ var _a;
13
+ const total = await ((_a = strapi === null || strapi === void 0 ? void 0 : strapi.entityService) === null || _a === void 0 ? void 0 : _a.count(uid, {
14
+ filters: {
15
+ ...transformArgs.filters,
16
+ hasPage: { $eq: true },
17
+ page: { ...transformedpageArgs.filters }
18
+ }
19
+ }));
20
+ const pageCount = Math.ceil(total / pageSize);
21
+ const page = Math.floor(start / pageSize) + 1;
22
+ entityResponse.metaInfo = {
23
+ total,
24
+ pageCount,
25
+ page,
26
+ pageSize
27
+ };
28
+ return entityResponse;
29
+ }
30
+ }
31
+ exports.Pagination = Pagination;