@umbraco/playwright-testhelpers 2.0.0-beta.4 → 2.0.0-beta.41
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/dist/lib/helpers/ApiHelpers.d.ts +34 -4
- package/dist/lib/helpers/ApiHelpers.js +125 -4
- package/dist/lib/helpers/ApiHelpers.js.map +1 -1
- package/dist/lib/helpers/ConstantHelper.js +1 -1
- package/dist/lib/helpers/ConstantHelper.js.map +1 -1
- package/dist/lib/helpers/DataTypeApiHelper.d.ts +14 -14
- package/dist/lib/helpers/DataTypeApiHelper.js +114 -133
- package/dist/lib/helpers/DataTypeApiHelper.js.map +1 -1
- package/dist/lib/helpers/DataTypeUiHelper.d.ts +159 -0
- package/dist/lib/helpers/DataTypeUiHelper.js +509 -0
- package/dist/lib/helpers/DataTypeUiHelper.js.map +1 -0
- package/dist/lib/helpers/DictionaryApiHelper.d.ts +12 -8
- package/dist/lib/helpers/DictionaryApiHelper.js +104 -66
- package/dist/lib/helpers/DictionaryApiHelper.js.map +1 -1
- package/dist/lib/helpers/DictionaryUiHelper.d.ts +31 -0
- package/dist/lib/helpers/DictionaryUiHelper.js +92 -0
- package/dist/lib/helpers/DictionaryUiHelper.js.map +1 -0
- package/dist/lib/helpers/DocumentApiHelper.d.ts +17 -0
- package/dist/lib/helpers/DocumentApiHelper.js +159 -0
- package/dist/lib/helpers/DocumentApiHelper.js.map +1 -1
- package/dist/lib/helpers/DocumentTypeApiHelper.d.ts +25 -0
- package/dist/lib/helpers/DocumentTypeApiHelper.js +227 -0
- package/dist/lib/helpers/DocumentTypeApiHelper.js.map +1 -0
- package/dist/lib/helpers/DocumentTypeUiHelper.d.ts +23 -0
- package/dist/lib/helpers/DocumentTypeUiHelper.js +62 -0
- package/dist/lib/helpers/DocumentTypeUiHelper.js.map +1 -0
- package/dist/lib/helpers/ExamineManagementUiHelper.d.ts +15 -0
- package/dist/lib/helpers/ExamineManagementUiHelper.js +38 -0
- package/dist/lib/helpers/ExamineManagementUiHelper.js.map +1 -0
- package/dist/lib/helpers/HealthCheckApiHelper.d.ts +13 -0
- package/dist/lib/helpers/HealthCheckApiHelper.js +47 -0
- package/dist/lib/helpers/HealthCheckApiHelper.js.map +1 -0
- package/dist/lib/helpers/HealthCheckUiHelper.d.ts +23 -0
- package/dist/lib/helpers/HealthCheckUiHelper.js +59 -0
- package/dist/lib/helpers/HealthCheckUiHelper.js.map +1 -0
- package/dist/lib/helpers/IndexerApiHelper.d.ts +7 -0
- package/dist/lib/helpers/IndexerApiHelper.js +19 -0
- package/dist/lib/helpers/IndexerApiHelper.js.map +1 -0
- package/dist/lib/helpers/LanguageApiHelper.d.ts +8 -4
- package/dist/lib/helpers/LanguageApiHelper.js +46 -26
- package/dist/lib/helpers/LanguageApiHelper.js.map +1 -1
- package/dist/lib/helpers/LanguageUiHelper.d.ts +22 -0
- package/dist/lib/helpers/LanguageUiHelper.js +62 -0
- package/dist/lib/helpers/LanguageUiHelper.js.map +1 -0
- package/dist/lib/helpers/LogViewerUiHelper.d.ts +37 -0
- package/dist/lib/helpers/LogViewerUiHelper.js +102 -0
- package/dist/lib/helpers/LogViewerUiHelper.js.map +1 -0
- package/dist/lib/helpers/LoginUiHelper.d.ts +11 -0
- package/dist/lib/helpers/LoginUiHelper.js +30 -0
- package/dist/lib/helpers/LoginUiHelper.js.map +1 -0
- package/dist/lib/helpers/MediaApiHelper.d.ts +22 -0
- package/dist/lib/helpers/MediaApiHelper.js +168 -0
- package/dist/lib/helpers/MediaApiHelper.js.map +1 -0
- package/dist/lib/helpers/MediaTypeApiHelper.d.ts +22 -0
- package/dist/lib/helpers/MediaTypeApiHelper.js +194 -0
- package/dist/lib/helpers/MediaTypeApiHelper.js.map +1 -0
- package/dist/lib/helpers/MediaTypeUiHelper.d.ts +15 -0
- package/dist/lib/helpers/MediaTypeUiHelper.js +39 -0
- package/dist/lib/helpers/MediaTypeUiHelper.js.map +1 -0
- package/dist/lib/helpers/MediaUiHelper.d.ts +40 -0
- package/dist/lib/helpers/MediaUiHelper.js +128 -0
- package/dist/lib/helpers/MediaUiHelper.js.map +1 -0
- package/dist/lib/helpers/MemberApiHelper.d.ts +16 -0
- package/dist/lib/helpers/MemberApiHelper.js +88 -0
- package/dist/lib/helpers/MemberApiHelper.js.map +1 -0
- package/dist/lib/helpers/MemberGroupApiHelper.d.ts +14 -0
- package/dist/lib/helpers/MemberGroupApiHelper.js +63 -0
- package/dist/lib/helpers/MemberGroupApiHelper.js.map +1 -0
- package/dist/lib/helpers/MemberGroupUiHelper.d.ts +16 -0
- package/dist/lib/helpers/MemberGroupUiHelper.js +42 -0
- package/dist/lib/helpers/MemberGroupUiHelper.js.map +1 -0
- package/dist/lib/helpers/MemberTypeApiHelper.d.ts +17 -0
- package/dist/lib/helpers/MemberTypeApiHelper.js +121 -0
- package/dist/lib/helpers/MemberTypeApiHelper.js.map +1 -0
- package/dist/lib/helpers/MemberTypeUiHelper.d.ts +13 -0
- package/dist/lib/helpers/MemberTypeUiHelper.js +35 -0
- package/dist/lib/helpers/MemberTypeUiHelper.js.map +1 -0
- package/dist/lib/helpers/MemberUiHelper.d.ts +40 -0
- package/dist/lib/helpers/MemberUiHelper.js +114 -0
- package/dist/lib/helpers/MemberUiHelper.js.map +1 -0
- package/dist/lib/helpers/ModelsBuilderApiHelper.d.ts +6 -0
- package/dist/lib/helpers/ModelsBuilderApiHelper.js +15 -0
- package/dist/lib/helpers/ModelsBuilderApiHelper.js.map +1 -0
- package/dist/lib/helpers/ModelsBuilderUiHelper.d.ts +9 -0
- package/dist/lib/helpers/ModelsBuilderUiHelper.js +22 -0
- package/dist/lib/helpers/ModelsBuilderUiHelper.js.map +1 -0
- package/dist/lib/helpers/ObjectTypesApiHelper.d.ts +7 -0
- package/dist/lib/helpers/ObjectTypesApiHelper.js +25 -0
- package/dist/lib/helpers/ObjectTypesApiHelper.js.map +1 -0
- package/dist/lib/helpers/PackageApiHelper.d.ts +3 -2
- package/dist/lib/helpers/PackageApiHelper.js +6 -3
- package/dist/lib/helpers/PackageApiHelper.js.map +1 -1
- package/dist/lib/helpers/PackageUiHelper.d.ts +49 -0
- package/dist/lib/helpers/PackageUiHelper.js +134 -0
- package/dist/lib/helpers/PackageUiHelper.js.map +1 -0
- package/dist/lib/helpers/PartialViewApiHelper.d.ts +14 -10
- package/dist/lib/helpers/PartialViewApiHelper.js +124 -98
- package/dist/lib/helpers/PartialViewApiHelper.js.map +1 -1
- package/dist/lib/helpers/PartialViewUiHelper.d.ts +19 -0
- package/dist/lib/helpers/PartialViewUiHelper.js +57 -0
- package/dist/lib/helpers/PartialViewUiHelper.js.map +1 -0
- package/dist/lib/helpers/ProfilingUiHelper.d.ts +11 -0
- package/dist/lib/helpers/ProfilingUiHelper.js +27 -0
- package/dist/lib/helpers/ProfilingUiHelper.js.map +1 -0
- package/dist/lib/helpers/PublishedCacheApiHelper.d.ts +6 -0
- package/dist/lib/helpers/PublishedCacheApiHelper.js +15 -0
- package/dist/lib/helpers/PublishedCacheApiHelper.js.map +1 -0
- package/dist/lib/helpers/PublishedStatusUiHelper.d.ts +19 -0
- package/dist/lib/helpers/PublishedStatusUiHelper.js +47 -0
- package/dist/lib/helpers/PublishedStatusUiHelper.js.map +1 -0
- package/dist/lib/helpers/RelationTypeApiHelper.d.ts +15 -0
- package/dist/lib/helpers/{RelationType.js → RelationTypeApiHelper.js} +45 -58
- package/dist/lib/helpers/RelationTypeApiHelper.js.map +1 -0
- package/dist/lib/helpers/RelationTypeUiHelper.d.ts +21 -0
- package/dist/lib/helpers/RelationTypeUiHelper.js +55 -0
- package/dist/lib/helpers/RelationTypeUiHelper.js.map +1 -0
- package/dist/lib/helpers/ScriptApiHelper.d.ts +15 -10
- package/dist/lib/helpers/ScriptApiHelper.js +144 -97
- package/dist/lib/helpers/ScriptApiHelper.js.map +1 -1
- package/dist/lib/helpers/ScriptUiHelper.d.ts +18 -0
- package/dist/lib/helpers/ScriptUiHelper.js +57 -0
- package/dist/lib/helpers/ScriptUiHelper.js.map +1 -0
- package/dist/lib/helpers/StylesheetApiHelper.d.ts +14 -10
- package/dist/lib/helpers/StylesheetApiHelper.js +131 -105
- package/dist/lib/helpers/StylesheetApiHelper.js.map +1 -1
- package/dist/lib/helpers/StylesheetUiHelper.d.ts +28 -0
- package/dist/lib/helpers/StylesheetUiHelper.js +90 -0
- package/dist/lib/helpers/StylesheetUiHelper.js.map +1 -0
- package/dist/lib/helpers/TelemetryDataUiHelper.d.ts +10 -0
- package/dist/lib/helpers/TelemetryDataUiHelper.js +25 -0
- package/dist/lib/helpers/TelemetryDataUiHelper.js.map +1 -0
- package/dist/lib/helpers/TemplateApiHelper.d.ts +7 -5
- package/dist/lib/helpers/TemplateApiHelper.js +75 -51
- package/dist/lib/helpers/TemplateApiHelper.js.map +1 -1
- package/dist/lib/helpers/TemplateUiHelper.d.ts +25 -0
- package/dist/lib/helpers/TemplateUiHelper.js +89 -0
- package/dist/lib/helpers/TemplateUiHelper.js.map +1 -0
- package/dist/lib/helpers/TemporaryFileApiHelper.d.ts +1 -1
- package/dist/lib/helpers/TemporaryFileApiHelper.js +6 -10
- package/dist/lib/helpers/TemporaryFileApiHelper.js.map +1 -1
- package/dist/lib/helpers/UiBaseLocators.d.ts +183 -0
- package/dist/lib/helpers/UiBaseLocators.js +575 -0
- package/dist/lib/helpers/UiBaseLocators.js.map +1 -0
- package/dist/lib/helpers/UiHelpers.d.ts +56 -6
- package/dist/lib/helpers/UiHelpers.js +87 -20
- package/dist/lib/helpers/UiHelpers.js.map +1 -1
- package/dist/lib/helpers/UserApiHelper.d.ts +7 -3
- package/dist/lib/helpers/UserApiHelper.js +35 -13
- package/dist/lib/helpers/UserApiHelper.js.map +1 -1
- package/dist/lib/helpers/UserGroupApiHelper.d.ts +5 -3
- package/dist/lib/helpers/UserGroupApiHelper.js +20 -19
- package/dist/lib/helpers/UserGroupApiHelper.js.map +1 -1
- package/dist/lib/helpers/UserGroupUiHelper.d.ts +20 -0
- package/dist/lib/helpers/UserGroupUiHelper.js +56 -0
- package/dist/lib/helpers/UserGroupUiHelper.js.map +1 -0
- package/dist/lib/helpers/UserUiHelper.d.ts +41 -0
- package/dist/lib/helpers/UserUiHelper.js +116 -0
- package/dist/lib/helpers/UserUiHelper.js.map +1 -0
- package/dist/lib/helpers/WelcomeDashboardUiHelper.d.ts +9 -0
- package/dist/lib/helpers/WelcomeDashboardUiHelper.js +22 -0
- package/dist/lib/helpers/WelcomeDashboardUiHelper.js.map +1 -0
- package/dist/lib/helpers/testExtension.js +2 -0
- package/dist/lib/helpers/testExtension.js.map +1 -1
- package/dist/tsconfig.tsbuildinfo +1 -1
- package/dist/umbraco.config.js +1 -1
- package/dist/umbraco.config.js.map +1 -1
- package/package.json +10 -8
- package/dist/lib/helpers/RelationType.d.ts +0 -15
- package/dist/lib/helpers/RelationType.js.map +0 -1
|
@@ -1,81 +1,47 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
3
|
exports.DataTypeApiHelper = void 0;
|
|
4
|
+
const json_models_builders_1 = require("@umbraco/json-models-builders");
|
|
4
5
|
class DataTypeApiHelper {
|
|
5
6
|
api;
|
|
6
7
|
constructor(api) {
|
|
7
8
|
this.api = api;
|
|
8
9
|
}
|
|
9
|
-
async ensureNameNotExistsAtRoot(name) {
|
|
10
|
-
const response = await this.api.get(this.api.baseUrl + '/umbraco/management/api/v1/tree/data-type/root?skip=0&take=10000&foldersOnly=false');
|
|
11
|
-
const json = await response.json();
|
|
12
|
-
for (const sb of json.items) {
|
|
13
|
-
if (sb.name === name) {
|
|
14
|
-
if (sb.isFolder == false) {
|
|
15
|
-
return await this.api.delete(this.api.baseUrl + '/umbraco/management/api/v1/data-type/' + sb.id);
|
|
16
|
-
}
|
|
17
|
-
else {
|
|
18
|
-
if (sb.hasChildren == true) {
|
|
19
|
-
return await this.recurseFolderChildren(sb.id);
|
|
20
|
-
}
|
|
21
|
-
else {
|
|
22
|
-
return await this.api.delete(this.api.baseUrl + '/umbraco/management/api/v1/data-type/folder/' + sb.id);
|
|
23
|
-
}
|
|
24
|
-
}
|
|
25
|
-
}
|
|
26
|
-
}
|
|
27
|
-
return null;
|
|
28
|
-
}
|
|
29
10
|
async get(id) {
|
|
30
11
|
const response = await this.api.get(this.api.baseUrl + '/umbraco/management/api/v1/data-type/' + id);
|
|
31
|
-
|
|
32
|
-
if (json !== null) {
|
|
33
|
-
return json;
|
|
34
|
-
}
|
|
35
|
-
return null;
|
|
36
|
-
}
|
|
37
|
-
async getByNameAtRoot(name) {
|
|
38
|
-
const response = await this.api.get(this.api.baseUrl + '/umbraco/management/api/v1/tree/data-type/root?skip=0&take=10000&foldersOnly=false');
|
|
39
|
-
const json = await response.json();
|
|
40
|
-
for (const sb of json.items) {
|
|
41
|
-
if (sb.name === name) {
|
|
42
|
-
if (sb.id !== null) {
|
|
43
|
-
const response = await this.api.get(this.api.baseUrl + '/umbraco/management/api/v1/data-type/' + sb.id);
|
|
44
|
-
return response.json();
|
|
45
|
-
}
|
|
46
|
-
}
|
|
47
|
-
}
|
|
48
|
-
return null;
|
|
12
|
+
return await response.json();
|
|
49
13
|
}
|
|
50
|
-
async create(name,
|
|
14
|
+
async create(name, editorAlias, values, parentId, editorUiAlias, id) {
|
|
51
15
|
const dataType = {
|
|
52
16
|
"name": name,
|
|
53
|
-
"
|
|
54
|
-
"
|
|
17
|
+
"editorAlias": editorAlias,
|
|
18
|
+
"editorUiAlias": editorUiAlias,
|
|
55
19
|
"values": values,
|
|
56
|
-
"
|
|
20
|
+
"id": id,
|
|
21
|
+
"parent": parentId ? { "id": parentId } : null
|
|
57
22
|
};
|
|
58
23
|
const response = await this.api.post(this.api.baseUrl + '/umbraco/management/api/v1/data-type', dataType);
|
|
59
24
|
// Returns the id of the created dataType
|
|
60
|
-
return response.headers().location.split("/").pop();
|
|
25
|
+
return response.headers().location.split("v1/data-type/").pop();
|
|
61
26
|
}
|
|
62
27
|
async update(id, dataType) {
|
|
63
|
-
|
|
28
|
+
const updateDataType = {
|
|
29
|
+
"name": dataType.name,
|
|
30
|
+
"editorAlias": dataType.editorAlias,
|
|
31
|
+
"editorUiAlias": dataType.editorUiAlias,
|
|
32
|
+
"values": dataType.values,
|
|
33
|
+
};
|
|
34
|
+
return await this.api.put(this.api.baseUrl + '/umbraco/management/api/v1/data-type/' + id, updateDataType);
|
|
64
35
|
}
|
|
65
36
|
async delete(id) {
|
|
66
37
|
return await this.api.delete(this.api.baseUrl + '/umbraco/management/api/v1/data-type/' + id);
|
|
67
38
|
}
|
|
68
|
-
async
|
|
69
|
-
|
|
70
|
-
|
|
71
|
-
|
|
72
|
-
|
|
73
|
-
|
|
74
|
-
return await this.api.delete(this.api.baseUrl + '/umbraco/management/api/v1/data-type/' + sb.id);
|
|
75
|
-
}
|
|
76
|
-
}
|
|
77
|
-
}
|
|
78
|
-
return null;
|
|
39
|
+
async getAllAtRoot() {
|
|
40
|
+
return await this.api.get(this.api.baseUrl + '/umbraco/management/api/v1/tree/data-type/root?skip=0&take=10000&foldersOnly=false');
|
|
41
|
+
}
|
|
42
|
+
async doesExist(id) {
|
|
43
|
+
const response = await this.api.get(this.api.baseUrl + '/umbraco/management/api/v1/data-type/' + id);
|
|
44
|
+
return response.status() === 200;
|
|
79
45
|
}
|
|
80
46
|
async getItems(ids) {
|
|
81
47
|
let idArray = 'id=' + ids[0];
|
|
@@ -84,124 +50,139 @@ class DataTypeApiHelper {
|
|
|
84
50
|
idArray += '&id=' + ids[i];
|
|
85
51
|
}
|
|
86
52
|
const response = await this.api.get(this.api.baseUrl + '/umbraco/management/api/v1/tree/data-type/item?' + idArray);
|
|
87
|
-
|
|
88
|
-
if (json !== null) {
|
|
89
|
-
return json;
|
|
90
|
-
}
|
|
91
|
-
return null;
|
|
53
|
+
return await response.json();
|
|
92
54
|
}
|
|
93
|
-
async
|
|
94
|
-
const
|
|
95
|
-
const
|
|
96
|
-
|
|
97
|
-
|
|
55
|
+
async getByName(name) {
|
|
56
|
+
const rootDataTypes = await this.getAllAtRoot();
|
|
57
|
+
const jsonDataTypes = await rootDataTypes.json();
|
|
58
|
+
for (const dataType of jsonDataTypes.items) {
|
|
59
|
+
if (dataType.name === name) {
|
|
60
|
+
return this.get(dataType.id);
|
|
61
|
+
}
|
|
62
|
+
else if (dataType.isContainer || dataType.hasChildren) {
|
|
63
|
+
const result = await this.recurseChildren(name, dataType.id, false);
|
|
64
|
+
if (result) {
|
|
65
|
+
return result;
|
|
66
|
+
}
|
|
67
|
+
}
|
|
98
68
|
}
|
|
99
|
-
return
|
|
100
|
-
}
|
|
101
|
-
async exists(id) {
|
|
102
|
-
const response = await this.api.get(this.api.baseUrl + '/umbraco/management/api/v1/data-type/' + id);
|
|
103
|
-
return response.status() === 200;
|
|
69
|
+
return false;
|
|
104
70
|
}
|
|
105
|
-
async
|
|
106
|
-
const
|
|
107
|
-
const
|
|
108
|
-
for (const
|
|
109
|
-
if (
|
|
110
|
-
|
|
71
|
+
async ensureNameNotExists(name) {
|
|
72
|
+
const rootDataTypes = await this.getAllAtRoot();
|
|
73
|
+
const jsonDataTypes = await rootDataTypes.json();
|
|
74
|
+
for (const dataType of jsonDataTypes.items) {
|
|
75
|
+
if (dataType.name === name) {
|
|
76
|
+
if (dataType.isFolder) {
|
|
77
|
+
return await this.recurseDeleteChildren(dataType);
|
|
78
|
+
}
|
|
79
|
+
return await this.delete(dataType.id);
|
|
80
|
+
}
|
|
81
|
+
else if (dataType.hasChildren) {
|
|
82
|
+
await this.recurseChildren(name, dataType.id, true);
|
|
111
83
|
}
|
|
112
84
|
}
|
|
113
|
-
return
|
|
85
|
+
return null;
|
|
86
|
+
}
|
|
87
|
+
async doesNameExist(name) {
|
|
88
|
+
return await this.getByName(name);
|
|
114
89
|
}
|
|
115
90
|
async moveToFolder(dataTypeId, folderId) {
|
|
116
91
|
const folderIdBody = {
|
|
117
|
-
"
|
|
92
|
+
"target": { id: folderId }
|
|
118
93
|
};
|
|
119
|
-
return await this.api.
|
|
94
|
+
return await this.api.put(this.api.baseUrl + '/umbraco/management/api/v1/data-type/' + dataTypeId + '/move', folderIdBody);
|
|
120
95
|
}
|
|
121
96
|
async copyToFolder(dataTypeId, folderId) {
|
|
122
97
|
const folderIdBody = {
|
|
123
|
-
"
|
|
98
|
+
"target": { id: folderId }
|
|
124
99
|
};
|
|
125
100
|
const response = await this.api.post(this.api.baseUrl + '/umbraco/management/api/v1/data-type/' + dataTypeId + '/copy', folderIdBody);
|
|
126
101
|
// Returns the id of the copied dataType
|
|
127
|
-
return response.headers().location.split("/").pop();
|
|
102
|
+
return response.headers().location.split("v1/data-type/").pop();
|
|
128
103
|
}
|
|
129
104
|
// FOLDER
|
|
130
105
|
async getFolder(id) {
|
|
131
106
|
const response = await this.api.get(this.api.baseUrl + '/umbraco/management/api/v1/data-type/folder/' + id);
|
|
132
107
|
return await response.json();
|
|
133
108
|
}
|
|
134
|
-
async
|
|
135
|
-
const response = await this.api.get(this.api.baseUrl + '/umbraco/management/api/v1/data-type/folder/' + id);
|
|
136
|
-
return response.status() === 200;
|
|
137
|
-
}
|
|
138
|
-
async getFolderByName(name) {
|
|
139
|
-
const response = await this.api.get(this.api.baseUrl + '/umbraco/management/api/v1/tree/data-type/root?skip=0&take=10000&foldersOnly=true');
|
|
140
|
-
const json = await response.json();
|
|
141
|
-
for (const sb of json.items) {
|
|
142
|
-
if (sb.name === name) {
|
|
143
|
-
if (sb.id !== null) {
|
|
144
|
-
const response = await this.api.get(this.api.baseUrl + '/umbraco/management/api/v1/data-type/folder/' + sb.id);
|
|
145
|
-
return response.json();
|
|
146
|
-
}
|
|
147
|
-
}
|
|
148
|
-
}
|
|
149
|
-
return null;
|
|
150
|
-
}
|
|
151
|
-
async createFolder(name, parentId) {
|
|
109
|
+
async createFolder(name, parentId, id) {
|
|
152
110
|
const folderData = {
|
|
153
111
|
"name": name,
|
|
154
|
-
"
|
|
112
|
+
"id": id,
|
|
113
|
+
"parent": parentId ? { "id": parentId } : null
|
|
155
114
|
};
|
|
156
115
|
const response = await this.api.post(this.api.baseUrl + '/umbraco/management/api/v1/data-type/folder', folderData);
|
|
157
116
|
// Returns the id of the created dataTypeFolder
|
|
158
|
-
return response.headers().location.split("/").pop();
|
|
117
|
+
return response.headers().location.split("v1/data-type/folder/").pop();
|
|
159
118
|
}
|
|
160
|
-
async
|
|
161
|
-
|
|
119
|
+
async renameFolder(id, name) {
|
|
120
|
+
const folderData = {
|
|
121
|
+
"name": name,
|
|
122
|
+
};
|
|
123
|
+
return await this.api.put(this.api.baseUrl + '/umbraco/management/api/v1/data-type/folder/' + id, folderData);
|
|
162
124
|
}
|
|
163
125
|
async deleteFolder(id) {
|
|
164
126
|
return await this.api.delete(this.api.baseUrl + '/umbraco/management/api/v1/data-type/folder/' + id);
|
|
165
127
|
}
|
|
166
|
-
async
|
|
167
|
-
const response = await this.api.get(this.api.baseUrl + '/umbraco/management/api/v1/
|
|
168
|
-
|
|
169
|
-
for (const sb of json.items) {
|
|
170
|
-
if (sb.name === name) {
|
|
171
|
-
if (sb.id !== null) {
|
|
172
|
-
return await this.api.delete(this.api.baseUrl + '/umbraco/management/api/v1/data-type/folder/' + sb.id);
|
|
173
|
-
}
|
|
174
|
-
}
|
|
175
|
-
}
|
|
176
|
-
return null;
|
|
128
|
+
async doesFolderExist(id) {
|
|
129
|
+
const response = await this.api.get(this.api.baseUrl + '/umbraco/management/api/v1/data-type/folder/' + id);
|
|
130
|
+
return response.status() === 200;
|
|
177
131
|
}
|
|
178
132
|
async getChildren(id) {
|
|
179
133
|
const response = await this.api.get(this.api.baseUrl + '/umbraco/management/api/v1/tree/data-type/children?parentId=' + id + '&skip=0&take=100&foldersOnly=false');
|
|
180
|
-
const
|
|
181
|
-
|
|
182
|
-
return json;
|
|
183
|
-
}
|
|
184
|
-
return null;
|
|
134
|
+
const items = await response.json();
|
|
135
|
+
return items.items;
|
|
185
136
|
}
|
|
186
|
-
async
|
|
187
|
-
|
|
188
|
-
|
|
189
|
-
|
|
190
|
-
|
|
191
|
-
|
|
192
|
-
|
|
193
|
-
|
|
194
|
-
|
|
195
|
-
|
|
196
|
-
|
|
137
|
+
async recurseDeleteChildren(dataFolder) {
|
|
138
|
+
if (!dataFolder.hasChildren) {
|
|
139
|
+
return await this.deleteFolder(dataFolder.id);
|
|
140
|
+
}
|
|
141
|
+
const items = await this.getChildren(dataFolder.id);
|
|
142
|
+
for (const child of items) {
|
|
143
|
+
if (child.hasChildren) {
|
|
144
|
+
await this.recurseDeleteChildren(child);
|
|
145
|
+
}
|
|
146
|
+
else if (child.isFolder) {
|
|
147
|
+
await this.deleteFolder(child.id);
|
|
148
|
+
}
|
|
149
|
+
else {
|
|
150
|
+
await this.delete(child.id);
|
|
151
|
+
}
|
|
152
|
+
}
|
|
153
|
+
return await this.deleteFolder(dataFolder.id);
|
|
154
|
+
}
|
|
155
|
+
async recurseChildren(name, id, toDelete) {
|
|
156
|
+
const items = await this.getChildren(id);
|
|
157
|
+
for (const child of items) {
|
|
158
|
+
if (child.name === name) {
|
|
159
|
+
if (!toDelete) {
|
|
160
|
+
if (child.isFolder) {
|
|
161
|
+
return await this.getFolder(child.id);
|
|
197
162
|
}
|
|
163
|
+
return await this.get(child.id);
|
|
198
164
|
}
|
|
199
|
-
|
|
200
|
-
await this.
|
|
165
|
+
if (child.isFolder) {
|
|
166
|
+
return await this.recurseDeleteChildren(child);
|
|
201
167
|
}
|
|
168
|
+
return await this.delete(child.id);
|
|
169
|
+
}
|
|
170
|
+
else if (child.hasChildren) {
|
|
171
|
+
return await this.recurseChildren(name, child.id, toDelete);
|
|
202
172
|
}
|
|
203
173
|
}
|
|
204
|
-
|
|
174
|
+
return false;
|
|
175
|
+
}
|
|
176
|
+
async save(dataType) {
|
|
177
|
+
const response = await this.api.post(this.api.baseUrl + '/umbraco/management/api/v1/data-type', dataType);
|
|
178
|
+
return response.headers().location.split("v1/data-type/").pop();
|
|
179
|
+
}
|
|
180
|
+
async createDateTypeDataType(name) {
|
|
181
|
+
await this.ensureNameNotExists(name);
|
|
182
|
+
const dataType = new json_models_builders_1.DatePickerDataTypeBuilder()
|
|
183
|
+
.withName(name)
|
|
184
|
+
.build();
|
|
185
|
+
return await this.save(dataType);
|
|
205
186
|
}
|
|
206
187
|
}
|
|
207
188
|
exports.DataTypeApiHelper = DataTypeApiHelper;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"DataTypeApiHelper.js","sourceRoot":"","sources":["../../../lib/helpers/DataTypeApiHelper.ts"],"names":[],"mappings":";;;AAEA,MAAa,iBAAiB;IAC5B,GAAG,CAAY;IAEf,YAAY,GAAe;QACzB,IAAI,CAAC,GAAG,GAAG,GAAG,CAAC;IACjB,CAAC;IAED,KAAK,CAAC,yBAAyB,CAAC,IAAY;QAC1C,MAAM,QAAQ,GAAG,MAAM,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,OAAO,GAAG,oFAAoF,CAAC,CAAC;QAC7I,MAAM,IAAI,GAAG,MAAM,QAAQ,CAAC,IAAI,EAAE,CAAC;QAEnC,KAAK,MAAM,EAAE,IAAI,IAAI,CAAC,KAAK,EAAE;YAC3B,IAAI,EAAE,CAAC,IAAI,KAAK,IAAI,EAAE;gBACpB,IAAI,EAAE,CAAC,QAAQ,IAAI,KAAK,EAAE;oBACxB,OAAO,MAAM,IAAI,CAAC,GAAG,CAAC,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,OAAO,GAAG,uCAAuC,GAAG,EAAE,CAAC,EAAE,CAAC,CAAC;iBAClG;qBAAM;oBACL,IAAI,EAAE,CAAC,WAAW,IAAI,IAAI,EAAE;wBAC1B,OAAO,MAAM,IAAI,CAAC,qBAAqB,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC;qBAChD;yBAAM;wBACL,OAAO,MAAM,IAAI,CAAC,GAAG,CAAC,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,OAAO,GAAG,8CAA8C,GAAG,EAAE,CAAC,EAAE,CAAC,CAAC;qBACzG;iBACF;aACF;SACF;QACD,OAAO,IAAI,CAAC;IACd,CAAC;IAED,KAAK,CAAC,GAAG,CAAC,EAAU;QAClB,MAAM,QAAQ,GAAG,MAAM,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,OAAO,GAAG,uCAAuC,GAAG,EAAE,CAAC,CAAC;QACrG,MAAM,IAAI,GAAG,MAAM,QAAQ,CAAC,IAAI,EAAE,CAAC;QAEnC,IAAI,IAAI,KAAK,IAAI,EAAE;YACjB,OAAO,IAAI,CAAC;SACb;QACD,OAAO,IAAI,CAAC;IACd,CAAC;IAED,KAAK,CAAC,eAAe,CAAC,IAAY;QAChC,MAAM,QAAQ,GAAG,MAAM,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,OAAO,GAAG,oFAAoF,CAAC,CAAC;QAC7I,MAAM,IAAI,GAAG,MAAM,QAAQ,CAAC,IAAI,EAAE,CAAC;QAEnC,KAAK,MAAM,EAAE,IAAI,IAAI,CAAC,KAAK,EAAE;YAC3B,IAAI,EAAE,CAAC,IAAI,KAAK,IAAI,EAAE;gBACpB,IAAI,EAAE,CAAC,EAAE,KAAK,IAAI,EAAE;oBAClB,MAAM,QAAQ,GAAG,MAAM,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,OAAO,GAAG,uCAAuC,GAAG,EAAE,CAAC,EAAE,CAAC,CAAC;oBACxG,OAAO,QAAQ,CAAC,IAAI,EAAE,CAAC;iBACxB;aACF;SACF;QACD,OAAO,IAAI,CAAC;IACd,CAAC;IAED,KAAK,CAAC,MAAM,CAAC,IAAY,EAAE,mBAA2B,EAAE,MAAyC,EAAE,QAAiB,EAAE,qBAA8B;QAClJ,MAAM,QAAQ,GAAG;YACf,MAAM,EAAE,IAAI;YACZ,qBAAqB,EAAE,mBAAmB;YAC1C,uBAAuB,EAAE,qBAAqB;YAC9C,QAAQ,EAAE,MAAM;YAChB,UAAU,EAAE,QAAQ;SACrB,CAAC;QACF,MAAM,QAAQ,GAAG,MAAM,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,OAAO,GAAG,sCAAsC,EAAE,QAAQ,CAAC,CAAC;QAC1G,yCAAyC;QACzC,OAAO,QAAQ,CAAC,OAAO,EAAE,CAAC,QAAQ,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,GAAG,EAAE,CAAC;IACtD,CAAC;IAED,KAAK,CAAC,MAAM,CAAC,EAAU,EAAE,QAAQ;QAC/B,OAAO,MAAM,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,OAAO,GAAG,uCAAuC,GAAG,EAAE,EAAE,QAAQ,CAAC,CAAC;IACvG,CAAC;IAED,KAAK,CAAC,MAAM,CAAC,EAAU;QACrB,OAAO,MAAM,IAAI,CAAC,GAAG,CAAC,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,OAAO,GAAG,uCAAuC,GAAG,EAAE,CAAC,CAAC;IAChG,CAAC;IAED,KAAK,CAAC,kBAAkB,CAAC,IAAY;QACnC,MAAM,QAAQ,GAAG,MAAM,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,OAAO,GAAG,oFAAoF,CAAC,CAAC;QAC7I,MAAM,IAAI,GAAG,MAAM,QAAQ,CAAC,IAAI,EAAE,CAAC;QAEnC,KAAK,MAAM,EAAE,IAAI,IAAI,CAAC,KAAK,EAAE;YAC3B,IAAI,EAAE,CAAC,IAAI,KAAK,IAAI,EAAE;gBACpB,IAAI,EAAE,CAAC,EAAE,KAAK,IAAI,EAAE;oBAClB,OAAO,MAAM,IAAI,CAAC,GAAG,CAAC,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,OAAO,GAAG,uCAAuC,GAAG,EAAE,CAAC,EAAE,CAAC,CAAC;iBAClG;aACF;SACF;QACD,OAAO,IAAI,CAAC;IACd,CAAC;IAED,KAAK,CAAC,QAAQ,CAAC,GAAa;QAC1B,IAAI,OAAO,GAAG,KAAK,GAAG,GAAG,CAAC,CAAC,CAAC,CAAC;QAC7B,IAAI,CAAS,CAAC;QAEd,KAAK,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,GAAG,CAAC,MAAM,EAAE,EAAE,CAAC,EAAE;YAC/B,OAAO,IAAI,MAAM,GAAG,GAAG,CAAC,CAAC,CAAC,CAAC;SAC5B;QAED,MAAM,QAAQ,GAAG,MAAM,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,OAAO,GAAG,iDAAiD,GAAG,OAAO,CAAC,CAAC;QACpH,MAAM,IAAI,GAAG,MAAM,QAAQ,CAAC,IAAI,EAAE,CAAC;QAEnC,IAAI,IAAI,KAAK,IAAI,EAAE;YACjB,OAAO,IAAI,CAAC;SACb;QACD,OAAO,IAAI,CAAC;IACd,CAAC;IAED,KAAK,CAAC,YAAY;QAChB,MAAM,QAAQ,GAAG,MAAM,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,OAAO,GAAG,oFAAoF,CAAC,CAAC;QAC7I,MAAM,IAAI,GAAG,MAAM,QAAQ,CAAC,IAAI,EAAE,CAAC;QAEnC,IAAI,IAAI,KAAK,IAAI,EAAE;YACjB,OAAO,IAAI,CAAC;SACb;QACD,OAAO,IAAI,CAAC;IACd,CAAC;IAED,KAAK,CAAC,MAAM,CAAC,EAAU;QACrB,MAAM,QAAQ,GAAG,MAAM,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,OAAO,GAAG,uCAAuC,GAAG,EAAE,CAAC,CAAC;QACrG,OAAO,QAAQ,CAAC,MAAM,EAAE,KAAK,GAAG,CAAC;IACnC,CAAC;IAED,KAAK,CAAC,gBAAgB,CAAC,IAAY;QACjC,MAAM,QAAQ,GAAG,MAAM,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,OAAO,GAAG,oFAAoF,CAAC,CAAC;QAC7I,MAAM,IAAI,GAAG,MAAM,QAAQ,CAAC,IAAI,EAAE,CAAC;QAEnC,KAAK,MAAM,EAAE,IAAI,IAAI,CAAC,KAAK,EAAE;YAC3B,IAAI,EAAE,CAAC,IAAI,KAAK,IAAI,EAAE;gBACpB,OAAO,IAAI,CAAC;aACb;SACF;QACD,OAAO,KAAK,CAAC;IACf,CAAC;IAED,KAAK,CAAC,YAAY,CAAC,UAAkB,EAAE,QAAgB;QACrD,MAAM,YAAY,GAAG;YACnB,UAAU,EAAE,QAAQ;SACrB,CAAC;QACF,OAAO,MAAM,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,OAAO,GAAG,uCAAuC,GAAG,UAAU,GAAG,OAAO,EAAE,YAAY,CAAC,CAAC;IAC9H,CAAC;IAED,KAAK,CAAC,YAAY,CAAC,UAAkB,EAAE,QAAgB;QACrD,MAAM,YAAY,GAAG;YACnB,UAAU,EAAE,QAAQ;SACrB,CAAC;QACF,MAAM,QAAQ,GAAG,MAAM,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,OAAO,GAAG,uCAAuC,GAAG,UAAU,GAAG,OAAO,EAAE,YAAY,CAAC,CAAC;QACtI,wCAAwC;QACxC,OAAO,QAAQ,CAAC,OAAO,EAAE,CAAC,QAAQ,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,GAAG,EAAE,CAAC;IACtD,CAAC;IAED,SAAS;IACT,KAAK,CAAC,SAAS,CAAC,EAAU;QACxB,MAAM,QAAQ,GAAG,MAAM,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,OAAO,GAAG,8CAA8C,GAAG,EAAE,CAAC,CAAC;QAC5G,OAAO,MAAM,QAAQ,CAAC,IAAI,EAAE,CAAC;IAC/B,CAAC;IAED,KAAK,CAAC,YAAY,CAAC,EAAU;QAC3B,MAAM,QAAQ,GAAG,MAAM,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,OAAO,GAAG,8CAA8C,GAAG,EAAE,CAAC,CAAC;QAC5G,OAAO,QAAQ,CAAC,MAAM,EAAE,KAAK,GAAG,CAAC;IACnC,CAAC;IAED,KAAK,CAAC,eAAe,CAAC,IAAY;QAChC,MAAM,QAAQ,GAAG,MAAM,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,OAAO,GAAG,mFAAmF,CAAC,CAAC;QAC5I,MAAM,IAAI,GAAG,MAAM,QAAQ,CAAC,IAAI,EAAE,CAAC;QAEnC,KAAK,MAAM,EAAE,IAAI,IAAI,CAAC,KAAK,EAAE;YAC3B,IAAI,EAAE,CAAC,IAAI,KAAK,IAAI,EAAE;gBACpB,IAAI,EAAE,CAAC,EAAE,KAAK,IAAI,EAAE;oBAClB,MAAM,QAAQ,GAAG,MAAM,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,OAAO,GAAG,8CAA8C,GAAG,EAAE,CAAC,EAAE,CAAC,CAAC;oBAC/G,OAAO,QAAQ,CAAC,IAAI,EAAE,CAAC;iBACxB;aACF;SACF;QACD,OAAO,IAAI,CAAC;IACd,CAAC;IAED,KAAK,CAAC,YAAY,CAAC,IAAY,EAAE,QAAiB;QAChD,MAAM,UAAU,GAAG;YACjB,MAAM,EAAE,IAAI;YACZ,UAAU,EAAE,QAAQ;SACrB,CAAC;QAEF,MAAM,QAAQ,GAAG,MAAM,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,OAAO,GAAG,6CAA6C,EAAE,UAAU,CAAC,CAAC;QACnH,+CAA+C;QAC/C,OAAO,QAAQ,CAAC,OAAO,EAAE,CAAC,QAAQ,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,GAAG,EAAE,CAAC;IACtD,CAAC;IAED,KAAK,CAAC,YAAY,CAAC,EAAU,EAAE,cAAc;QAC3C,OAAO,MAAM,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,OAAO,GAAG,8CAA8C,GAAG,EAAE,EAAE,cAAc,CAAC,CAAC;IACpH,CAAC;IAED,KAAK,CAAC,YAAY,CAAC,EAAU;QAC3B,OAAO,MAAM,IAAI,CAAC,GAAG,CAAC,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,OAAO,GAAG,8CAA8C,GAAG,EAAE,CAAC,CAAC;IACvG,CAAC;IAED,KAAK,CAAC,kBAAkB,CAAC,IAAY;QACnC,MAAM,QAAQ,GAAG,MAAM,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,OAAO,GAAG,mFAAmF,CAAC,CAAC;QAC5I,MAAM,IAAI,GAAG,MAAM,QAAQ,CAAC,IAAI,EAAE,CAAC;QAEnC,KAAK,MAAM,EAAE,IAAI,IAAI,CAAC,KAAK,EAAE;YAC3B,IAAI,EAAE,CAAC,IAAI,KAAK,IAAI,EAAE;gBACpB,IAAI,EAAE,CAAC,EAAE,KAAK,IAAI,EAAE;oBAClB,OAAO,MAAM,IAAI,CAAC,GAAG,CAAC,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,OAAO,GAAG,8CAA8C,GAAG,EAAE,CAAC,EAAE,CAAC,CAAC;iBACzG;aACF;SACF;QACD,OAAO,IAAI,CAAC;IACd,CAAC;IAED,KAAK,CAAC,WAAW,CAAC,EAAU;QAC1B,MAAM,QAAQ,GAAG,MAAM,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,OAAO,GAAG,8DAA8D,GAAG,EAAE,GAAG,oCAAoC,CAAC,CAAC;QACnK,MAAM,IAAI,GAAG,MAAM,QAAQ,CAAC,IAAI,EAAE,CAAC;QAEnC,IAAI,IAAI,KAAK,IAAI,EAAE;YACjB,OAAO,IAAI,CAAC;SACb;QACD,OAAO,IAAI,CAAC;IACd,CAAC;IAED,KAAK,CAAC,qBAAqB,CAAC,EAAU;QACpC,MAAM,cAAc,GAAG,MAAM,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,OAAO,GAAG,8DAA8D,GAAG,EAAE,GAAG,oBAAoB,CAAC,CAAC;QACzJ,MAAM,SAAS,GAAG,MAAM,cAAc,CAAC,IAAI,EAAE,CAAC;QAE9C,KAAK,MAAM,KAAK,IAAI,SAAS,CAAC,KAAK,EAAE;YACnC,IAAI,KAAK,CAAC,IAAI,KAAK,IAAI,EAAE;gBACvB,IAAI,KAAK,CAAC,QAAQ,IAAI,IAAI,EAAE;oBAC1B,IAAI,KAAK,CAAC,WAAW,IAAI,IAAI,EAAE;wBAC7B,MAAM,IAAI,CAAC,qBAAqB,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;qBAC9C;yBAAM;wBACL,MAAM,IAAI,CAAC,GAAG,CAAC,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,OAAO,GAAG,8CAA8C,GAAG,KAAK,CAAC,EAAE,CAAC,CAAC;qBACrG;iBACF;qBAAM;oBACL,MAAM,IAAI,CAAC,GAAG,CAAC,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,OAAO,GAAG,uCAAuC,GAAG,KAAK,CAAC,EAAE,CAAC,CAAC;iBAC9F;aACF;SACF;QACD,MAAM,IAAI,CAAC,GAAG,CAAC,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,OAAO,GAAG,8CAA8C,GAAG,EAAE,CAAC,CAAC;IAChG,CAAC;CACF;AA3OD,8CA2OC","sourcesContent":["import {ApiHelpers} from \"./ApiHelpers\";\n\nexport class DataTypeApiHelper {\n api: ApiHelpers\n\n constructor(api: ApiHelpers) {\n this.api = api;\n }\n\n async ensureNameNotExistsAtRoot(name: string) {\n const response = await this.api.get(this.api.baseUrl + '/umbraco/management/api/v1/tree/data-type/root?skip=0&take=10000&foldersOnly=false');\n const json = await response.json();\n\n for (const sb of json.items) {\n if (sb.name === name) {\n if (sb.isFolder == false) {\n return await this.api.delete(this.api.baseUrl + '/umbraco/management/api/v1/data-type/' + sb.id);\n } else {\n if (sb.hasChildren == true) {\n return await this.recurseFolderChildren(sb.id);\n } else {\n return await this.api.delete(this.api.baseUrl + '/umbraco/management/api/v1/data-type/folder/' + sb.id);\n }\n }\n }\n }\n return null;\n }\n\n async get(id: string) {\n const response = await this.api.get(this.api.baseUrl + '/umbraco/management/api/v1/data-type/' + id);\n const json = await response.json();\n\n if (json !== null) {\n return json;\n }\n return null;\n }\n\n async getByNameAtRoot(name: string) {\n const response = await this.api.get(this.api.baseUrl + '/umbraco/management/api/v1/tree/data-type/root?skip=0&take=10000&foldersOnly=false');\n const json = await response.json();\n\n for (const sb of json.items) {\n if (sb.name === name) {\n if (sb.id !== null) {\n const response = await this.api.get(this.api.baseUrl + '/umbraco/management/api/v1/data-type/' + sb.id);\n return response.json();\n }\n }\n }\n return null;\n }\n\n async create(name: string, propertyEditorAlias: string, values: {alias: string;value: string; }[], parentId?: string, propertyEditorUiAlias?: string) {\n const dataType = {\n \"name\": name,\n \"propertyEditorAlias\": propertyEditorAlias,\n \"propertyEditorUiAlias\": propertyEditorUiAlias,\n \"values\": values,\n \"parentId\": parentId\n };\n const response = await this.api.post(this.api.baseUrl + '/umbraco/management/api/v1/data-type', dataType);\n // Returns the id of the created dataType\n return response.headers().location.split(\"/\").pop();\n }\n\n async update(id: string, dataType) {\n return await this.api.put(this.api.baseUrl + '/umbraco/management/api/v1/data-type/' + id, dataType);\n }\n\n async delete(id: string) {\n return await this.api.delete(this.api.baseUrl + '/umbraco/management/api/v1/data-type/' + id);\n }\n\n async deleteByNameAtRoot(name: string) {\n const response = await this.api.get(this.api.baseUrl + '/umbraco/management/api/v1/tree/data-type/root?skip=0&take=10000&foldersOnly=false');\n const json = await response.json();\n\n for (const sb of json.items) {\n if (sb.name === name) {\n if (sb.id !== null) {\n return await this.api.delete(this.api.baseUrl + '/umbraco/management/api/v1/data-type/' + sb.id);\n }\n }\n }\n return null;\n }\n\n async getItems(ids: string[]) {\n let idArray = 'id=' + ids[0];\n let i: number;\n\n for (i = 1; i < ids.length; ++i) {\n idArray += '&id=' + ids[i];\n }\n\n const response = await this.api.get(this.api.baseUrl + '/umbraco/management/api/v1/tree/data-type/item?' + idArray);\n const json = await response.json();\n\n if (json !== null) {\n return json;\n }\n return null;\n }\n\n async getAllAtRoot() {\n const response = await this.api.get(this.api.baseUrl + '/umbraco/management/api/v1/tree/data-type/root?skip=0&take=10000&foldersOnly=false');\n const json = await response.json();\n\n if (json !== null) {\n return json;\n }\n return null;\n }\n\n async exists(id: string) {\n const response = await this.api.get(this.api.baseUrl + '/umbraco/management/api/v1/data-type/' + id);\n return response.status() === 200;\n }\n\n async nameExistsAtRoot(name: string) {\n const response = await this.api.get(this.api.baseUrl + '/umbraco/management/api/v1/tree/data-type/root?skip=0&take=10000&foldersOnly=false');\n const json = await response.json();\n\n for (const sb of json.items) {\n if (sb.name === name) {\n return true;\n }\n }\n return false;\n }\n\n async moveToFolder(dataTypeId: string, folderId: string) {\n const folderIdBody = {\n \"targetId\": folderId\n };\n return await this.api.post(this.api.baseUrl + '/umbraco/management/api/v1/data-type/' + dataTypeId + '/move', folderIdBody);\n }\n\n async copyToFolder(dataTypeId: string, folderId: string) {\n const folderIdBody = {\n \"targetId\": folderId\n };\n const response = await this.api.post(this.api.baseUrl + '/umbraco/management/api/v1/data-type/' + dataTypeId + '/copy', folderIdBody);\n // Returns the id of the copied dataType\n return response.headers().location.split(\"/\").pop();\n }\n\n // FOLDER\n async getFolder(id: string) {\n const response = await this.api.get(this.api.baseUrl + '/umbraco/management/api/v1/data-type/folder/' + id);\n return await response.json();\n }\n\n async folderExists(id: string) {\n const response = await this.api.get(this.api.baseUrl + '/umbraco/management/api/v1/data-type/folder/' + id);\n return response.status() === 200;\n }\n\n async getFolderByName(name: string) {\n const response = await this.api.get(this.api.baseUrl + '/umbraco/management/api/v1/tree/data-type/root?skip=0&take=10000&foldersOnly=true');\n const json = await response.json();\n\n for (const sb of json.items) {\n if (sb.name === name) {\n if (sb.id !== null) {\n const response = await this.api.get(this.api.baseUrl + '/umbraco/management/api/v1/data-type/folder/' + sb.id);\n return response.json();\n }\n }\n }\n return null;\n }\n\n async createFolder(name: string, parentId?: string) {\n const folderData = {\n \"name\": name,\n \"parentId\": parentId\n };\n\n const response = await this.api.post(this.api.baseUrl + '/umbraco/management/api/v1/data-type/folder', folderData);\n // Returns the id of the created dataTypeFolder\n return response.headers().location.split(\"/\").pop();\n }\n\n async updateFolder(id: string, dataTypeFolder) {\n return await this.api.put(this.api.baseUrl + '/umbraco/management/api/v1/data-type/folder/' + id, dataTypeFolder);\n }\n\n async deleteFolder(id: string) {\n return await this.api.delete(this.api.baseUrl + '/umbraco/management/api/v1/data-type/folder/' + id);\n }\n\n async deleteFolderByName(name: string) {\n const response = await this.api.get(this.api.baseUrl + '/umbraco/management/api/v1/tree/data-type/root?skip=0&take=10000&foldersOnly=true');\n const json = await response.json();\n\n for (const sb of json.items) {\n if (sb.name === name) {\n if (sb.id !== null) {\n return await this.api.delete(this.api.baseUrl + '/umbraco/management/api/v1/data-type/folder/' + sb.id);\n }\n }\n }\n return null;\n }\n\n async getChildren(id: string) {\n const response = await this.api.get(this.api.baseUrl + '/umbraco/management/api/v1/tree/data-type/children?parentId=' + id + '&skip=0&take=100&foldersOnly=false');\n const json = await response.json();\n\n if (json !== null) {\n return json;\n }\n return null;\n }\n\n async recurseFolderChildren(id: string) {\n const parentDataType = await this.api.get(this.api.baseUrl + '/umbraco/management/api/v1/tree/data-type/children?parentId=' + id + '&skip=0&take=10000');\n const itemsJson = await parentDataType.json();\n\n for (const child of itemsJson.items) {\n if (child.path !== null) {\n if (child.isFolder == true) {\n if (child.hasChildren == true) {\n await this.recurseFolderChildren(child.path);\n } else {\n await this.api.delete(this.api.baseUrl + '/umbraco/management/api/v1/data-type/folder/' + child.id);\n }\n } else {\n await this.api.delete(this.api.baseUrl + '/umbraco/management/api/v1/data-type/' + child.id);\n }\n }\n }\n await this.api.delete(this.api.baseUrl + '/umbraco/management/api/v1/data-type/folder/' + id);\n }\n}"]}
|
|
1
|
+
{"version":3,"file":"DataTypeApiHelper.js","sourceRoot":"","sources":["../../../lib/helpers/DataTypeApiHelper.ts"],"names":[],"mappings":";;;AACA,wEAAwE;AAExE,MAAa,iBAAiB;IAC5B,GAAG,CAAY;IAEf,YAAY,GAAe;QACzB,IAAI,CAAC,GAAG,GAAG,GAAG,CAAC;IACjB,CAAC;IAED,KAAK,CAAC,GAAG,CAAC,EAAU;QAClB,MAAM,QAAQ,GAAG,MAAM,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,OAAO,GAAG,uCAAuC,GAAG,EAAE,CAAC,CAAC;QACrG,OAAO,MAAM,QAAQ,CAAC,IAAI,EAAE,CAAC;IAC/B,CAAC;IAED,KAAK,CAAC,MAAM,CAAC,IAAY,EAAE,WAAmB,EAAE,MAA2C,EAAE,QAAiB,EAAE,aAAsB,EAAE,EAAW;QACjJ,MAAM,QAAQ,GAAG;YACf,MAAM,EAAE,IAAI;YACZ,aAAa,EAAE,WAAW;YAC1B,eAAe,EAAE,aAAa;YAC9B,QAAQ,EAAE,MAAM;YAChB,IAAI,EAAE,EAAE;YACR,QAAQ,EAAE,QAAQ,CAAC,CAAC,CAAC,EAAC,IAAI,EAAG,QAAQ,EAAC,CAAC,CAAC,CAAC,IAAI;SAC9C,CAAC;QACF,MAAM,QAAQ,GAAG,MAAM,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,OAAO,GAAG,sCAAsC,EAAE,QAAQ,CAAC,CAAC;QAC1G,yCAAyC;QACzC,OAAO,QAAQ,CAAC,OAAO,EAAE,CAAC,QAAQ,CAAC,KAAK,CAAC,eAAe,CAAC,CAAC,GAAG,EAAE,CAAC;IAClE,CAAC;IAED,KAAK,CAAC,MAAM,CAAC,EAAU,EAAE,QAAQ;QAC/B,MAAM,cAAc,GAAG;YACrB,MAAM,EAAE,QAAQ,CAAC,IAAI;YACrB,aAAa,EAAE,QAAQ,CAAC,WAAW;YACnC,eAAe,EAAE,QAAQ,CAAC,aAAa;YACvC,QAAQ,EAAE,QAAQ,CAAC,MAAM;SAC1B,CAAC;QACF,OAAO,MAAM,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,OAAO,GAAG,uCAAuC,GAAG,EAAE,EAAE,cAAc,CAAC,CAAC;IAC7G,CAAC;IAED,KAAK,CAAC,MAAM,CAAC,EAAU;QACrB,OAAO,MAAM,IAAI,CAAC,GAAG,CAAC,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,OAAO,GAAG,uCAAuC,GAAG,EAAE,CAAC,CAAC;IAChG,CAAC;IAED,KAAK,CAAC,YAAY;QAChB,OAAO,MAAM,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,OAAO,GAAG,oFAAoF,CAAC,CAAC;IACrI,CAAC;IAED,KAAK,CAAC,SAAS,CAAC,EAAU;QACxB,MAAM,QAAQ,GAAG,MAAM,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,OAAO,GAAG,uCAAuC,GAAG,EAAE,CAAC,CAAC;QACrG,OAAO,QAAQ,CAAC,MAAM,EAAE,KAAK,GAAG,CAAC;IACnC,CAAC;IAED,KAAK,CAAC,QAAQ,CAAC,GAAa;QAC1B,IAAI,OAAO,GAAG,KAAK,GAAG,GAAG,CAAC,CAAC,CAAC,CAAC;QAC7B,IAAI,CAAS,CAAC;QAEd,KAAK,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,GAAG,CAAC,MAAM,EAAE,EAAE,CAAC,EAAE;YAC/B,OAAO,IAAI,MAAM,GAAG,GAAG,CAAC,CAAC,CAAC,CAAC;SAC5B;QAED,MAAM,QAAQ,GAAG,MAAM,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,OAAO,GAAG,iDAAiD,GAAG,OAAO,CAAC,CAAC;QACpH,OAAO,MAAM,QAAQ,CAAC,IAAI,EAAE,CAAC;IAC/B,CAAC;IAED,KAAK,CAAC,SAAS,CAAC,IAAY;QAC1B,MAAM,aAAa,GAAG,MAAM,IAAI,CAAC,YAAY,EAAE,CAAC;QAChD,MAAM,aAAa,GAAG,MAAM,aAAa,CAAC,IAAI,EAAE,CAAC;QAEjD,KAAK,MAAM,QAAQ,IAAI,aAAa,CAAC,KAAK,EAAE;YAC1C,IAAI,QAAQ,CAAC,IAAI,KAAK,IAAI,EAAE;gBAC1B,OAAO,IAAI,CAAC,GAAG,CAAC,QAAQ,CAAC,EAAE,CAAC,CAAC;aAC9B;iBAAM,IAAI,QAAQ,CAAC,WAAW,IAAI,QAAQ,CAAC,WAAW,EAAE;gBACvD,MAAM,MAAM,GAAG,MAAM,IAAI,CAAC,eAAe,CAAC,IAAI,EAAE,QAAQ,CAAC,EAAE,EAAE,KAAK,CAAC,CAAC;gBACpE,IAAI,MAAM,EAAE;oBACV,OAAO,MAAM,CAAC;iBACf;aACF;SACF;QACD,OAAO,KAAK,CAAC;IACf,CAAC;IAED,KAAK,CAAC,mBAAmB,CAAC,IAAY;QACpC,MAAM,aAAa,GAAG,MAAM,IAAI,CAAC,YAAY,EAAE,CAAC;QAChD,MAAM,aAAa,GAAG,MAAM,aAAa,CAAC,IAAI,EAAE,CAAC;QAEjD,KAAK,MAAM,QAAQ,IAAI,aAAa,CAAC,KAAK,EAAE;YAC1C,IAAI,QAAQ,CAAC,IAAI,KAAK,IAAI,EAAE;gBAC1B,IAAI,QAAQ,CAAC,QAAQ,EAAE;oBACrB,OAAO,MAAM,IAAI,CAAC,qBAAqB,CAAC,QAAQ,CAAC,CAAC;iBACnD;gBACD,OAAO,MAAM,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,EAAE,CAAC,CAAC;aACvC;iBAAM,IAAI,QAAQ,CAAC,WAAW,EAAE;gBAC/B,MAAM,IAAI,CAAC,eAAe,CAAC,IAAI,EAAE,QAAQ,CAAC,EAAE,EAAE,IAAI,CAAC,CAAC;aAErD;SACF;QACD,OAAO,IAAI,CAAC;IACd,CAAC;IAED,KAAK,CAAC,aAAa,CAAC,IAAY;QAC9B,OAAO,MAAM,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,CAAC;IACpC,CAAC;IAED,KAAK,CAAC,YAAY,CAAC,UAAkB,EAAE,QAAgB;QACrD,MAAM,YAAY,GAAG;YACnB,QAAQ,EAAE,EAAE,EAAE,EAAE,QAAQ,EAAE;SAC3B,CAAC;QACF,OAAO,MAAM,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,OAAO,GAAG,uCAAuC,GAAG,UAAU,GAAG,OAAO,EAAE,YAAY,CAAC,CAAC;IAC7H,CAAC;IAED,KAAK,CAAC,YAAY,CAAC,UAAkB,EAAE,QAAgB;QACrD,MAAM,YAAY,GAAG;YACnB,QAAQ,EAAE,EAAE,EAAE,EAAE,QAAQ,EAAE;SAC3B,CAAC;QACF,MAAM,QAAQ,GAAG,MAAM,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,OAAO,GAAG,uCAAuC,GAAG,UAAU,GAAG,OAAO,EAAE,YAAY,CAAC,CAAC;QACtI,wCAAwC;QACxC,OAAO,QAAQ,CAAC,OAAO,EAAE,CAAC,QAAQ,CAAC,KAAK,CAAC,eAAe,CAAC,CAAC,GAAG,EAAE,CAAC;IAClE,CAAC;IAED,SAAS;IACT,KAAK,CAAC,SAAS,CAAC,EAAU;QACxB,MAAM,QAAQ,GAAG,MAAM,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,OAAO,GAAG,8CAA8C,GAAG,EAAE,CAAC,CAAC;QAC5G,OAAO,MAAM,QAAQ,CAAC,IAAI,EAAE,CAAC;IAC/B,CAAC;IAED,KAAK,CAAC,YAAY,CAAC,IAAY,EAAE,QAAiB,EAAE,EAAW;QAC7D,MAAM,UAAU,GAAG;YACjB,MAAM,EAAE,IAAI;YACZ,IAAI,EAAE,EAAE;YACR,QAAQ,EAAE,QAAQ,CAAC,CAAC,CAAC,EAAC,IAAI,EAAG,QAAQ,EAAC,CAAC,CAAC,CAAC,IAAI;SAC9C,CAAC;QAEF,MAAM,QAAQ,GAAG,MAAM,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,OAAO,GAAG,6CAA6C,EAAE,UAAU,CAAC,CAAC;QACnH,+CAA+C;QAC/C,OAAO,QAAQ,CAAC,OAAO,EAAE,CAAC,QAAQ,CAAC,KAAK,CAAC,sBAAsB,CAAC,CAAC,GAAG,EAAE,CAAC;IACzE,CAAC;IAED,KAAK,CAAC,YAAY,CAAC,EAAU,EAAE,IAAY;QACzC,MAAM,UAAU,GAAG;YACjB,MAAM,EAAE,IAAI;SACb,CAAC;QACF,OAAO,MAAM,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,OAAO,GAAG,8CAA8C,GAAG,EAAE,EAAE,UAAU,CAAC,CAAC;IAChH,CAAC;IAED,KAAK,CAAC,YAAY,CAAC,EAAU;QAC3B,OAAO,MAAM,IAAI,CAAC,GAAG,CAAC,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,OAAO,GAAG,8CAA8C,GAAG,EAAE,CAAC,CAAC;IACvG,CAAC;IAED,KAAK,CAAC,eAAe,CAAC,EAAU;QAC9B,MAAM,QAAQ,GAAG,MAAM,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,OAAO,GAAG,8CAA8C,GAAG,EAAE,CAAC,CAAC;QAC5G,OAAO,QAAQ,CAAC,MAAM,EAAE,KAAK,GAAG,CAAC;IACnC,CAAC;IAED,KAAK,CAAC,WAAW,CAAC,EAAU;QAC1B,MAAM,QAAQ,GAAG,MAAM,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,OAAO,GAAG,8DAA8D,GAAG,EAAE,GAAG,oCAAoC,CAAC,CAAC;QACnK,MAAM,KAAK,GAAG,MAAM,QAAQ,CAAC,IAAI,EAAE,CAAC;QACpC,OAAO,KAAK,CAAC,KAAK,CAAC;IACrB,CAAC;IAEO,KAAK,CAAC,qBAAqB,CAAC,UAAU;QAC5C,IAAI,CAAC,UAAU,CAAC,WAAW,EAAE;YAC3B,OAAO,MAAM,IAAI,CAAC,YAAY,CAAC,UAAU,CAAC,EAAE,CAAC,CAAC;SAC/C;QACD,MAAM,KAAK,GAAG,MAAM,IAAI,CAAC,WAAW,CAAC,UAAU,CAAC,EAAE,CAAC,CAAC;QAEpD,KAAK,MAAM,KAAK,IAAI,KAAK,EAAE;YACzB,IAAI,KAAK,CAAC,WAAW,EAAE;gBACrB,MAAM,IAAI,CAAC,qBAAqB,CAAC,KAAK,CAAC,CAAC;aACzC;iBAAM,IAAI,KAAK,CAAC,QAAQ,EAAE;gBACzB,MAAM,IAAI,CAAC,YAAY,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC;aACnC;iBAAM;gBACL,MAAM,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC;aAC7B;SACF;QACD,OAAO,MAAM,IAAI,CAAC,YAAY,CAAC,UAAU,CAAC,EAAE,CAAC,CAAC;IAChD,CAAC;IAEO,KAAK,CAAC,eAAe,CAAC,IAAY,EAAE,EAAU,EAAE,QAAiB;QACvE,MAAM,KAAK,GAAG,MAAM,IAAI,CAAC,WAAW,CAAC,EAAE,CAAC,CAAC;QAEzC,KAAK,MAAM,KAAK,IAAI,KAAK,EAAE;YACzB,IAAI,KAAK,CAAC,IAAI,KAAK,IAAI,EAAE;gBACvB,IAAI,CAAC,QAAQ,EAAE;oBACb,IAAI,KAAK,CAAC,QAAQ,EAAE;wBAClB,OAAO,MAAM,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC;qBACvC;oBACD,OAAO,MAAM,IAAI,CAAC,GAAG,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC;iBACjC;gBACD,IAAI,KAAK,CAAC,QAAQ,EAAE;oBAClB,OAAO,MAAM,IAAI,CAAC,qBAAqB,CAAC,KAAK,CAAC,CAAC;iBAChD;gBACD,OAAO,MAAM,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC;aACpC;iBAAM,IAAI,KAAK,CAAC,WAAW,EAAE;gBAC5B,OAAO,MAAM,IAAI,CAAC,eAAe,CAAC,IAAI,EAAE,KAAK,CAAC,EAAE,EAAE,QAAQ,CAAC,CAAC;aAC7D;SACF;QACD,OAAO,KAAK,CAAC;IACf,CAAC;IAED,KAAK,CAAC,IAAI,CAAC,QAAQ;QACjB,MAAM,QAAQ,GAAG,MAAM,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,OAAO,GAAG,sCAAsC,EAAE,QAAQ,CAAC,CAAA;QACzG,OAAO,QAAQ,CAAC,OAAO,EAAE,CAAC,QAAQ,CAAC,KAAK,CAAC,eAAe,CAAC,CAAC,GAAG,EAAE,CAAC;IAClE,CAAC;IAED,KAAK,CAAC,sBAAsB,CAAC,IAAY;QACvC,MAAM,IAAI,CAAC,mBAAmB,CAAC,IAAI,CAAC,CAAC;QAErC,MAAM,QAAQ,GAAG,IAAI,gDAAyB,EAAE;aAC7C,QAAQ,CAAC,IAAI,CAAC;aACd,KAAK,EAAE,CAAC;QACX,OAAO,MAAM,IAAI,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;IACnC,CAAC;CACF;AAjND,8CAiNC","sourcesContent":["import {ApiHelpers} from \"./ApiHelpers\";\nimport {DatePickerDataTypeBuilder} from \"@umbraco/json-models-builders\";\n\nexport class DataTypeApiHelper {\n api: ApiHelpers\n\n constructor(api: ApiHelpers) {\n this.api = api;\n }\n\n async get(id: string) {\n const response = await this.api.get(this.api.baseUrl + '/umbraco/management/api/v1/data-type/' + id);\n return await response.json();\n }\n\n async create(name: string, editorAlias: string, values: { alias: string; value: string; }[], parentId?: string, editorUiAlias?: string, id?: string) {\n const dataType = {\n \"name\": name,\n \"editorAlias\": editorAlias,\n \"editorUiAlias\": editorUiAlias,\n \"values\": values,\n \"id\": id,\n \"parent\": parentId ? {\"id\" : parentId} : null\n };\n const response = await this.api.post(this.api.baseUrl + '/umbraco/management/api/v1/data-type', dataType);\n // Returns the id of the created dataType\n return response.headers().location.split(\"v1/data-type/\").pop();\n }\n\n async update(id: string, dataType) {\n const updateDataType = {\n \"name\": dataType.name,\n \"editorAlias\": dataType.editorAlias,\n \"editorUiAlias\": dataType.editorUiAlias,\n \"values\": dataType.values,\n };\n return await this.api.put(this.api.baseUrl + '/umbraco/management/api/v1/data-type/' + id, updateDataType);\n }\n\n async delete(id: string) {\n return await this.api.delete(this.api.baseUrl + '/umbraco/management/api/v1/data-type/' + id);\n }\n\n async getAllAtRoot() {\n return await this.api.get(this.api.baseUrl + '/umbraco/management/api/v1/tree/data-type/root?skip=0&take=10000&foldersOnly=false');\n }\n\n async doesExist(id: string) {\n const response = await this.api.get(this.api.baseUrl + '/umbraco/management/api/v1/data-type/' + id);\n return response.status() === 200;\n }\n\n async getItems(ids: string[]) {\n let idArray = 'id=' + ids[0];\n let i: number;\n\n for (i = 1; i < ids.length; ++i) {\n idArray += '&id=' + ids[i];\n }\n\n const response = await this.api.get(this.api.baseUrl + '/umbraco/management/api/v1/tree/data-type/item?' + idArray);\n return await response.json();\n }\n\n async getByName(name: string) {\n const rootDataTypes = await this.getAllAtRoot();\n const jsonDataTypes = await rootDataTypes.json();\n\n for (const dataType of jsonDataTypes.items) {\n if (dataType.name === name) {\n return this.get(dataType.id);\n } else if (dataType.isContainer || dataType.hasChildren) {\n const result = await this.recurseChildren(name, dataType.id, false);\n if (result) {\n return result;\n }\n }\n }\n return false;\n }\n\n async ensureNameNotExists(name: string) {\n const rootDataTypes = await this.getAllAtRoot();\n const jsonDataTypes = await rootDataTypes.json();\n\n for (const dataType of jsonDataTypes.items) {\n if (dataType.name === name) {\n if (dataType.isFolder) {\n return await this.recurseDeleteChildren(dataType);\n }\n return await this.delete(dataType.id);\n } else if (dataType.hasChildren) {\n await this.recurseChildren(name, dataType.id, true);\n\n }\n }\n return null;\n }\n\n async doesNameExist(name: string) {\n return await this.getByName(name);\n }\n\n async moveToFolder(dataTypeId: string, folderId: string) {\n const folderIdBody = {\n \"target\": { id: folderId }\n };\n return await this.api.put(this.api.baseUrl + '/umbraco/management/api/v1/data-type/' + dataTypeId + '/move', folderIdBody);\n }\n\n async copyToFolder(dataTypeId: string, folderId: string) {\n const folderIdBody = {\n \"target\": { id: folderId }\n };\n const response = await this.api.post(this.api.baseUrl + '/umbraco/management/api/v1/data-type/' + dataTypeId + '/copy', folderIdBody);\n // Returns the id of the copied dataType\n return response.headers().location.split(\"v1/data-type/\").pop();\n }\n\n // FOLDER\n async getFolder(id: string) {\n const response = await this.api.get(this.api.baseUrl + '/umbraco/management/api/v1/data-type/folder/' + id);\n return await response.json();\n }\n\n async createFolder(name: string, parentId?: string, id?: string) {\n const folderData = {\n \"name\": name,\n \"id\": id,\n \"parent\": parentId ? {\"id\" : parentId} : null\n };\n\n const response = await this.api.post(this.api.baseUrl + '/umbraco/management/api/v1/data-type/folder', folderData);\n // Returns the id of the created dataTypeFolder\n return response.headers().location.split(\"v1/data-type/folder/\").pop();\n }\n\n async renameFolder(id: string, name: string) {\n const folderData = {\n \"name\": name,\n };\n return await this.api.put(this.api.baseUrl + '/umbraco/management/api/v1/data-type/folder/' + id, folderData);\n }\n\n async deleteFolder(id: string) {\n return await this.api.delete(this.api.baseUrl + '/umbraco/management/api/v1/data-type/folder/' + id);\n }\n\n async doesFolderExist(id: string) {\n const response = await this.api.get(this.api.baseUrl + '/umbraco/management/api/v1/data-type/folder/' + id);\n return response.status() === 200;\n }\n\n async getChildren(id: string) {\n const response = await this.api.get(this.api.baseUrl + '/umbraco/management/api/v1/tree/data-type/children?parentId=' + id + '&skip=0&take=100&foldersOnly=false');\n const items = await response.json();\n return items.items;\n }\n\n private async recurseDeleteChildren(dataFolder) {\n if (!dataFolder.hasChildren) {\n return await this.deleteFolder(dataFolder.id);\n }\n const items = await this.getChildren(dataFolder.id);\n\n for (const child of items) {\n if (child.hasChildren) {\n await this.recurseDeleteChildren(child);\n } else if (child.isFolder) {\n await this.deleteFolder(child.id);\n } else {\n await this.delete(child.id);\n }\n }\n return await this.deleteFolder(dataFolder.id);\n }\n\n private async recurseChildren(name: string, id: string, toDelete: boolean) {\n const items = await this.getChildren(id);\n\n for (const child of items) {\n if (child.name === name) {\n if (!toDelete) {\n if (child.isFolder) {\n return await this.getFolder(child.id);\n }\n return await this.get(child.id);\n }\n if (child.isFolder) {\n return await this.recurseDeleteChildren(child);\n }\n return await this.delete(child.id);\n } else if (child.hasChildren) {\n return await this.recurseChildren(name, child.id, toDelete);\n }\n }\n return false;\n }\n\n async save(dataType) {\n const response = await this.api.post(this.api.baseUrl + '/umbraco/management/api/v1/data-type', dataType)\n return response.headers().location.split(\"v1/data-type/\").pop();\n }\n\n async createDateTypeDataType(name: string) {\n await this.ensureNameNotExists(name);\n\n const dataType = new DatePickerDataTypeBuilder()\n .withName(name)\n .build();\n return await this.save(dataType);\n }\n}"]}
|
|
@@ -0,0 +1,159 @@
|
|
|
1
|
+
import { Page } from "@playwright/test";
|
|
2
|
+
import { UiBaseLocators } from "./UiBaseLocators";
|
|
3
|
+
export declare class DataTypeUiHelper extends UiBaseLocators {
|
|
4
|
+
private readonly moveToBtn;
|
|
5
|
+
private readonly duplicateToBtn;
|
|
6
|
+
private readonly newDataTypeThreeDotsBtn;
|
|
7
|
+
private readonly dataTypeNameTxt;
|
|
8
|
+
private readonly selectBtn;
|
|
9
|
+
private readonly createDataTypeFolderBtn;
|
|
10
|
+
private readonly updateDataTypeFolderBtn;
|
|
11
|
+
private readonly includeLabelsSlider;
|
|
12
|
+
private readonly addColorBtn;
|
|
13
|
+
private readonly colorValueTxt;
|
|
14
|
+
private readonly offsetTimeSlider;
|
|
15
|
+
private readonly dateFormatTxt;
|
|
16
|
+
private readonly pageSizeTxt;
|
|
17
|
+
private readonly ascendingRadioBtn;
|
|
18
|
+
private readonly descendingRadioBtn;
|
|
19
|
+
private readonly chooseColumnsDisplayedBtn;
|
|
20
|
+
private readonly contentAppNameTxt;
|
|
21
|
+
private readonly orderByDropDownBox;
|
|
22
|
+
private readonly showContentAppFirstSlider;
|
|
23
|
+
private readonly editInInfiniteEditorSlider;
|
|
24
|
+
private readonly contentAppIconBtn;
|
|
25
|
+
private readonly aliasTxt;
|
|
26
|
+
private readonly widthTxt;
|
|
27
|
+
private readonly heightTxt;
|
|
28
|
+
private readonly addCropBtn;
|
|
29
|
+
private readonly saveCropBtn;
|
|
30
|
+
private readonly minimumTxt;
|
|
31
|
+
private readonly maximumTxt;
|
|
32
|
+
private readonly stepSizeTxt;
|
|
33
|
+
private readonly optionTxt;
|
|
34
|
+
private readonly addOptionBtn;
|
|
35
|
+
private readonly maximumAllowedCharsTxt;
|
|
36
|
+
private readonly numberOfRowsTxt;
|
|
37
|
+
private readonly minHeightTxt;
|
|
38
|
+
private readonly maxHeightTxt;
|
|
39
|
+
private readonly acceptedFileExtensionsTxt;
|
|
40
|
+
private readonly addAcceptedFileExtensionsBtn;
|
|
41
|
+
private readonly minimumNumberOfItemsTxt;
|
|
42
|
+
private readonly maximumNumberOfItemsTxt;
|
|
43
|
+
private readonly ignoreUserStartNodesSlider;
|
|
44
|
+
private readonly overlaySizeDropDownBox;
|
|
45
|
+
private readonly hideAnchorQueryStringInputSlider;
|
|
46
|
+
private readonly pickMultipleItemsSlider;
|
|
47
|
+
private readonly enableFocalPointSlider;
|
|
48
|
+
private readonly amountLowValueTxt;
|
|
49
|
+
private readonly amountHighValueTxt;
|
|
50
|
+
private readonly toolbarCheckboxes;
|
|
51
|
+
private readonly addStylesheetBtn;
|
|
52
|
+
private readonly dimensionsWidthTxt;
|
|
53
|
+
private readonly dimensionsHeightTxt;
|
|
54
|
+
private readonly maxImageSizeTxt;
|
|
55
|
+
private readonly hideLabelSlider;
|
|
56
|
+
private readonly defineTagGroupTxt;
|
|
57
|
+
private readonly showOpenButtonSlider;
|
|
58
|
+
private readonly enableMultipleChoiceSlider;
|
|
59
|
+
private readonly addOptionsBtn;
|
|
60
|
+
private readonly initialStateSlider;
|
|
61
|
+
private readonly showToggleLabelsSlider;
|
|
62
|
+
private readonly labelOnTxt;
|
|
63
|
+
private readonly labelOffTxt;
|
|
64
|
+
private readonly labelTxt;
|
|
65
|
+
private readonly chooseAcceptedTypesBtn;
|
|
66
|
+
private readonly chooseWithPlusBtn;
|
|
67
|
+
private readonly storageTypeDropDownBox;
|
|
68
|
+
private readonly allowDecimalsSlider;
|
|
69
|
+
private readonly chooseLayoutsBtn;
|
|
70
|
+
private readonly columnsDisplayedItems;
|
|
71
|
+
private readonly layoutsItems;
|
|
72
|
+
private readonly inlineRadioBtn;
|
|
73
|
+
private readonly duplicateBtn;
|
|
74
|
+
constructor(page: Page);
|
|
75
|
+
clickActionsMenuForDataType(name: string): Promise<void>;
|
|
76
|
+
clickActionsMenuAtRoot(): Promise<void>;
|
|
77
|
+
clickRootFolderCaretButton(): Promise<void>;
|
|
78
|
+
goToDataType(dataTypeName: string): Promise<void>;
|
|
79
|
+
clickMoveToButton(): Promise<void>;
|
|
80
|
+
clickDuplicateToButton(): Promise<void>;
|
|
81
|
+
clickNewDataTypeThreeDotsButton(): Promise<void>;
|
|
82
|
+
clickNewDataTypeFolderButton(): Promise<void>;
|
|
83
|
+
enterDataTypeName(name: string): Promise<void>;
|
|
84
|
+
clickCreateFolderButton(): Promise<void>;
|
|
85
|
+
clickUpdateFolderButton(): Promise<void>;
|
|
86
|
+
selectPropertyEditorUIByName(name: string): Promise<void>;
|
|
87
|
+
deleteDataType(name: string): Promise<void>;
|
|
88
|
+
deleteDataTypeFolder(folderName: string): Promise<void>;
|
|
89
|
+
moveDataTypeToFolder(folderName: string): Promise<void>;
|
|
90
|
+
duplicateDataTypeToFolder(folderName: string): Promise<void>;
|
|
91
|
+
addStartNode(startNodeName: string): Promise<void>;
|
|
92
|
+
clickIncludeLabelsSlider(): Promise<void>;
|
|
93
|
+
removeColorByValue(value: string): Promise<void>;
|
|
94
|
+
addColor(value: string): Promise<void>;
|
|
95
|
+
changeValueType(valueType: string): Promise<void>;
|
|
96
|
+
clickOffsetTimeSlider(): Promise<void>;
|
|
97
|
+
enterDateFormatValue(value: string): Promise<void>;
|
|
98
|
+
enterPageSizeValue(value: string): Promise<void>;
|
|
99
|
+
chooseOrderDirection(isAscending: boolean): Promise<void>;
|
|
100
|
+
addColumnDisplayed(contentType: string, contentName: string, propertyAlias: string): Promise<void>;
|
|
101
|
+
removeColumnDisplayed(propertyAlias: string): Promise<void>;
|
|
102
|
+
addLayouts(layoutAlias: string): Promise<void>;
|
|
103
|
+
removeLayouts(layoutAlias: string): Promise<void>;
|
|
104
|
+
chooseOrderByValue(value: string): Promise<void>;
|
|
105
|
+
enterContentAppName(name: string): Promise<void>;
|
|
106
|
+
clickShowContentAppFirstSlider(): Promise<void>;
|
|
107
|
+
clickEditInInfiniteEditorSlider(): Promise<void>;
|
|
108
|
+
clickBulkActionPermissionsSliderByValue(value: string): Promise<void>;
|
|
109
|
+
clickContentAppIconButton(): Promise<void>;
|
|
110
|
+
chooseContentAppIconByValue(value: string): Promise<void>;
|
|
111
|
+
enterCropValues(label: string, alias: string, width: string, height: string): Promise<void>;
|
|
112
|
+
clickAddCropButton(): Promise<void>;
|
|
113
|
+
clickSaveCropButton(): Promise<void>;
|
|
114
|
+
editCropByAlias(alias: string): Promise<void>;
|
|
115
|
+
removeCropByAlias(alias: string): Promise<void>;
|
|
116
|
+
enterMinimumValue(value: string): Promise<void>;
|
|
117
|
+
enterMaximumValue(value: string): Promise<void>;
|
|
118
|
+
enterStepSizeValue(value: string): Promise<void>;
|
|
119
|
+
clickAllowDecimalsSlider(): Promise<void>;
|
|
120
|
+
removeOptionByName(name: string): Promise<void>;
|
|
121
|
+
enterOptionName(name: string): Promise<void>;
|
|
122
|
+
clickAddOptionButton(): Promise<void>;
|
|
123
|
+
enterMaximumAllowedCharactersValue(value: string): Promise<void>;
|
|
124
|
+
enterNumberOfRowsValue(value: string): Promise<void>;
|
|
125
|
+
enterMaxHeightValue(value: string): Promise<void>;
|
|
126
|
+
enterMinHeightValue(value: string): Promise<void>;
|
|
127
|
+
enterAcceptedFileExtensions(value: string): Promise<void>;
|
|
128
|
+
removeAcceptedFileExtensionsByValue(value: string): Promise<void>;
|
|
129
|
+
clickAddAcceptedFileExtensionsButton(): Promise<void>;
|
|
130
|
+
enterMinimumNumberOfItemsValue(value: string): Promise<void>;
|
|
131
|
+
enterMaximumNumberOfItemsValue(value: string): Promise<void>;
|
|
132
|
+
clickIgnoreUserStartNodesSlider(): Promise<void>;
|
|
133
|
+
chooseOverlaySizeByValue(value: string): Promise<void>;
|
|
134
|
+
clickHideAnchorQueryStringInputSlider(): Promise<void>;
|
|
135
|
+
clickPickMultipleItemsSlider(): Promise<void>;
|
|
136
|
+
clickEnableFocalPointSlider(): Promise<void>;
|
|
137
|
+
enterAmountValue(lowValue: string, highValue: string): Promise<void>;
|
|
138
|
+
addAcceptedType(mediaTypeName: string): Promise<void>;
|
|
139
|
+
removeAcceptedType(mediaTypeName: string): Promise<void>;
|
|
140
|
+
clickChooseWithPlusButton(): Promise<void>;
|
|
141
|
+
removeMediaStartNode(mediaName: string): Promise<void>;
|
|
142
|
+
pickTheToolbarOptionByValue(values: any): Promise<void>;
|
|
143
|
+
addStylesheet(stylesheetName: string): Promise<void>;
|
|
144
|
+
enterDimensionsValue(width: string, height: string): Promise<void>;
|
|
145
|
+
enterMaximumSizeForImages(value: string): Promise<void>;
|
|
146
|
+
clickHideLabelSlider(): Promise<void>;
|
|
147
|
+
clickInlineRadioButton(): Promise<void>;
|
|
148
|
+
addImageUploadFolder(mediaFolderName: string): Promise<void>;
|
|
149
|
+
enterDefineTagGroupValue(value: string): Promise<void>;
|
|
150
|
+
selectStorageTypeOption(option: string): Promise<void>;
|
|
151
|
+
clickShowOpenButtonSlider(): Promise<void>;
|
|
152
|
+
removeContentStartNode(contentName: string): Promise<void>;
|
|
153
|
+
clickEnableMultipleChoiceSlider(): Promise<void>;
|
|
154
|
+
clickAddOptionsButton(): Promise<void>;
|
|
155
|
+
clickInitialStateSlider(): Promise<void>;
|
|
156
|
+
clickShowToggleLabelsSlider(): Promise<void>;
|
|
157
|
+
enterLabelOnValue(value: string): Promise<void>;
|
|
158
|
+
enterLabelOffValue(value: string): Promise<void>;
|
|
159
|
+
}
|