@webbio/strapi-plugin-page-builder 0.3.5-platform → 0.3.6-legacy
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.
- package/README.md +21 -11
- package/admin/src/api/collection-type.ts +1 -7
- package/admin/src/api/page-type.ts +4 -5
- package/admin/src/components/EditView/CollectionTypeSearch/index.tsx +12 -15
- package/admin/src/components/EditView/CollectionTypeSettings/CreatePageButton/index.tsx +28 -10
- package/admin/src/components/EditView/CollectionTypeSettings/index.tsx +32 -61
- package/admin/src/components/EditView/Details/index.tsx +1 -1
- package/admin/src/components/EditView/PageSettings/index.tsx +5 -60
- package/admin/src/components/PageTypeFilter/index.tsx +17 -0
- package/admin/src/components/PageTypeFilter/page-type-filter.tsx +130 -0
- package/admin/src/index.tsx +2 -2
- package/admin/src/utils/sanitizeModules.ts +92 -9
- package/dist/package.json +12 -10
- package/dist/server/bootstrap/permissions.js +10 -68
- package/dist/server/bootstrap.js +25 -41
- package/dist/server/content-types/user-category/schema.json +23 -0
- package/dist/server/controllers/index.js +1 -3
- package/dist/server/controllers/platform.js +5 -5
- package/dist/server/controllers/private-content.js +18 -0
- package/dist/server/controllers/sitemap.js +29 -0
- package/dist/server/controllers/user-category.js +4 -0
- package/dist/server/graphql/page-by-path.js +113 -0
- package/dist/server/graphql/page-by-slug.js +37 -44
- package/dist/server/graphql/pages-by-uid.js +9 -11
- package/dist/server/policies/isAuthorizedPage.js +11 -0
- package/dist/server/routes/index.js +0 -21
- package/dist/server/routes/user-category.js +4 -0
- package/dist/server/schema/page-end.json +0 -5
- package/dist/server/schema/platform-start.json +0 -10
- package/dist/server/schema/template-end.json +40 -0
- package/dist/server/services/builder.js +5 -15
- package/dist/server/services/email.js +160 -0
- package/dist/server/services/index.js +1 -3
- package/dist/server/services/platform.js +6 -11
- package/dist/server/services/private-content/components/admin-email.json +22 -0
- package/dist/server/services/private-content/components/email.json +22 -0
- package/dist/server/services/private-content/components/platform-email.json +33 -0
- package/dist/server/services/private-content/constants/index.js +16 -0
- package/dist/server/services/private-content/graphql/index.js +77 -0
- package/dist/server/services/private-content/graphql/resolvers/findOnePage.js +40 -0
- package/dist/server/services/private-content/graphql/resolvers/findPage.js +44 -0
- package/dist/server/services/private-content/graphql/resolvers/forgot-password.js +29 -0
- package/dist/server/services/private-content/graphql/resolvers/login.js +49 -0
- package/dist/server/services/private-content/graphql/resolvers/register.js +68 -0
- package/dist/server/services/private-content/graphql/resolvers/reset-password.js +41 -0
- package/dist/server/services/private-content/graphql/types/index.js +89 -0
- package/dist/server/services/private-content/index.js +94 -0
- package/dist/server/services/private-content/mail-template/txtMail.email.template.text.js +12 -0
- package/dist/server/services/private-content/page.js +22 -0
- package/dist/server/services/private-content/platform.js +22 -0
- package/dist/server/services/private-content/schemas/index.js +30 -0
- package/dist/server/services/private-content/user.js +170 -0
- package/dist/server/services/sitemap.js +78 -0
- package/dist/server/services/template.js +1 -2
- package/dist/server/services/user-category.js +4 -0
- package/dist/server/utils/strapi.js +1 -4
- package/dist/shared/utils/constants.js +1 -3
- package/dist/tsconfig.server.tsbuildinfo +1 -1
- package/package.json +12 -10
- package/server/bootstrap/collection-type-lifecycles.ts +1 -1
- package/server/bootstrap/permissions.ts +10 -75
- package/server/bootstrap.ts +25 -44
- package/server/controllers/index.ts +1 -3
- package/server/graphql/page-by-slug.ts +43 -50
- package/server/graphql/pages-by-uid.ts +9 -11
- package/server/routes/index.ts +0 -21
- package/server/schema/page-end.json +0 -5
- package/server/services/builder.ts +6 -18
- package/server/services/index.ts +1 -3
- package/server/services/template.ts +1 -2
- package/server/utils/strapi.ts +1 -5
- package/shared/utils/constants.ts +0 -2
- package/admin/src/api/platform-page-types.ts +0 -40
- package/admin/src/api/platform.ts +0 -34
- package/admin/src/components/EditView/Platform/platform-select.tsx +0 -30
- package/admin/src/components/PageFilters/PageTypeFilter/index.tsx +0 -39
- package/admin/src/components/PageFilters/PlatformFilter/index.tsx +0 -28
- package/admin/src/components/PageFilters/filters.tsx +0 -180
- package/admin/src/components/PageFilters/index.tsx +0 -30
- package/server/controllers/platform.ts +0 -21
- package/server/schema/platform-start.json +0 -31
- package/server/services/platform.ts +0 -36
|
@@ -1,34 +0,0 @@
|
|
|
1
|
-
import { useQuery } from 'react-query';
|
|
2
|
-
|
|
3
|
-
import { useFetchClient } from '@strapi/helper-plugin';
|
|
4
|
-
|
|
5
|
-
import { PageType } from './page-type';
|
|
6
|
-
|
|
7
|
-
export type Platform = {
|
|
8
|
-
id: number;
|
|
9
|
-
title?: string;
|
|
10
|
-
pageTypes?: PageType[];
|
|
11
|
-
};
|
|
12
|
-
|
|
13
|
-
const QUERY_KEY = 'platforms';
|
|
14
|
-
|
|
15
|
-
const fetchPlatforms = async ({ fetchClient }: Record<string, any>): Promise<Platform[]> => {
|
|
16
|
-
const { get } = fetchClient;
|
|
17
|
-
const result = await get('/content-manager/collection-types/api::platform.platform?page=1&pageSize=100');
|
|
18
|
-
|
|
19
|
-
return result?.data?.results.map((entity: Record<string, any>) => ({
|
|
20
|
-
id: entity.id,
|
|
21
|
-
title: entity.title,
|
|
22
|
-
pageTypes: entity.pageTypes
|
|
23
|
-
}));
|
|
24
|
-
};
|
|
25
|
-
|
|
26
|
-
export const useGetPlatforms = (params: Record<string, any>) => {
|
|
27
|
-
const fetchClient = useFetchClient();
|
|
28
|
-
params = {
|
|
29
|
-
...params,
|
|
30
|
-
fetchClient
|
|
31
|
-
};
|
|
32
|
-
|
|
33
|
-
return useQuery<Platform[], Error>(QUERY_KEY, () => fetchPlatforms(params));
|
|
34
|
-
};
|
|
@@ -1,30 +0,0 @@
|
|
|
1
|
-
import React from 'react';
|
|
2
|
-
|
|
3
|
-
import { SingleSelect, SingleSelectOption } from '@strapi/design-system';
|
|
4
|
-
|
|
5
|
-
import { Platform } from '../../../api/platform';
|
|
6
|
-
import { PLATFORM } from '../../../../../shared/utils/constants';
|
|
7
|
-
|
|
8
|
-
interface Props {
|
|
9
|
-
onChange: (platformId: string) => void;
|
|
10
|
-
selectedPlatform?: Platform | null;
|
|
11
|
-
platforms?: Platform[];
|
|
12
|
-
}
|
|
13
|
-
|
|
14
|
-
export const PlatformSelect = ({ onChange, platforms, selectedPlatform }: Props) => {
|
|
15
|
-
return (
|
|
16
|
-
<SingleSelect
|
|
17
|
-
label="Platform"
|
|
18
|
-
placeholder="Choose a platform"
|
|
19
|
-
value={selectedPlatform?.id || PLATFORM}
|
|
20
|
-
onChange={onChange}
|
|
21
|
-
>
|
|
22
|
-
<SingleSelectOption value={PLATFORM}>Platform</SingleSelectOption>
|
|
23
|
-
{platforms?.map((pageType: Platform) => (
|
|
24
|
-
<SingleSelectOption key={pageType?.id} value={pageType?.id}>
|
|
25
|
-
{pageType?.title}
|
|
26
|
-
</SingleSelectOption>
|
|
27
|
-
))}
|
|
28
|
-
</SingleSelect>
|
|
29
|
-
);
|
|
30
|
-
};
|
|
@@ -1,39 +0,0 @@
|
|
|
1
|
-
import React from 'react';
|
|
2
|
-
|
|
3
|
-
import { SingleSelectOption, SingleSelect } from '@strapi/design-system';
|
|
4
|
-
|
|
5
|
-
import { PageType } from '../../../api/page-type';
|
|
6
|
-
import { PAGE_TYPE_NO_FILTER } from '../../../constants';
|
|
7
|
-
import { PAGE_TYPE_PAGE } from '../../../../../shared/utils/constants';
|
|
8
|
-
|
|
9
|
-
interface Props {
|
|
10
|
-
onChange: (pageTypeUId: string) => void;
|
|
11
|
-
selectedPageTypeUid?: string;
|
|
12
|
-
pageTypes?: PageType[];
|
|
13
|
-
}
|
|
14
|
-
|
|
15
|
-
const PageTypeFilter = ({ onChange, pageTypes, selectedPageTypeUid }: Props) => {
|
|
16
|
-
return (
|
|
17
|
-
<SingleSelect
|
|
18
|
-
placeholder="Select page type"
|
|
19
|
-
onChange={onChange}
|
|
20
|
-
size="S"
|
|
21
|
-
value={selectedPageTypeUid}
|
|
22
|
-
disabled={(pageTypes?.length || 0) === 0}
|
|
23
|
-
>
|
|
24
|
-
<SingleSelectOption key={PAGE_TYPE_NO_FILTER} value={PAGE_TYPE_NO_FILTER}>
|
|
25
|
-
All Pagetypes
|
|
26
|
-
</SingleSelectOption>
|
|
27
|
-
<SingleSelectOption key={PAGE_TYPE_PAGE} value={PAGE_TYPE_PAGE}>
|
|
28
|
-
Page
|
|
29
|
-
</SingleSelectOption>
|
|
30
|
-
{pageTypes?.map((pageType) => (
|
|
31
|
-
<SingleSelectOption key={pageType.uid} value={pageType.uid}>
|
|
32
|
-
{pageType.title || pageType.uid}
|
|
33
|
-
</SingleSelectOption>
|
|
34
|
-
))}
|
|
35
|
-
</SingleSelect>
|
|
36
|
-
);
|
|
37
|
-
};
|
|
38
|
-
|
|
39
|
-
export default PageTypeFilter;
|
|
@@ -1,28 +0,0 @@
|
|
|
1
|
-
import React from 'react';
|
|
2
|
-
|
|
3
|
-
import { SingleSelectOption, SingleSelect } from '@strapi/design-system';
|
|
4
|
-
import { Platform } from '../../../api/platform';
|
|
5
|
-
import { PLATFORM_NO_FILTER } from '../../../constants';
|
|
6
|
-
|
|
7
|
-
interface Props {
|
|
8
|
-
onChange?: (platformId: string) => void;
|
|
9
|
-
selectedPlatform?: string;
|
|
10
|
-
platforms?: Platform[];
|
|
11
|
-
}
|
|
12
|
-
|
|
13
|
-
const PlatformFilter = ({ onChange, platforms, selectedPlatform }: Props) => {
|
|
14
|
-
return (
|
|
15
|
-
<SingleSelect placeholder="Select platform" onChange={onChange} size="S" value={selectedPlatform}>
|
|
16
|
-
<SingleSelectOption key={PLATFORM_NO_FILTER} value={PLATFORM_NO_FILTER}>
|
|
17
|
-
All Platforms
|
|
18
|
-
</SingleSelectOption>
|
|
19
|
-
{platforms?.map((platform: Platform) => (
|
|
20
|
-
<SingleSelectOption key={platform?.id} value={platform?.title}>
|
|
21
|
-
{platform?.title}
|
|
22
|
-
</SingleSelectOption>
|
|
23
|
-
))}
|
|
24
|
-
</SingleSelect>
|
|
25
|
-
);
|
|
26
|
-
};
|
|
27
|
-
|
|
28
|
-
export default PlatformFilter;
|
|
@@ -1,180 +0,0 @@
|
|
|
1
|
-
import { useMemo } from 'react';
|
|
2
|
-
import set from 'lodash/set';
|
|
3
|
-
|
|
4
|
-
import { Stack } from '@strapi/design-system';
|
|
5
|
-
import { useQueryParams } from '@strapi/helper-plugin';
|
|
6
|
-
|
|
7
|
-
import PageTypeFilter from './PageTypeFilter';
|
|
8
|
-
import { PAGE_TYPE_PAGE, PLATFORM } from '../../../../shared/utils/constants';
|
|
9
|
-
import PlatformFilter from './PlatformFilter';
|
|
10
|
-
import { Platform, useGetPlatforms } from '../../api/platform';
|
|
11
|
-
import { PAGE_TYPE, PAGE_TYPE_NO_FILTER, PLATFORM_NO_FILTER } from '../../constants';
|
|
12
|
-
import { PageType } from '../../api/page-type';
|
|
13
|
-
import { useGetPageTypesForPlatform } from '../../api/platform-page-types';
|
|
14
|
-
|
|
15
|
-
interface PageFiltersProps {
|
|
16
|
-
hidePageType?: boolean;
|
|
17
|
-
}
|
|
18
|
-
|
|
19
|
-
const PageFilters = ({ hidePageType }: PageFiltersProps) => {
|
|
20
|
-
const [{ query }, setQuery] = useQueryParams() as any;
|
|
21
|
-
|
|
22
|
-
const { data: platforms } = useGetPlatforms({});
|
|
23
|
-
|
|
24
|
-
const selectedPlatformTitle = useMemo(() => getPlatformFromQuery(query, platforms), [query, platforms]);
|
|
25
|
-
|
|
26
|
-
const { data: pageTypesForPlatform } = useGetPageTypesForPlatform({
|
|
27
|
-
id: platforms?.find((p) => p.title === selectedPlatformTitle)?.id
|
|
28
|
-
});
|
|
29
|
-
|
|
30
|
-
const selectedPageTypeUid = useMemo(() => getPageTypeFromQuery(query, []), [query, platforms, selectedPlatformTitle]);
|
|
31
|
-
|
|
32
|
-
const handleFilterChange = (
|
|
33
|
-
filters: Record<string, any>,
|
|
34
|
-
filterCategory: string,
|
|
35
|
-
filterCategoryToRemove?: string
|
|
36
|
-
) => {
|
|
37
|
-
const currentFilters = query.filters?.$and ? query.filters : { ...query.filters, $and: [] };
|
|
38
|
-
const filterIndex = currentFilters.$and.findIndex(
|
|
39
|
-
(x?: Record<string, any>) => Object.keys(x || {})?.[0] === filterCategory
|
|
40
|
-
);
|
|
41
|
-
|
|
42
|
-
if (filterIndex > -1) {
|
|
43
|
-
set(currentFilters, `$and[${filterIndex}]`, filters); // If the filter in this category already exists, replace it
|
|
44
|
-
} else {
|
|
45
|
-
currentFilters.$and.push(filters);
|
|
46
|
-
}
|
|
47
|
-
|
|
48
|
-
const removedFilters = removeFiltersFromQuery({ filters: currentFilters }, filterCategoryToRemove);
|
|
49
|
-
|
|
50
|
-
setQuery({
|
|
51
|
-
page: 1,
|
|
52
|
-
filters: removedFilters
|
|
53
|
-
});
|
|
54
|
-
};
|
|
55
|
-
|
|
56
|
-
const removeFilters = (filterCategory: string) => {
|
|
57
|
-
const filters = removeFiltersFromQuery(query, filterCategory);
|
|
58
|
-
|
|
59
|
-
setQuery({
|
|
60
|
-
page: 1,
|
|
61
|
-
filters
|
|
62
|
-
});
|
|
63
|
-
};
|
|
64
|
-
|
|
65
|
-
const handlePlatformSelect = (platformId: string) => {
|
|
66
|
-
if (platformId === PLATFORM_NO_FILTER) {
|
|
67
|
-
removeFilters(PLATFORM);
|
|
68
|
-
return;
|
|
69
|
-
}
|
|
70
|
-
|
|
71
|
-
handleFilterChange(getPlatformQueryFilter(platformId), PLATFORM, PAGE_TYPE);
|
|
72
|
-
};
|
|
73
|
-
|
|
74
|
-
const handlePageTypeSelect = (pageType: string) => {
|
|
75
|
-
if (pageType === PAGE_TYPE_NO_FILTER) {
|
|
76
|
-
removeFilters(PAGE_TYPE);
|
|
77
|
-
return;
|
|
78
|
-
}
|
|
79
|
-
|
|
80
|
-
if (pageType === PAGE_TYPE_PAGE) {
|
|
81
|
-
handleFilterChange(nullPageTypeQueryFilter, PAGE_TYPE);
|
|
82
|
-
return;
|
|
83
|
-
}
|
|
84
|
-
|
|
85
|
-
handleFilterChange(getPageTypeQueryFilter(pageType), PAGE_TYPE);
|
|
86
|
-
};
|
|
87
|
-
|
|
88
|
-
return (
|
|
89
|
-
<Stack horizontal spacing={2}>
|
|
90
|
-
<PlatformFilter onChange={handlePlatformSelect} platforms={platforms} selectedPlatform={selectedPlatformTitle} />
|
|
91
|
-
{!hidePageType && (
|
|
92
|
-
<PageTypeFilter
|
|
93
|
-
onChange={handlePageTypeSelect}
|
|
94
|
-
pageTypes={pageTypesForPlatform}
|
|
95
|
-
selectedPageTypeUid={selectedPageTypeUid}
|
|
96
|
-
/>
|
|
97
|
-
)}
|
|
98
|
-
</Stack>
|
|
99
|
-
);
|
|
100
|
-
};
|
|
101
|
-
|
|
102
|
-
export default PageFilters;
|
|
103
|
-
|
|
104
|
-
const getPageTypeFromQuery = (query: Record<string, any>, pageTypes?: PageType[]) => {
|
|
105
|
-
const pageTypeFromQuery = query?.filters?.$and?.find(
|
|
106
|
-
(x?: Record<string, any>) => Object.keys(x || {})?.[0] === PAGE_TYPE
|
|
107
|
-
)?.pageType;
|
|
108
|
-
|
|
109
|
-
if (pageTypeFromQuery?.uid?.$null === 'true') {
|
|
110
|
-
return PAGE_TYPE_PAGE;
|
|
111
|
-
}
|
|
112
|
-
|
|
113
|
-
if (pageTypeFromQuery?.uid?.$eq) {
|
|
114
|
-
const matchingPageType = pageTypes?.find((pageType: any) => pageType?.uid === pageTypeFromQuery.uid.$eq);
|
|
115
|
-
|
|
116
|
-
if (matchingPageType) {
|
|
117
|
-
return matchingPageType.uid;
|
|
118
|
-
}
|
|
119
|
-
}
|
|
120
|
-
|
|
121
|
-
return PAGE_TYPE_NO_FILTER;
|
|
122
|
-
};
|
|
123
|
-
|
|
124
|
-
const getPlatformFromQuery = (query: Record<string, any>, platforms?: Platform[]): string | undefined => {
|
|
125
|
-
const platformFromQuery = query?.filters?.$and?.find(
|
|
126
|
-
(x?: Record<string, any>) => Object.keys(x || {})?.[0] === PLATFORM
|
|
127
|
-
)?.platform;
|
|
128
|
-
|
|
129
|
-
if (platformFromQuery?.title?.$null === 'true') {
|
|
130
|
-
return PLATFORM_NO_FILTER;
|
|
131
|
-
}
|
|
132
|
-
|
|
133
|
-
if (platformFromQuery?.title?.$eq) {
|
|
134
|
-
const matchingPageType = platforms?.find((platforms: Platform) => platforms?.title === platformFromQuery.title.$eq);
|
|
135
|
-
|
|
136
|
-
if (matchingPageType) {
|
|
137
|
-
return matchingPageType.title;
|
|
138
|
-
}
|
|
139
|
-
}
|
|
140
|
-
|
|
141
|
-
return PLATFORM_NO_FILTER;
|
|
142
|
-
};
|
|
143
|
-
|
|
144
|
-
const getPlatformQueryFilter = (platform: string) => ({
|
|
145
|
-
platform: {
|
|
146
|
-
title: {
|
|
147
|
-
$eq: platform
|
|
148
|
-
}
|
|
149
|
-
}
|
|
150
|
-
});
|
|
151
|
-
|
|
152
|
-
const getPageTypeQueryFilter = (pageType: string) => ({
|
|
153
|
-
pageType: {
|
|
154
|
-
uid: {
|
|
155
|
-
$eq: pageType
|
|
156
|
-
}
|
|
157
|
-
}
|
|
158
|
-
});
|
|
159
|
-
|
|
160
|
-
const nullPageTypeQueryFilter = {
|
|
161
|
-
pageType: {
|
|
162
|
-
uid: {
|
|
163
|
-
$null: true
|
|
164
|
-
}
|
|
165
|
-
}
|
|
166
|
-
};
|
|
167
|
-
|
|
168
|
-
const removeFiltersFromQuery = (query: Record<string, any>, filterCategory?: string) => {
|
|
169
|
-
const newAndFilters = query.filters?.$and?.filter(
|
|
170
|
-
(x?: Record<string, any>) => Object.keys(x || {})?.[0] !== filterCategory
|
|
171
|
-
);
|
|
172
|
-
|
|
173
|
-
const filters = { ...query.filters, $and: newAndFilters };
|
|
174
|
-
|
|
175
|
-
if (newAndFilters && newAndFilters.length === 0) {
|
|
176
|
-
delete filters.$and;
|
|
177
|
-
}
|
|
178
|
-
|
|
179
|
-
return filters;
|
|
180
|
-
};
|
|
@@ -1,30 +0,0 @@
|
|
|
1
|
-
import * as React from 'react';
|
|
2
|
-
|
|
3
|
-
import { useLocation } from 'react-router-dom';
|
|
4
|
-
|
|
5
|
-
import { PAGE_UID } from '../../../../shared/utils/constants';
|
|
6
|
-
|
|
7
|
-
import PageFilters from './filters';
|
|
8
|
-
import { useHasPageRelation } from '../../api/has-page-relation';
|
|
9
|
-
|
|
10
|
-
const PageFiltersContainer = () => {
|
|
11
|
-
const { pathname } = useLocation();
|
|
12
|
-
const uid = pathname.split('/').find((x) => x.startsWith('api::')) || '';
|
|
13
|
-
const isPageCollectionType = uid === PAGE_UID;
|
|
14
|
-
|
|
15
|
-
const { data: hasPageRelation, isLoading } = useHasPageRelation({
|
|
16
|
-
uid
|
|
17
|
-
});
|
|
18
|
-
|
|
19
|
-
if (isPageCollectionType) {
|
|
20
|
-
return <PageFilters />;
|
|
21
|
-
}
|
|
22
|
-
|
|
23
|
-
if (!isPageCollectionType && hasPageRelation && !isLoading) {
|
|
24
|
-
return <PageFilters hidePageType />;
|
|
25
|
-
}
|
|
26
|
-
|
|
27
|
-
return null;
|
|
28
|
-
};
|
|
29
|
-
|
|
30
|
-
export default PageFiltersContainer;
|
|
@@ -1,21 +0,0 @@
|
|
|
1
|
-
import { Strapi } from '@strapi/strapi';
|
|
2
|
-
|
|
3
|
-
export default {
|
|
4
|
-
async findAll() {
|
|
5
|
-
return await (strapi as Strapi).service('plugin::page-builder.platform').findAll();
|
|
6
|
-
},
|
|
7
|
-
|
|
8
|
-
async findOneByUid(ctx: any) {
|
|
9
|
-
const uid = ctx?.params?.uid;
|
|
10
|
-
|
|
11
|
-
if (!uid) {
|
|
12
|
-
return ctx.badRequest('uid is missing.');
|
|
13
|
-
}
|
|
14
|
-
|
|
15
|
-
return await strapi.service('plugin::page-builder.platform').findOneByUid(uid);
|
|
16
|
-
},
|
|
17
|
-
async findPageTypesByPlatform(ctx: any) {
|
|
18
|
-
const platform = ctx?.params?.platform;
|
|
19
|
-
return await (strapi as Strapi).services['plugin::page-builder.platform'].findPageTypesByPlatform(platform);
|
|
20
|
-
}
|
|
21
|
-
};
|
|
@@ -1,31 +0,0 @@
|
|
|
1
|
-
{
|
|
2
|
-
"draftAndPublish": false,
|
|
3
|
-
"displayName": "Platforms",
|
|
4
|
-
"singularName": "platform",
|
|
5
|
-
"pluralName": "platforms",
|
|
6
|
-
"description": "",
|
|
7
|
-
"plugin": "page-builder",
|
|
8
|
-
"pluginOptions": {},
|
|
9
|
-
"kind": "collectionType",
|
|
10
|
-
"collectionName": "platforms",
|
|
11
|
-
"attributes": {
|
|
12
|
-
"title": {
|
|
13
|
-
"type": "string",
|
|
14
|
-
"required": true,
|
|
15
|
-
"unique": true
|
|
16
|
-
},
|
|
17
|
-
"domain": {
|
|
18
|
-
"type": "string"
|
|
19
|
-
},
|
|
20
|
-
"template": {
|
|
21
|
-
"type": "relation",
|
|
22
|
-
"relation": "oneToMany",
|
|
23
|
-
"target": "api::template.template"
|
|
24
|
-
},
|
|
25
|
-
"pageTypes": {
|
|
26
|
-
"type": "relation",
|
|
27
|
-
"relation": "oneToMany",
|
|
28
|
-
"target": "api::page-type.page-type"
|
|
29
|
-
}
|
|
30
|
-
}
|
|
31
|
-
}
|
|
@@ -1,36 +0,0 @@
|
|
|
1
|
-
import { Common } from '@strapi/strapi';
|
|
2
|
-
import { PLATFORM_UID } from '../../shared/utils/constants';
|
|
3
|
-
|
|
4
|
-
export default {
|
|
5
|
-
async findAll() {
|
|
6
|
-
return await strapi.entityService.findMany(PLATFORM_UID, { populate: '*' });
|
|
7
|
-
},
|
|
8
|
-
async findOneByUid(uid: Common.UID.ContentType) {
|
|
9
|
-
return await strapi.entityService.findMany(PLATFORM_UID, {
|
|
10
|
-
populate: '*',
|
|
11
|
-
filters: {
|
|
12
|
-
pagetype: {
|
|
13
|
-
uid
|
|
14
|
-
}
|
|
15
|
-
}
|
|
16
|
-
});
|
|
17
|
-
},
|
|
18
|
-
async findPageTypesByPlatform(platform: string) {
|
|
19
|
-
const results = await strapi.entityService.findMany(PLATFORM_UID, {
|
|
20
|
-
populate: {
|
|
21
|
-
pagetype: true
|
|
22
|
-
},
|
|
23
|
-
filters: {
|
|
24
|
-
title: {
|
|
25
|
-
$eq: platform
|
|
26
|
-
}
|
|
27
|
-
}
|
|
28
|
-
});
|
|
29
|
-
|
|
30
|
-
if ((results as any[]).length > 0) {
|
|
31
|
-
return results;
|
|
32
|
-
} else {
|
|
33
|
-
return null;
|
|
34
|
-
}
|
|
35
|
-
}
|
|
36
|
-
};
|