@umbraco/playwright-testhelpers 1.0.0
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/AliasHelper.d.ts +40 -0
- package/dist/lib/helpers/AliasHelper.js +64 -0
- package/dist/lib/helpers/AliasHelper.js.map +1 -0
- package/dist/lib/helpers/ApiHelpers.d.ts +49 -0
- package/dist/lib/helpers/ApiHelpers.js +141 -0
- package/dist/lib/helpers/ApiHelpers.js.map +1 -0
- package/dist/lib/helpers/ConstantHelper.d.ts +33 -0
- package/dist/lib/helpers/ConstantHelper.js +38 -0
- package/dist/lib/helpers/ConstantHelper.js.map +1 -0
- package/dist/lib/helpers/ContentApiHelper.d.ts +13 -0
- package/dist/lib/helpers/ContentApiHelper.js +153 -0
- package/dist/lib/helpers/ContentApiHelper.js.map +1 -0
- package/dist/lib/helpers/DatatypeApiHelper.d.ts +7 -0
- package/dist/lib/helpers/DatatypeApiHelper.js +30 -0
- package/dist/lib/helpers/DatatypeApiHelper.js.map +1 -0
- package/dist/lib/helpers/DocumentTypeApiHelper.d.ts +7 -0
- package/dist/lib/helpers/DocumentTypeApiHelper.js +34 -0
- package/dist/lib/helpers/DocumentTypeApiHelper.js.map +1 -0
- package/dist/lib/helpers/DomainApiHelper.d.ts +7 -0
- package/dist/lib/helpers/DomainApiHelper.js +31 -0
- package/dist/lib/helpers/DomainApiHelper.js.map +1 -0
- package/dist/lib/helpers/FolderApiHelper.d.ts +6 -0
- package/dist/lib/helpers/FolderApiHelper.js +16 -0
- package/dist/lib/helpers/FolderApiHelper.js.map +1 -0
- package/dist/lib/helpers/JsonHelper.d.ts +12 -0
- package/dist/lib/helpers/JsonHelper.js +29 -0
- package/dist/lib/helpers/JsonHelper.js.map +1 -0
- package/dist/lib/helpers/LanguagesApiHelper.d.ts +9 -0
- package/dist/lib/helpers/LanguagesApiHelper.js +57 -0
- package/dist/lib/helpers/LanguagesApiHelper.js.map +1 -0
- package/dist/lib/helpers/MacroApiHelper.d.ts +9 -0
- package/dist/lib/helpers/MacroApiHelper.js +56 -0
- package/dist/lib/helpers/MacroApiHelper.js.map +1 -0
- package/dist/lib/helpers/MediaApiHelper.d.ts +75 -0
- package/dist/lib/helpers/MediaApiHelper.js +268 -0
- package/dist/lib/helpers/MediaApiHelper.js.map +1 -0
- package/dist/lib/helpers/MediaTypeApiHelper.d.ts +7 -0
- package/dist/lib/helpers/MediaTypeApiHelper.js +29 -0
- package/dist/lib/helpers/MediaTypeApiHelper.js.map +1 -0
- package/dist/lib/helpers/MemberApiHelper.d.ts +6 -0
- package/dist/lib/helpers/MemberApiHelper.js +22 -0
- package/dist/lib/helpers/MemberApiHelper.js.map +1 -0
- package/dist/lib/helpers/MemberGroupApiHelper.d.ts +6 -0
- package/dist/lib/helpers/MemberGroupApiHelper.js +25 -0
- package/dist/lib/helpers/MemberGroupApiHelper.js.map +1 -0
- package/dist/lib/helpers/MemberTypeApiHelper.d.ts +6 -0
- package/dist/lib/helpers/MemberTypeApiHelper.js +28 -0
- package/dist/lib/helpers/MemberTypeApiHelper.js.map +1 -0
- package/dist/lib/helpers/PackageApiHelper.d.ts +8 -0
- package/dist/lib/helpers/PackageApiHelper.js +28 -0
- package/dist/lib/helpers/PackageApiHelper.js.map +1 -0
- package/dist/lib/helpers/PartialViewApiHelper.d.ts +9 -0
- package/dist/lib/helpers/PartialViewApiHelper.js +50 -0
- package/dist/lib/helpers/PartialViewApiHelper.js.map +1 -0
- package/dist/lib/helpers/RelationTypeApiHelper.d.ts +6 -0
- package/dist/lib/helpers/RelationTypeApiHelper.js +28 -0
- package/dist/lib/helpers/RelationTypeApiHelper.js.map +1 -0
- package/dist/lib/helpers/ScriptApiHelper.d.ts +11 -0
- package/dist/lib/helpers/ScriptApiHelper.js +58 -0
- package/dist/lib/helpers/ScriptApiHelper.js.map +1 -0
- package/dist/lib/helpers/StylesheetApiHelper.d.ts +7 -0
- package/dist/lib/helpers/StylesheetApiHelper.js +28 -0
- package/dist/lib/helpers/StylesheetApiHelper.js.map +1 -0
- package/dist/lib/helpers/TemplatesApiHelper.d.ts +8 -0
- package/dist/lib/helpers/TemplatesApiHelper.js +47 -0
- package/dist/lib/helpers/TemplatesApiHelper.js.map +1 -0
- package/dist/lib/helpers/UiHelpers.d.ts +23 -0
- package/dist/lib/helpers/UiHelpers.js +134 -0
- package/dist/lib/helpers/UiHelpers.js.map +1 -0
- package/dist/lib/helpers/UserApiHelper.d.ts +9 -0
- package/dist/lib/helpers/UserApiHelper.js +44 -0
- package/dist/lib/helpers/UserApiHelper.js.map +1 -0
- package/dist/lib/helpers/UserGroupApiHelper.d.ts +7 -0
- package/dist/lib/helpers/UserGroupApiHelper.js +32 -0
- package/dist/lib/helpers/UserGroupApiHelper.js.map +1 -0
- package/dist/lib/helpers/index.d.ts +6 -0
- package/dist/lib/helpers/index.js +16 -0
- package/dist/lib/helpers/index.js.map +1 -0
- package/dist/lib/helpers/testExtension.d.ts +7 -0
- package/dist/lib/helpers/testExtension.js +17 -0
- package/dist/lib/helpers/testExtension.js.map +1 -0
- package/dist/lib/index.d.ts +1 -0
- package/dist/lib/index.js +5 -0
- package/dist/lib/index.js.map +1 -0
- package/dist/tsconfig.tsbuildinfo +1 -0
- package/dist/umbraco.config.d.ts +14 -0
- package/dist/umbraco.config.js +18 -0
- package/dist/umbraco.config.js.map +1 -0
- package/package.json +41 -0
|
@@ -0,0 +1,268 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.MediaApiHelper = void 0;
|
|
4
|
+
const JsonHelper_1 = require("./JsonHelper");
|
|
5
|
+
const node_fetch_1 = require("node-fetch");
|
|
6
|
+
const playwright_models_1 = require("@umbraco/playwright-models");
|
|
7
|
+
const playwright_models_2 = require("@umbraco/playwright-models");
|
|
8
|
+
const https = require('https');
|
|
9
|
+
const FormData = require('form-data');
|
|
10
|
+
class MediaApiHelper {
|
|
11
|
+
api;
|
|
12
|
+
constructor(api) {
|
|
13
|
+
this.api = api;
|
|
14
|
+
}
|
|
15
|
+
//Does not check the bin
|
|
16
|
+
async ensureNameNotExists(name) {
|
|
17
|
+
const response = await this.api.get(this.api.baseUrl + '/umbraco/backoffice/UmbracoTrees/MediaTree/GetNodes?id=-1');
|
|
18
|
+
const searchBody = await JsonHelper_1.JsonHelper.getBody(response);
|
|
19
|
+
let mediaNameId = null;
|
|
20
|
+
for (const sb of searchBody) {
|
|
21
|
+
if (sb.name == name) {
|
|
22
|
+
mediaNameId = sb.id;
|
|
23
|
+
}
|
|
24
|
+
}
|
|
25
|
+
if (mediaNameId !== null) {
|
|
26
|
+
await this.api.post(this.api.baseUrl + '/umbraco/backoffice/umbracoApi/media/DeleteById?id=' + mediaNameId);
|
|
27
|
+
await this.clearRecycleBin();
|
|
28
|
+
}
|
|
29
|
+
}
|
|
30
|
+
async save(media) {
|
|
31
|
+
const url = this.api.baseUrl + "/umbraco/backoffice/umbracoApi/media/PostSave";
|
|
32
|
+
const formData = new FormData();
|
|
33
|
+
formData.append('contentItem', JSON.stringify(media));
|
|
34
|
+
const context = this.api.page.context();
|
|
35
|
+
const cookies = await context.cookies();
|
|
36
|
+
let cookieHeader = "";
|
|
37
|
+
for (const cook of cookies) {
|
|
38
|
+
cookieHeader += cook.name + "=" + cook.value + ";";
|
|
39
|
+
}
|
|
40
|
+
const httpsAgent = new https.Agent({
|
|
41
|
+
rejectUnauthorized: false
|
|
42
|
+
});
|
|
43
|
+
const response = await (0, node_fetch_1.default)(url, {
|
|
44
|
+
method: 'POST',
|
|
45
|
+
body: formData,
|
|
46
|
+
headers: {
|
|
47
|
+
'X-UMB-XSRF-TOKEN': await this.api.getCsrfToken(),
|
|
48
|
+
'Cookie': cookieHeader
|
|
49
|
+
},
|
|
50
|
+
agent: httpsAgent
|
|
51
|
+
});
|
|
52
|
+
let json = await response.text();
|
|
53
|
+
return JsonHelper_1.JsonHelper.parseString(json);
|
|
54
|
+
}
|
|
55
|
+
;
|
|
56
|
+
async saveFile(mediaItem, mediaFile) {
|
|
57
|
+
const url = this.api.baseUrl + "/umbraco/backoffice/umbracoApi/media/PostSave";
|
|
58
|
+
const context = this.api.page.context();
|
|
59
|
+
const cookies = await context.cookies();
|
|
60
|
+
let cookieHeader = "";
|
|
61
|
+
for (const cook of cookies) {
|
|
62
|
+
cookieHeader += cook.name + "=" + cook.value + ";";
|
|
63
|
+
}
|
|
64
|
+
const response = await this.api.page.request.post(url, {
|
|
65
|
+
ignoreHTTPSErrors: true,
|
|
66
|
+
headers: {
|
|
67
|
+
Accept: "*/*",
|
|
68
|
+
ContentType: "multipart/form-data",
|
|
69
|
+
'X-UMB-XSRF-TOKEN': await this.api.getCsrfToken(),
|
|
70
|
+
Cookie: cookieHeader,
|
|
71
|
+
},
|
|
72
|
+
multipart: {
|
|
73
|
+
file_umbracoFile__: {
|
|
74
|
+
name: mediaFile.name,
|
|
75
|
+
mimeType: mediaFile.mimeType,
|
|
76
|
+
buffer: mediaFile.buffer,
|
|
77
|
+
},
|
|
78
|
+
contentItem: JSON.stringify(mediaItem),
|
|
79
|
+
},
|
|
80
|
+
});
|
|
81
|
+
let json = await response.text();
|
|
82
|
+
return JsonHelper_1.JsonHelper.parseString(json);
|
|
83
|
+
}
|
|
84
|
+
;
|
|
85
|
+
//Article
|
|
86
|
+
async createDefaultArticle(name) {
|
|
87
|
+
await this.api.media.ensureNameNotExists(name);
|
|
88
|
+
const mediaItem = new playwright_models_1.MediaBuilder()
|
|
89
|
+
.withName(name)
|
|
90
|
+
.withContentTypeAlias('umbracoMediaArticle')
|
|
91
|
+
.build();
|
|
92
|
+
await this.api.media.save(mediaItem);
|
|
93
|
+
return mediaItem;
|
|
94
|
+
}
|
|
95
|
+
async createArticleWithFile(name, fileName, path, mimeType) {
|
|
96
|
+
await this.api.media.ensureNameNotExists(name);
|
|
97
|
+
const mediaItem = new playwright_models_1.MediaBuilder()
|
|
98
|
+
.withName(name)
|
|
99
|
+
.withContentTypeAlias('umbracoMediaArticle')
|
|
100
|
+
.build();
|
|
101
|
+
const mediaFile = new playwright_models_2.MediaFileBuilder()
|
|
102
|
+
.withName(fileName)
|
|
103
|
+
.withPath(path)
|
|
104
|
+
.withMimeType(mimeType);
|
|
105
|
+
await this.api.media.saveFile(mediaItem, mediaFile);
|
|
106
|
+
}
|
|
107
|
+
//Audio
|
|
108
|
+
async createDefaultAudio(name) {
|
|
109
|
+
await this.api.media.ensureNameNotExists(name);
|
|
110
|
+
const mediaItem = new playwright_models_1.MediaBuilder()
|
|
111
|
+
.withName(name)
|
|
112
|
+
.withContentTypeAlias('umbracoMediaAudio')
|
|
113
|
+
.build();
|
|
114
|
+
await this.api.media.save(mediaItem);
|
|
115
|
+
return mediaItem;
|
|
116
|
+
}
|
|
117
|
+
async createAudioWithFile(name, fileName, path, mimeType) {
|
|
118
|
+
await this.api.media.ensureNameNotExists(name);
|
|
119
|
+
const mediaItem = new playwright_models_1.MediaBuilder()
|
|
120
|
+
.withName(name)
|
|
121
|
+
.withContentTypeAlias('umbracoMediaAudio')
|
|
122
|
+
.build();
|
|
123
|
+
const mediaFile = new playwright_models_2.MediaFileBuilder()
|
|
124
|
+
.withName(fileName)
|
|
125
|
+
.withPath(path)
|
|
126
|
+
.withMimeType(mimeType);
|
|
127
|
+
await this.api.media.saveFile(mediaItem, mediaFile);
|
|
128
|
+
}
|
|
129
|
+
//File
|
|
130
|
+
async createDefaultFile(name) {
|
|
131
|
+
await this.api.media.ensureNameNotExists(name);
|
|
132
|
+
const mediaItem = new playwright_models_1.MediaBuilder()
|
|
133
|
+
.withName(name)
|
|
134
|
+
.withContentTypeAlias('File')
|
|
135
|
+
.build();
|
|
136
|
+
await this.api.media.save(mediaItem);
|
|
137
|
+
return mediaItem;
|
|
138
|
+
}
|
|
139
|
+
async createFileWithFile(name, fileName, path, mimeType) {
|
|
140
|
+
await this.api.media.ensureNameNotExists(name);
|
|
141
|
+
const mediaItem = new playwright_models_1.MediaBuilder()
|
|
142
|
+
.withName(name)
|
|
143
|
+
.withContentTypeAlias('File')
|
|
144
|
+
.build();
|
|
145
|
+
const mediaFile = new playwright_models_2.MediaFileBuilder()
|
|
146
|
+
.withName(fileName)
|
|
147
|
+
.withPath(path)
|
|
148
|
+
.withMimeType(mimeType);
|
|
149
|
+
await this.api.media.saveFile(mediaItem, mediaFile);
|
|
150
|
+
}
|
|
151
|
+
//Folder
|
|
152
|
+
async createDefaultFolder(name) {
|
|
153
|
+
await this.api.media.ensureNameNotExists(name);
|
|
154
|
+
const mediaItem = new playwright_models_1.MediaBuilder()
|
|
155
|
+
.withName(name)
|
|
156
|
+
.withContentTypeAlias('Folder')
|
|
157
|
+
.build();
|
|
158
|
+
await this.api.media.save(mediaItem);
|
|
159
|
+
return mediaItem;
|
|
160
|
+
}
|
|
161
|
+
//Image
|
|
162
|
+
async createDefaultImage(name) {
|
|
163
|
+
await this.api.media.ensureNameNotExists(name);
|
|
164
|
+
const mediaItem = new playwright_models_1.MediaBuilder()
|
|
165
|
+
.withName(name)
|
|
166
|
+
.withContentTypeAlias('Image')
|
|
167
|
+
.build();
|
|
168
|
+
await this.api.media.save(mediaItem);
|
|
169
|
+
return mediaItem;
|
|
170
|
+
}
|
|
171
|
+
async createImageWithFile(name, umbracoFileValue, fileName, path, mimeType) {
|
|
172
|
+
await this.api.media.ensureNameNotExists(name);
|
|
173
|
+
const mediaItem = new playwright_models_1.MediaBuilder()
|
|
174
|
+
.withName(name)
|
|
175
|
+
.withContentTypeAlias('Image')
|
|
176
|
+
.addProperty()
|
|
177
|
+
.withAlias('umbracoFile')
|
|
178
|
+
.withValue(umbracoFileValue)
|
|
179
|
+
.done()
|
|
180
|
+
.build();
|
|
181
|
+
const mediaFile = new playwright_models_2.MediaFileBuilder()
|
|
182
|
+
.withName(fileName)
|
|
183
|
+
.withPath(path)
|
|
184
|
+
.withMimeType(mimeType);
|
|
185
|
+
await this.api.media.saveFile(mediaItem, mediaFile);
|
|
186
|
+
}
|
|
187
|
+
//VectorGraphics
|
|
188
|
+
async createDefaultVectorGraphics(name) {
|
|
189
|
+
await this.api.media.ensureNameNotExists(name);
|
|
190
|
+
const mediaItem = new playwright_models_1.MediaBuilder()
|
|
191
|
+
.withName(name)
|
|
192
|
+
.withContentTypeAlias('umbracoMediaVectorGraphics')
|
|
193
|
+
.build();
|
|
194
|
+
await this.api.media.save(mediaItem);
|
|
195
|
+
return mediaItem;
|
|
196
|
+
}
|
|
197
|
+
async createVectorGraphicsWithFile(name, fileName, path, mimeType) {
|
|
198
|
+
await this.api.media.ensureNameNotExists(name);
|
|
199
|
+
const mediaItem = new playwright_models_1.MediaBuilder()
|
|
200
|
+
.withName(name)
|
|
201
|
+
.withContentTypeAlias('umbracoMediaVectorGraphics')
|
|
202
|
+
.build();
|
|
203
|
+
const mediaFile = new playwright_models_2.MediaFileBuilder()
|
|
204
|
+
.withName(fileName)
|
|
205
|
+
.withPath(path)
|
|
206
|
+
.withMimeType(mimeType);
|
|
207
|
+
await this.api.media.saveFile(mediaItem, mediaFile);
|
|
208
|
+
}
|
|
209
|
+
//Video
|
|
210
|
+
async createDefaultVideo(name) {
|
|
211
|
+
await this.api.media.ensureNameNotExists(name);
|
|
212
|
+
const mediaItem = new playwright_models_1.MediaBuilder()
|
|
213
|
+
.withName(name)
|
|
214
|
+
.withContentTypeAlias('umbracoMediaVideo')
|
|
215
|
+
.build();
|
|
216
|
+
await this.api.media.save(mediaItem);
|
|
217
|
+
return mediaItem;
|
|
218
|
+
}
|
|
219
|
+
async createVideoWithFile(name, fileName, path, mimeType) {
|
|
220
|
+
await this.api.media.ensureNameNotExists(name);
|
|
221
|
+
const mediaItem = new playwright_models_1.MediaBuilder()
|
|
222
|
+
.withName(name)
|
|
223
|
+
.withContentTypeAlias('umbracoMediaVideo')
|
|
224
|
+
.build();
|
|
225
|
+
const mediaFile = new playwright_models_2.MediaFileBuilder()
|
|
226
|
+
.withName(fileName)
|
|
227
|
+
.withPath(path)
|
|
228
|
+
.withMimeType(mimeType);
|
|
229
|
+
await this.api.media.saveFile(mediaItem, mediaFile);
|
|
230
|
+
}
|
|
231
|
+
async createAllFileTypes(articleName, audioName, fileName, folderName, imageName, vectorGraphicsName, videoName) {
|
|
232
|
+
await this.api.media.createDefaultArticle(articleName);
|
|
233
|
+
await this.api.media.createDefaultAudio(audioName);
|
|
234
|
+
await this.api.media.createDefaultFile(fileName);
|
|
235
|
+
await this.api.media.createDefaultFolder(folderName);
|
|
236
|
+
await this.api.media.createDefaultImage(imageName);
|
|
237
|
+
await this.api.media.createDefaultVectorGraphics(vectorGraphicsName);
|
|
238
|
+
await this.api.media.createDefaultVideo(videoName);
|
|
239
|
+
}
|
|
240
|
+
async deleteAllFiles(articleName, audioName, fileName, folderName, imageName, vectorGraphicsName, videoName) {
|
|
241
|
+
await this.api.media.ensureNameNotExists(articleName);
|
|
242
|
+
await this.api.media.ensureNameNotExists(audioName);
|
|
243
|
+
await this.api.media.ensureNameNotExists(fileName);
|
|
244
|
+
await this.api.media.ensureNameNotExists(folderName);
|
|
245
|
+
await this.api.media.ensureNameNotExists(imageName);
|
|
246
|
+
await this.api.media.ensureNameNotExists(vectorGraphicsName);
|
|
247
|
+
await this.api.media.ensureNameNotExists(videoName);
|
|
248
|
+
}
|
|
249
|
+
async deleteAllMedia() {
|
|
250
|
+
const response = await this.api.get(this.api.baseUrl + `/umbraco/backoffice/UmbracoTrees/ApplicationTree/GetApplicationTrees?application=media&tree=&use=main`);
|
|
251
|
+
const content = await JsonHelper_1.JsonHelper.getBody(response);
|
|
252
|
+
if (content !== null) {
|
|
253
|
+
for (const child of content.children) {
|
|
254
|
+
if (child.id > 0) {
|
|
255
|
+
await this.deleteById(child.id);
|
|
256
|
+
}
|
|
257
|
+
}
|
|
258
|
+
}
|
|
259
|
+
}
|
|
260
|
+
async deleteById(id) {
|
|
261
|
+
await this.api.post(this.api.baseUrl + `/umbraco/backoffice/UmbracoApi/Media/DeleteById?id=${id}`);
|
|
262
|
+
}
|
|
263
|
+
async clearRecycleBin() {
|
|
264
|
+
await this.api.post(this.api.baseUrl + '/umbraco/backoffice/umbracoApi/media/EmptyRecycleBin');
|
|
265
|
+
}
|
|
266
|
+
}
|
|
267
|
+
exports.MediaApiHelper = MediaApiHelper;
|
|
268
|
+
//# sourceMappingURL=MediaApiHelper.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"MediaApiHelper.js","sourceRoot":"","sources":["../../../lib/helpers/MediaApiHelper.ts"],"names":[],"mappings":"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","sourcesContent":["import {ApiHelpers} from \"./ApiHelpers\";\nimport {JsonHelper} from \"./JsonHelper\";\nimport fetch from 'node-fetch';\nimport {MediaBuilder} from \"@umbraco/playwright-models\";\nimport {MediaFileBuilder} from \"@umbraco/playwright-models\";\n\nconst https = require('https');\nconst FormData = require('form-data');\n\nexport class MediaApiHelper {\n api: ApiHelpers\n\n constructor(api: ApiHelpers) {\n this.api = api;\n }\n\n //Does not check the bin\n async ensureNameNotExists(name: string) {\n const response = await this.api.get(this.api.baseUrl + '/umbraco/backoffice/UmbracoTrees/MediaTree/GetNodes?id=-1');\n const searchBody = await JsonHelper.getBody(response);\n\n let mediaNameId = null;\n\n for (const sb of searchBody) {\n if (sb.name == name) {\n mediaNameId = sb.id;\n }\n }\n\n if (mediaNameId !== null) {\n await this.api.post(this.api.baseUrl + '/umbraco/backoffice/umbracoApi/media/DeleteById?id=' + mediaNameId);\n\n await this.clearRecycleBin();\n }\n }\n\n async save(media) {\n const url = this.api.baseUrl + \"/umbraco/backoffice/umbracoApi/media/PostSave\";\n const formData = new FormData();\n formData.append('contentItem', JSON.stringify(media));\n\n const context = this.api.page.context();\n const cookies = await context.cookies();\n let cookieHeader = \"\";\n for (const cook of cookies) {\n cookieHeader += cook.name + \"=\" + cook.value + \";\";\n }\n\n const httpsAgent = new https.Agent({\n rejectUnauthorized: false\n });\n\n const response = await fetch(url, {\n method: 'POST',\n body: formData,\n headers: {\n 'X-UMB-XSRF-TOKEN': await this.api.getCsrfToken(),\n 'Cookie': cookieHeader\n },\n agent: httpsAgent\n });\n\n let json = await response.text();\n return JsonHelper.parseString(json);\n };\n\n async saveFile(mediaItem, mediaFile) {\n const url = this.api.baseUrl + \"/umbraco/backoffice/umbracoApi/media/PostSave\";\n const context = this.api.page.context();\n const cookies = await context.cookies();\n let cookieHeader = \"\";\n for (const cook of cookies) {\n cookieHeader += cook.name + \"=\" + cook.value + \";\";\n }\n const response = await this.api.page.request.post(url, {\n ignoreHTTPSErrors: true,\n headers: {\n Accept: \"*/*\",\n ContentType: \"multipart/form-data\",\n 'X-UMB-XSRF-TOKEN': await this.api.getCsrfToken(),\n Cookie: cookieHeader,\n },\n multipart: {\n file_umbracoFile__: {\n name: mediaFile.name,\n mimeType: mediaFile.mimeType,\n buffer: mediaFile.buffer,\n },\n contentItem: JSON.stringify(mediaItem),\n },\n });\n let json = await response.text();\n return JsonHelper.parseString(json);\n };\n \n //Article\n async createDefaultArticle(name) {\n await this.api.media.ensureNameNotExists(name);\n const mediaItem = new MediaBuilder()\n .withName(name)\n .withContentTypeAlias('umbracoMediaArticle')\n .build()\n await this.api.media.save(mediaItem);\n return mediaItem;\n }\n\n async createArticleWithFile(name, fileName, path, mimeType) {\n await this.api.media.ensureNameNotExists(name);\n const mediaItem = new MediaBuilder()\n .withName(name)\n .withContentTypeAlias('umbracoMediaArticle')\n .build()\n\n const mediaFile = new MediaFileBuilder()\n .withName(fileName)\n .withPath(path)\n .withMimeType(mimeType)\n await this.api.media.saveFile(mediaItem, mediaFile)\n }\n\n //Audio\n async createDefaultAudio(name) {\n await this.api.media.ensureNameNotExists(name);\n const mediaItem = new MediaBuilder()\n .withName(name)\n .withContentTypeAlias('umbracoMediaAudio')\n .build()\n await this.api.media.save(mediaItem);\n return mediaItem;\n }\n\n async createAudioWithFile(name, fileName, path, mimeType) {\n await this.api.media.ensureNameNotExists(name);\n const mediaItem = new MediaBuilder()\n .withName(name)\n .withContentTypeAlias('umbracoMediaAudio')\n .build()\n\n const mediaFile = new MediaFileBuilder()\n .withName(fileName)\n .withPath(path)\n .withMimeType(mimeType)\n await this.api.media.saveFile(mediaItem, mediaFile)\n }\n\n //File\n async createDefaultFile(name) {\n await this.api.media.ensureNameNotExists(name);\n const mediaItem = new MediaBuilder()\n .withName(name)\n .withContentTypeAlias('File')\n .build()\n await this.api.media.save(mediaItem);\n return mediaItem;\n }\n\n async createFileWithFile(name, fileName, path, mimeType) {\n await this.api.media.ensureNameNotExists(name);\n const mediaItem = new MediaBuilder()\n .withName(name)\n .withContentTypeAlias('File')\n .build()\n\n const mediaFile = new MediaFileBuilder()\n .withName(fileName)\n .withPath(path)\n .withMimeType(mimeType)\n await this.api.media.saveFile(mediaItem, mediaFile)\n }\n\n //Folder\n async createDefaultFolder(name) {\n await this.api.media.ensureNameNotExists(name);\n const mediaItem = new MediaBuilder()\n .withName(name)\n .withContentTypeAlias('Folder')\n .build()\n await this.api.media.save(mediaItem);\n return mediaItem;\n }\n\n //Image\n async createDefaultImage(name) {\n await this.api.media.ensureNameNotExists(name);\n const mediaItem = new MediaBuilder()\n .withName(name)\n .withContentTypeAlias('Image')\n .build()\n await this.api.media.save(mediaItem);\n return mediaItem;\n }\n\n async createImageWithFile(name, umbracoFileValue, fileName, path, mimeType) {\n await this.api.media.ensureNameNotExists(name);\n const mediaItem = new MediaBuilder()\n .withName(name)\n .withContentTypeAlias('Image')\n .addProperty()\n .withAlias('umbracoFile')\n .withValue(umbracoFileValue)\n .done()\n .build()\n\n const mediaFile = new MediaFileBuilder()\n .withName(fileName)\n .withPath(path)\n .withMimeType(mimeType)\n await this.api.media.saveFile(mediaItem, mediaFile)\n }\n\n //VectorGraphics\n async createDefaultVectorGraphics(name) {\n await this.api.media.ensureNameNotExists(name);\n const mediaItem = new MediaBuilder()\n .withName(name)\n .withContentTypeAlias('umbracoMediaVectorGraphics')\n .build()\n await this.api.media.save(mediaItem);\n return mediaItem;\n }\n\n async createVectorGraphicsWithFile(name, fileName, path, mimeType) {\n await this.api.media.ensureNameNotExists(name);\n const mediaItem = new MediaBuilder()\n .withName(name)\n .withContentTypeAlias('umbracoMediaVectorGraphics')\n .build()\n\n const mediaFile = new MediaFileBuilder()\n .withName(fileName)\n .withPath(path)\n .withMimeType(mimeType)\n await this.api.media.saveFile(mediaItem, mediaFile)\n }\n\n //Video\n async createDefaultVideo(name) {\n await this.api.media.ensureNameNotExists(name);\n const mediaItem = new MediaBuilder()\n .withName(name)\n .withContentTypeAlias('umbracoMediaVideo')\n .build()\n await this.api.media.save(mediaItem);\n return mediaItem;\n }\n\n async createVideoWithFile(name, fileName, path, mimeType) {\n await this.api.media.ensureNameNotExists(name);\n const mediaItem = new MediaBuilder()\n .withName(name)\n .withContentTypeAlias('umbracoMediaVideo')\n .build()\n\n const mediaFile = new MediaFileBuilder()\n .withName(fileName)\n .withPath(path)\n .withMimeType(mimeType)\n await this.api.media.saveFile(mediaItem, mediaFile)\n }\n\n async createAllFileTypes(articleName, audioName, fileName, folderName, imageName, vectorGraphicsName, videoName) {\n await this.api.media.createDefaultArticle(articleName);\n await this.api.media.createDefaultAudio(audioName);\n await this.api.media.createDefaultFile(fileName);\n await this.api.media.createDefaultFolder(folderName);\n await this.api.media.createDefaultImage(imageName);\n await this.api.media.createDefaultVectorGraphics(vectorGraphicsName);\n await this.api.media.createDefaultVideo(videoName);\n }\n\n async deleteAllFiles(articleName, audioName, fileName, folderName, imageName, vectorGraphicsName, videoName) {\n await this.api.media.ensureNameNotExists(articleName);\n await this.api.media.ensureNameNotExists(audioName);\n await this.api.media.ensureNameNotExists(fileName);\n await this.api.media.ensureNameNotExists(folderName);\n await this.api.media.ensureNameNotExists(imageName);\n await this.api.media.ensureNameNotExists(vectorGraphicsName);\n await this.api.media.ensureNameNotExists(videoName);\n }\n\n async deleteAllMedia() {\n const response = await this.api.get(this.api.baseUrl + `/umbraco/backoffice/UmbracoTrees/ApplicationTree/GetApplicationTrees?application=media&tree=&use=main`);\n const content = await JsonHelper.getBody(response);\n\n if (content !== null) {\n for (const child of content.children) {\n if (child.id > 0) {\n await this.deleteById(child.id);\n }\n }\n }\n }\n\n async deleteById(id) {\n await this.api.post(this.api.baseUrl + `/umbraco/backoffice/UmbracoApi/Media/DeleteById?id=${id}`)\n }\n\n async clearRecycleBin(){\n await this.api.post(this.api.baseUrl + '/umbraco/backoffice/umbracoApi/media/EmptyRecycleBin');\n }\n}\n"]}
|
|
@@ -0,0 +1,29 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.MediaTypeApiHelper = void 0;
|
|
4
|
+
const JsonHelper_1 = require("./JsonHelper");
|
|
5
|
+
class MediaTypeApiHelper {
|
|
6
|
+
api;
|
|
7
|
+
constructor(api) {
|
|
8
|
+
this.api = api;
|
|
9
|
+
}
|
|
10
|
+
async ensureNameNotExists(name) {
|
|
11
|
+
const response = await this.api.get(this.api.baseUrl + '/umbraco/backoffice/UmbracoTrees/MediaTypeTree/GetNodes?id=-1');
|
|
12
|
+
const searchBody = await JsonHelper_1.JsonHelper.getBody(response);
|
|
13
|
+
let mediaTypeId = null;
|
|
14
|
+
for (const sb of searchBody) {
|
|
15
|
+
if (sb.name == name) {
|
|
16
|
+
mediaTypeId = sb.id;
|
|
17
|
+
}
|
|
18
|
+
}
|
|
19
|
+
if (mediaTypeId !== null) {
|
|
20
|
+
await this.api.post(this.api.baseUrl + '/umbraco/backoffice/UmbracoApi/MediaType/DeleteById?id=' + mediaTypeId);
|
|
21
|
+
await this.clearRecycleBin();
|
|
22
|
+
}
|
|
23
|
+
}
|
|
24
|
+
async clearRecycleBin() {
|
|
25
|
+
await this.api.post(this.api.baseUrl + '/umbraco/backoffice/umbracoApi/media/EmptyRecycleBin');
|
|
26
|
+
}
|
|
27
|
+
}
|
|
28
|
+
exports.MediaTypeApiHelper = MediaTypeApiHelper;
|
|
29
|
+
//# sourceMappingURL=MediaTypeApiHelper.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"MediaTypeApiHelper.js","sourceRoot":"","sources":["../../../lib/helpers/MediaTypeApiHelper.ts"],"names":[],"mappings":";;;AACA,6CAA0C;AAE1C,MAAa,kBAAkB;IAC7B,GAAG,CAAY;IAEf,YAAY,GAAe;QACzB,IAAI,CAAC,GAAG,GAAG,GAAG,CAAC;IACjB,CAAC;IAED,KAAK,CAAC,mBAAmB,CAAC,IAAY;QACpC,MAAM,QAAQ,GAAG,MAAM,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,OAAO,GAAG,+DAA+D,CAAC,CAAC;QACxH,MAAM,UAAU,GAAG,MAAM,uBAAU,CAAC,OAAO,CAAC,QAAQ,CAAC,CAAC;QAEtD,IAAI,WAAW,GAAG,IAAI,CAAC;QAEvB,KAAK,MAAM,EAAE,IAAI,UAAU,EAAE;YAC3B,IAAI,EAAE,CAAC,IAAI,IAAI,IAAI,EAAE;gBACnB,WAAW,GAAG,EAAE,CAAC,EAAE,CAAC;aACrB;SACF;QAED,IAAI,WAAW,KAAK,IAAI,EAAE;YACxB,MAAM,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,OAAO,GAAG,yDAAyD,GAAG,WAAW,CAAC,CAAC;YAChH,MAAM,IAAI,CAAC,eAAe,EAAE,CAAC;SAC9B;IACH,CAAC;IACD,KAAK,CAAC,eAAe;QACnB,MAAM,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,OAAO,GAAG,sDAAsD,CAAC,CAAC;IACjG,CAAC;CACF;AA3BD,gDA2BC","sourcesContent":["import { ApiHelpers } from \"./ApiHelpers\";\nimport { JsonHelper } from \"./JsonHelper\";\n\nexport class MediaTypeApiHelper{\n api: ApiHelpers\n\n constructor(api: ApiHelpers) {\n this.api = api;\n }\n\n async ensureNameNotExists(name: string) {\n const response = await this.api.get(this.api.baseUrl + '/umbraco/backoffice/UmbracoTrees/MediaTypeTree/GetNodes?id=-1');\n const searchBody = await JsonHelper.getBody(response);\n\n let mediaTypeId = null;\n\n for (const sb of searchBody) {\n if (sb.name == name) {\n mediaTypeId = sb.id;\n }\n }\n\n if (mediaTypeId !== null) {\n await this.api.post(this.api.baseUrl + '/umbraco/backoffice/UmbracoApi/MediaType/DeleteById?id=' + mediaTypeId);\n await this.clearRecycleBin();\n }\n }\n async clearRecycleBin(){\n await this.api.post(this.api.baseUrl + '/umbraco/backoffice/umbracoApi/media/EmptyRecycleBin');\n }\n}"]}
|
|
@@ -0,0 +1,22 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.MemberApiHelper = void 0;
|
|
4
|
+
const JsonHelper_1 = require("./JsonHelper");
|
|
5
|
+
class MemberApiHelper {
|
|
6
|
+
api;
|
|
7
|
+
constructor(api) {
|
|
8
|
+
this.api = api;
|
|
9
|
+
}
|
|
10
|
+
async ensureEmailNotExists(email) {
|
|
11
|
+
const response = await this.api.get(this.api.baseUrl + '/umbraco/backoffice/UmbracoApi/Member/GetPagedResults?pageNumber=1&pageSize=1&orderBy=Name&orderDirection=Ascending&filter=' + email);
|
|
12
|
+
const searchBody = await JsonHelper_1.JsonHelper.getBody(response);
|
|
13
|
+
if (searchBody.totalItems >= 1) {
|
|
14
|
+
const memberKey = searchBody.items[0].key;
|
|
15
|
+
if (memberKey !== null) {
|
|
16
|
+
await this.api.post(this.api.baseUrl + '/umbraco/backoffice/UmbracoApi/Member/DeleteByKey?key=' + memberKey);
|
|
17
|
+
}
|
|
18
|
+
}
|
|
19
|
+
}
|
|
20
|
+
}
|
|
21
|
+
exports.MemberApiHelper = MemberApiHelper;
|
|
22
|
+
//# sourceMappingURL=MemberApiHelper.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"MemberApiHelper.js","sourceRoot":"","sources":["../../../lib/helpers/MemberApiHelper.ts"],"names":[],"mappings":";;;AACA,6CAA0C;AAE1C,MAAa,eAAe;IAC1B,GAAG,CAAY;IAEf,YAAY,GAAe;QACzB,IAAI,CAAC,GAAG,GAAG,GAAG,CAAC;IACjB,CAAC;IAED,KAAK,CAAC,oBAAoB,CAAC,KAAa;QACtC,MAAM,QAAQ,GAAG,MAAM,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,OAAO,GAAG,6HAA6H,GAAG,KAAK,CAAC,CAAC;QAC9L,MAAM,UAAU,GAAG,MAAM,uBAAU,CAAC,OAAO,CAAC,QAAQ,CAAC,CAAC;QAEtD,IAAG,UAAU,CAAC,UAAU,IAAI,CAAC,EAAC;YAC5B,MAAM,SAAS,GAAG,UAAU,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC;YAE1C,IAAI,SAAS,KAAK,IAAI,EAAE;gBACtB,MAAM,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,OAAO,GAAG,wDAAwD,GAAG,SAAS,CAAC,CAAC;aAC9G;SACF;IACH,CAAC;CACF;AAnBD,0CAmBC","sourcesContent":["import { ApiHelpers } from \"./ApiHelpers\";\nimport { JsonHelper } from \"./JsonHelper\";\n\nexport class MemberApiHelper{\n api: ApiHelpers\n\n constructor(api: ApiHelpers) {\n this.api = api;\n }\n\n async ensureEmailNotExists(email: string) {\n const response = await this.api.get(this.api.baseUrl + '/umbraco/backoffice/UmbracoApi/Member/GetPagedResults?pageNumber=1&pageSize=1&orderBy=Name&orderDirection=Ascending&filter=' + email);\n const searchBody = await JsonHelper.getBody(response);\n\n if(searchBody.totalItems >= 1){\n const memberKey = searchBody.items[0].key;\n\n if (memberKey !== null) {\n await this.api.post(this.api.baseUrl + '/umbraco/backoffice/UmbracoApi/Member/DeleteByKey?key=' + memberKey);\n }\n } \n }\n}"]}
|
|
@@ -0,0 +1,25 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.MemberGroupApiHelper = void 0;
|
|
4
|
+
const JsonHelper_1 = require("./JsonHelper");
|
|
5
|
+
class MemberGroupApiHelper {
|
|
6
|
+
api;
|
|
7
|
+
constructor(api) {
|
|
8
|
+
this.api = api;
|
|
9
|
+
}
|
|
10
|
+
async ensureNameNotExists(name) {
|
|
11
|
+
const response = await this.api.get(this.api.baseUrl + '/umbraco/backoffice/UmbracoTrees/MemberGroupTree/GetNodes?id=-1');
|
|
12
|
+
const searchBody = await JsonHelper_1.JsonHelper.getBody(response);
|
|
13
|
+
let memberGroupId = null;
|
|
14
|
+
for (const sb of searchBody) {
|
|
15
|
+
if (sb.name == name) {
|
|
16
|
+
memberGroupId = sb.id;
|
|
17
|
+
}
|
|
18
|
+
}
|
|
19
|
+
if (memberGroupId !== null) {
|
|
20
|
+
await this.api.post(this.api.baseUrl + '/umbraco/backoffice/UmbracoApi/MemberGroup/DeleteById?id=' + memberGroupId);
|
|
21
|
+
}
|
|
22
|
+
}
|
|
23
|
+
}
|
|
24
|
+
exports.MemberGroupApiHelper = MemberGroupApiHelper;
|
|
25
|
+
//# sourceMappingURL=MemberGroupApiHelper.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"MemberGroupApiHelper.js","sourceRoot":"","sources":["../../../lib/helpers/MemberGroupApiHelper.ts"],"names":[],"mappings":";;;AACA,6CAA0C;AAE1C,MAAa,oBAAoB;IAC/B,GAAG,CAAY;IAEf,YAAY,GAAe;QACzB,IAAI,CAAC,GAAG,GAAG,GAAG,CAAC;IACjB,CAAC;IAED,KAAK,CAAC,mBAAmB,CAAC,IAAY;QACpC,MAAM,QAAQ,GAAG,MAAM,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,OAAO,GAAG,iEAAiE,CAAC,CAAC;QAC1H,MAAM,UAAU,GAAG,MAAM,uBAAU,CAAC,OAAO,CAAC,QAAQ,CAAC,CAAC;QAEtD,IAAI,aAAa,GAAG,IAAI,CAAC;QAEzB,KAAK,MAAM,EAAE,IAAI,UAAU,EAAE;YAC3B,IAAI,EAAE,CAAC,IAAI,IAAI,IAAI,EAAE;gBACnB,aAAa,GAAG,EAAE,CAAC,EAAE,CAAC;aACvB;SACF;QAED,IAAI,aAAa,KAAK,IAAI,EAAE;YAC1B,MAAM,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,OAAO,GAAG,2DAA2D,GAAG,aAAa,CAAC,CAAC;SACrH;IACH,CAAC;CACF;AAvBD,oDAuBC","sourcesContent":["import { ApiHelpers } from \"./ApiHelpers\";\nimport { JsonHelper } from \"./JsonHelper\";\n\nexport class MemberGroupApiHelper{\n api: ApiHelpers\n\n constructor(api: ApiHelpers) {\n this.api = api;\n }\n\n async ensureNameNotExists(name: string) {\n const response = await this.api.get(this.api.baseUrl + '/umbraco/backoffice/UmbracoTrees/MemberGroupTree/GetNodes?id=-1');\n const searchBody = await JsonHelper.getBody(response);\n\n let memberGroupId = null;\n\n for (const sb of searchBody) {\n if (sb.name == name) {\n memberGroupId = sb.id;\n }\n }\n\n if (memberGroupId !== null) {\n await this.api.post(this.api.baseUrl + '/umbraco/backoffice/UmbracoApi/MemberGroup/DeleteById?id=' + memberGroupId);\n }\n }\n}"]}
|
|
@@ -0,0 +1,28 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.MemberTypeApiHelper = void 0;
|
|
4
|
+
const JsonHelper_1 = require("./JsonHelper");
|
|
5
|
+
class MemberTypeApiHelper {
|
|
6
|
+
api;
|
|
7
|
+
constructor(api) {
|
|
8
|
+
this.api = api;
|
|
9
|
+
}
|
|
10
|
+
async ensureNameNotExists(name) {
|
|
11
|
+
const response = await this.api.get(this.api.baseUrl + '/umbraco/backoffice/UmbracoApi/MemberType/GetAllTypes');
|
|
12
|
+
const searchBody = await JsonHelper_1.JsonHelper.getBody(response);
|
|
13
|
+
if (searchBody.length <= 0) {
|
|
14
|
+
return;
|
|
15
|
+
}
|
|
16
|
+
let memberTypeId = null;
|
|
17
|
+
for (const sb of searchBody) {
|
|
18
|
+
if (sb.name === name) {
|
|
19
|
+
memberTypeId = sb.id;
|
|
20
|
+
}
|
|
21
|
+
}
|
|
22
|
+
if (memberTypeId !== null) {
|
|
23
|
+
await this.api.post(this.api.baseUrl + '/umbraco/backoffice/UmbracoApi/MemberType/DeleteById?id=' + memberTypeId);
|
|
24
|
+
}
|
|
25
|
+
}
|
|
26
|
+
}
|
|
27
|
+
exports.MemberTypeApiHelper = MemberTypeApiHelper;
|
|
28
|
+
//# sourceMappingURL=MemberTypeApiHelper.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"MemberTypeApiHelper.js","sourceRoot":"","sources":["../../../lib/helpers/MemberTypeApiHelper.ts"],"names":[],"mappings":";;;AACA,6CAA0C;AAE1C,MAAa,mBAAmB;IAC9B,GAAG,CAAY;IAEf,YAAY,GAAe;QACzB,IAAI,CAAC,GAAG,GAAG,GAAG,CAAC;IACjB,CAAC;IAED,KAAK,CAAC,mBAAmB,CAAC,IAAY;QACpC,MAAM,QAAQ,GAAG,MAAM,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,OAAO,GAAG,uDAAuD,CAAC,CAAC;QAChH,MAAM,UAAU,GAAG,MAAM,uBAAU,CAAC,OAAO,CAAC,QAAQ,CAAC,CAAC;QAEtD,IAAG,UAAU,CAAC,MAAM,IAAI,CAAC,EAAC;YACxB,OAAO;SACR;QAED,IAAI,YAAY,GAAG,IAAI,CAAC;QAExB,KAAK,MAAM,EAAE,IAAI,UAAU,EAAE;YAC3B,IAAI,EAAE,CAAC,IAAI,KAAK,IAAI,EAAE;gBACpB,YAAY,GAAG,EAAE,CAAC,EAAE,CAAC;aACtB;SACF;QAED,IAAI,YAAY,KAAK,IAAI,EAAE;YACzB,MAAM,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,OAAO,GAAG,0DAA0D,GAAG,YAAY,CAAC,CAAC;SACnH;IACH,CAAC;CACF;AA3BD,kDA2BC","sourcesContent":["import { ApiHelpers } from \"./ApiHelpers\";\nimport { JsonHelper } from \"./JsonHelper\";\n\nexport class MemberTypeApiHelper{\n api: ApiHelpers\n\n constructor(api: ApiHelpers) {\n this.api = api;\n }\n \n async ensureNameNotExists(name: string) {\n const response = await this.api.get(this.api.baseUrl + '/umbraco/backoffice/UmbracoApi/MemberType/GetAllTypes');\n const searchBody = await JsonHelper.getBody(response);\n\n if(searchBody.length <= 0){\n return;\n }\n \n let memberTypeId = null;\n\n for (const sb of searchBody) {\n if (sb.name === name) {\n memberTypeId = sb.id;\n }\n }\n\n if (memberTypeId !== null) {\n await this.api.post(this.api.baseUrl + '/umbraco/backoffice/UmbracoApi/MemberType/DeleteById?id=' + memberTypeId);\n }\n }\n}"]}
|
|
@@ -0,0 +1,8 @@
|
|
|
1
|
+
import { ApiHelpers } from "./ApiHelpers";
|
|
2
|
+
import { Package } from "@umbraco/playwright-models";
|
|
3
|
+
export declare class PackageApiHelper {
|
|
4
|
+
api: ApiHelpers;
|
|
5
|
+
constructor(api: ApiHelpers);
|
|
6
|
+
ensureNameNotExists(name: string): Promise<void>;
|
|
7
|
+
save(packageToSave: Package): Promise<void>;
|
|
8
|
+
}
|
|
@@ -0,0 +1,28 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.PackageApiHelper = void 0;
|
|
4
|
+
const JsonHelper_1 = require("./JsonHelper");
|
|
5
|
+
class PackageApiHelper {
|
|
6
|
+
api;
|
|
7
|
+
constructor(api) {
|
|
8
|
+
this.api = api;
|
|
9
|
+
}
|
|
10
|
+
async ensureNameNotExists(name) {
|
|
11
|
+
const response = await this.api.get(this.api.baseUrl + '/umbraco/backoffice/umbracoapi/package/GetCreatedPackages');
|
|
12
|
+
const searchBody = await JsonHelper_1.JsonHelper.getBody(response);
|
|
13
|
+
let packageId = null;
|
|
14
|
+
for (const sb of searchBody) {
|
|
15
|
+
if (sb.name == name) {
|
|
16
|
+
packageId = sb.id;
|
|
17
|
+
}
|
|
18
|
+
}
|
|
19
|
+
if (packageId !== null) {
|
|
20
|
+
await this.api.post(this.api.baseUrl + '/umbraco/backoffice/umbracoapi/package/DeleteCreatedPackage?packageId=' + packageId);
|
|
21
|
+
}
|
|
22
|
+
}
|
|
23
|
+
async save(packageToSave) {
|
|
24
|
+
await this.api.post(this.api.baseUrl + '/umbraco/backoffice/umbracoapi/package/PostSavePackage', packageToSave);
|
|
25
|
+
}
|
|
26
|
+
}
|
|
27
|
+
exports.PackageApiHelper = PackageApiHelper;
|
|
28
|
+
//# sourceMappingURL=PackageApiHelper.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"PackageApiHelper.js","sourceRoot":"","sources":["../../../lib/helpers/PackageApiHelper.ts"],"names":[],"mappings":";;;AACA,6CAA0C;AAG1C,MAAa,gBAAgB;IAC3B,GAAG,CAAY;IAEf,YAAY,GAAe;QACzB,IAAI,CAAC,GAAG,GAAG,GAAG,CAAC;IACjB,CAAC;IAED,KAAK,CAAC,mBAAmB,CAAC,IAAY;QACpC,MAAM,QAAQ,GAAG,MAAM,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,OAAO,GAAG,2DAA2D,CAAC,CAAC;QACpH,MAAM,UAAU,GAAG,MAAM,uBAAU,CAAC,OAAO,CAAC,QAAQ,CAAC,CAAC;QAEtD,IAAI,SAAS,GAAG,IAAI,CAAC;QAErB,KAAK,MAAM,EAAE,IAAI,UAAU,EAAE;YAC3B,IAAI,EAAE,CAAC,IAAI,IAAI,IAAI,EAAE;gBACnB,SAAS,GAAG,EAAE,CAAC,EAAE,CAAC;aACnB;SACF;QAED,IAAI,SAAS,KAAK,IAAI,EAAE;YACtB,MAAM,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,OAAO,GAAG,wEAAwE,GAAG,SAAS,CAAC,CAAC;SAC9H;IACH,CAAC;IAED,KAAK,CAAC,IAAI,CAAC,aAAsB;QAC/B,MAAM,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,OAAO,GAAG,wDAAwD,EAAE,aAAa,CAAC,CAAC;IAClH,CAAC;CACF;AA3BD,4CA2BC","sourcesContent":["import { ApiHelpers } from \"./ApiHelpers\";\nimport { JsonHelper } from \"./JsonHelper\";\nimport {Package} from \"@umbraco/playwright-models\";\n\nexport class PackageApiHelper{\n api: ApiHelpers\n\n constructor(api: ApiHelpers) {\n this.api = api;\n }\n\n async ensureNameNotExists(name: string) {\n const response = await this.api.get(this.api.baseUrl + '/umbraco/backoffice/umbracoapi/package/GetCreatedPackages');\n const searchBody = await JsonHelper.getBody(response);\n\n let packageId = null;\n\n for (const sb of searchBody) {\n if (sb.name == name) {\n packageId = sb.id;\n }\n }\n\n if (packageId !== null) {\n await this.api.post(this.api.baseUrl + '/umbraco/backoffice/umbracoapi/package/DeleteCreatedPackage?packageId=' + packageId);\n }\n }\n\n async save(packageToSave: Package){\n await this.api.post(this.api.baseUrl + '/umbraco/backoffice/umbracoapi/package/PostSavePackage', packageToSave);\n }\n}"]}
|
|
@@ -0,0 +1,9 @@
|
|
|
1
|
+
import { ApiHelpers } from "./ApiHelpers";
|
|
2
|
+
export declare class PartialViewApiHelper {
|
|
3
|
+
api: ApiHelpers;
|
|
4
|
+
constructor(api: ApiHelpers);
|
|
5
|
+
ensureNameNotExists(name: string): Promise<import("playwright-core").APIResponse | null>;
|
|
6
|
+
ensureMacroFileNameNotExists(name: string): Promise<import("playwright-core").APIResponse | null>;
|
|
7
|
+
save(partialView: any): Promise<void>;
|
|
8
|
+
savePartialViewMacro(partialViewMacro: any): Promise<import("playwright-core").APIResponse | undefined>;
|
|
9
|
+
}
|
|
@@ -0,0 +1,50 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.PartialViewApiHelper = void 0;
|
|
4
|
+
const JsonHelper_1 = require("./JsonHelper");
|
|
5
|
+
class PartialViewApiHelper {
|
|
6
|
+
api;
|
|
7
|
+
constructor(api) {
|
|
8
|
+
this.api = api;
|
|
9
|
+
}
|
|
10
|
+
async ensureNameNotExists(name) {
|
|
11
|
+
const response = await this.api.get(this.api.baseUrl + "/umbraco/backoffice/UmbracoTrees/PartialViewsTree/GetNodes?id=-1");
|
|
12
|
+
const content = await JsonHelper_1.JsonHelper.getBody(response);
|
|
13
|
+
if (content.length > 0) {
|
|
14
|
+
let partialViewId = null;
|
|
15
|
+
for (const node of content) {
|
|
16
|
+
if (node.name === name) {
|
|
17
|
+
partialViewId = node.id;
|
|
18
|
+
}
|
|
19
|
+
}
|
|
20
|
+
if (partialViewId !== null) {
|
|
21
|
+
return this.api.post(this.api.baseUrl + "/umbraco/backoffice/UmbracoApi/CodeFile/Delete?type=scripts&virtualPath=" + partialViewId);
|
|
22
|
+
}
|
|
23
|
+
}
|
|
24
|
+
return null;
|
|
25
|
+
}
|
|
26
|
+
async ensureMacroFileNameNotExists(name) {
|
|
27
|
+
const response = await this.api.get(this.api.baseUrl + "/umbraco/backoffice/UmbracoTrees/PartialViewMacrosTree/GetNodes?id=-1");
|
|
28
|
+
const content = await JsonHelper_1.JsonHelper.getBody(response);
|
|
29
|
+
if (content.length > 0) {
|
|
30
|
+
let partialViewMacroId = null;
|
|
31
|
+
for (const node of content) {
|
|
32
|
+
if (node.name === name) {
|
|
33
|
+
partialViewMacroId = node.id;
|
|
34
|
+
}
|
|
35
|
+
}
|
|
36
|
+
if (partialViewMacroId !== null) {
|
|
37
|
+
return this.api.post(this.api.baseUrl + "/umbraco/backoffice/UmbracoApi/CodeFile/Delete?type=partialViewMacros&virtualPath=" + partialViewMacroId);
|
|
38
|
+
}
|
|
39
|
+
}
|
|
40
|
+
return null;
|
|
41
|
+
}
|
|
42
|
+
async save(partialView) {
|
|
43
|
+
await this.api.post(this.api.baseUrl + "/umbraco/backoffice/UmbracoApi/CodeFile/PostSave", partialView);
|
|
44
|
+
}
|
|
45
|
+
async savePartialViewMacro(partialViewMacro) {
|
|
46
|
+
return await this.api.saveCodeFile(partialViewMacro);
|
|
47
|
+
}
|
|
48
|
+
}
|
|
49
|
+
exports.PartialViewApiHelper = PartialViewApiHelper;
|
|
50
|
+
//# sourceMappingURL=PartialViewApiHelper.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"PartialViewApiHelper.js","sourceRoot":"","sources":["../../../lib/helpers/PartialViewApiHelper.ts"],"names":[],"mappings":";;;AACA,6CAA0C;AAE1C,MAAa,oBAAoB;IAC7B,GAAG,CAAY;IAEf,YAAY,GAAe;QACvB,IAAI,CAAC,GAAG,GAAG,GAAG,CAAC;IACnB,CAAC;IAED,KAAK,CAAC,mBAAmB,CAAC,IAAY;QAClC,MAAM,QAAQ,GAAG,MAAM,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,OAAO,GAAG,kEAAkE,CAAC,CAAC;QAC3H,MAAM,OAAO,GAAG,MAAM,uBAAU,CAAC,OAAO,CAAC,QAAQ,CAAC,CAAC;QAEnD,IAAG,OAAO,CAAC,MAAM,GAAG,CAAC,EAAC;YAClB,IAAI,aAAa,GAAG,IAAI,CAAC;YAEzB,KAAI,MAAM,IAAI,IAAI,OAAO,EAAC;gBACtB,IAAG,IAAI,CAAC,IAAI,KAAK,IAAI,EAAC;oBAClB,aAAa,GAAG,IAAI,CAAC,EAAE,CAAC;iBAC3B;aACJ;YAED,IAAG,aAAa,KAAK,IAAI,EAAC;gBACtB,OAAO,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,OAAO,GAAG,0EAA0E,GAAG,aAAa,CAAC,CAAC;aACvI;SACJ;QAED,OAAO,IAAI,CAAC;IAChB,CAAC;IAED,KAAK,CAAC,4BAA4B,CAAC,IAAY;QAC3C,MAAM,QAAQ,GAAG,MAAM,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,OAAO,GAAG,uEAAuE,CAAC,CAAC;QAChI,MAAM,OAAO,GAAG,MAAM,uBAAU,CAAC,OAAO,CAAC,QAAQ,CAAC,CAAC;QAEnD,IAAG,OAAO,CAAC,MAAM,GAAG,CAAC,EAAC;YAClB,IAAI,kBAAkB,GAAG,IAAI,CAAC;YAE9B,KAAI,MAAM,IAAI,IAAI,OAAO,EAAC;gBACtB,IAAG,IAAI,CAAC,IAAI,KAAK,IAAI,EAAC;oBAClB,kBAAkB,GAAG,IAAI,CAAC,EAAE,CAAC;iBAChC;aACJ;YAED,IAAG,kBAAkB,KAAK,IAAI,EAAC;gBAC3B,OAAO,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,OAAO,GAAG,oFAAoF,GAAG,kBAAkB,CAAC,CAAC;aACtJ;SACJ;QAED,OAAO,IAAI,CAAC;IAChB,CAAC;IAED,KAAK,CAAC,IAAI,CAAC,WAAW;QAClB,MAAM,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,OAAO,GAAG,kDAAkD,EAAE,WAAW,CAAC,CAAA;IAC3G,CAAC;IAED,KAAK,CAAC,oBAAoB,CAAC,gBAAgB;QACvC,OAAO,MAAM,IAAI,CAAC,GAAG,CAAC,YAAY,CAAC,gBAAgB,CAAC,CAAC;IACzD,CAAC;CACJ;AAxDD,oDAwDC","sourcesContent":["import { ApiHelpers } from \"./ApiHelpers\";\nimport { JsonHelper } from \"./JsonHelper\";\n\nexport class PartialViewApiHelper{\n api: ApiHelpers\n\n constructor(api: ApiHelpers) {\n this.api = api;\n }\n\n async ensureNameNotExists(name: string) {\n const response = await this.api.get(this.api.baseUrl + \"/umbraco/backoffice/UmbracoTrees/PartialViewsTree/GetNodes?id=-1\");\n const content = await JsonHelper.getBody(response);\n\n if(content.length > 0){\n let partialViewId = null;\n\n for(const node of content){\n if(node.name === name){\n partialViewId = node.id;\n }\n }\n\n if(partialViewId !== null){\n return this.api.post(this.api.baseUrl + \"/umbraco/backoffice/UmbracoApi/CodeFile/Delete?type=scripts&virtualPath=\" + partialViewId);\n }\n }\n \n return null;\n }\n\n async ensureMacroFileNameNotExists(name: string) {\n const response = await this.api.get(this.api.baseUrl + \"/umbraco/backoffice/UmbracoTrees/PartialViewMacrosTree/GetNodes?id=-1\");\n const content = await JsonHelper.getBody(response);\n\n if(content.length > 0){\n let partialViewMacroId = null;\n\n for(const node of content){\n if(node.name === name){\n partialViewMacroId = node.id;\n }\n }\n\n if(partialViewMacroId !== null){\n return this.api.post(this.api.baseUrl + \"/umbraco/backoffice/UmbracoApi/CodeFile/Delete?type=partialViewMacros&virtualPath=\" + partialViewMacroId);\n }\n }\n \n return null;\n }\n \n async save(partialView){\n await this.api.post(this.api.baseUrl + \"/umbraco/backoffice/UmbracoApi/CodeFile/PostSave\", partialView)\n }\n \n async savePartialViewMacro(partialViewMacro){\n return await this.api.saveCodeFile(partialViewMacro);\n }\n}"]}
|
|
@@ -0,0 +1,28 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.RelationTypeApiHelper = void 0;
|
|
4
|
+
const JsonHelper_1 = require("./JsonHelper");
|
|
5
|
+
class RelationTypeApiHelper {
|
|
6
|
+
api;
|
|
7
|
+
constructor(api) {
|
|
8
|
+
this.api = api;
|
|
9
|
+
}
|
|
10
|
+
async ensureNameNotExists(name) {
|
|
11
|
+
const response = await this.api.get(this.api.baseUrl + "/umbraco/backoffice/UmbracoTrees/RelationTypeTree/GetNodes?id=-1");
|
|
12
|
+
const content = await JsonHelper_1.JsonHelper.getBody(response);
|
|
13
|
+
if (content.length > 0) {
|
|
14
|
+
let relationTypeId = null;
|
|
15
|
+
for (const node of content) {
|
|
16
|
+
if (node.name === name) {
|
|
17
|
+
relationTypeId = node.id;
|
|
18
|
+
}
|
|
19
|
+
}
|
|
20
|
+
if (relationTypeId !== null) {
|
|
21
|
+
return this.api.post(this.api.baseUrl + "/umbraco/backoffice/UmbracoApi/RelationType/DeleteById?id=" + relationTypeId);
|
|
22
|
+
}
|
|
23
|
+
}
|
|
24
|
+
return null;
|
|
25
|
+
}
|
|
26
|
+
}
|
|
27
|
+
exports.RelationTypeApiHelper = RelationTypeApiHelper;
|
|
28
|
+
//# sourceMappingURL=RelationTypeApiHelper.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"RelationTypeApiHelper.js","sourceRoot":"","sources":["../../../lib/helpers/RelationTypeApiHelper.ts"],"names":[],"mappings":";;;AACA,6CAA0C;AAE1C,MAAa,qBAAqB;IAChC,GAAG,CAAY;IAEf,YAAY,GAAe;QACzB,IAAI,CAAC,GAAG,GAAG,GAAG,CAAC;IACjB,CAAC;IAED,KAAK,CAAC,mBAAmB,CAAC,IAAY;QACpC,MAAM,QAAQ,GAAG,MAAM,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,OAAO,GAAG,kEAAkE,CAAC,CAAC;QAC3H,MAAM,OAAO,GAAG,MAAM,uBAAU,CAAC,OAAO,CAAC,QAAQ,CAAC,CAAC;QAEnD,IAAG,OAAO,CAAC,MAAM,GAAG,CAAC,EAAC;YACpB,IAAI,cAAc,GAAG,IAAI,CAAC;YAE1B,KAAI,MAAM,IAAI,IAAI,OAAO,EAAC;gBACxB,IAAG,IAAI,CAAC,IAAI,KAAK,IAAI,EAAC;oBACpB,cAAc,GAAG,IAAI,CAAC,EAAE,CAAC;iBAC1B;aACF;YAED,IAAG,cAAc,KAAK,IAAI,EAAC;gBACzB,OAAO,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,OAAO,GAAG,4DAA4D,GAAG,cAAc,CAAC,CAAC;aACxH;SACF;QAED,OAAO,IAAI,CAAC;IACd,CAAC;CACF;AA3BD,sDA2BC","sourcesContent":["import { ApiHelpers } from \"./ApiHelpers\";\nimport { JsonHelper } from \"./JsonHelper\";\n\nexport class RelationTypeApiHelper{\n api: ApiHelpers\n\n constructor(api: ApiHelpers) {\n this.api = api;\n }\n\n async ensureNameNotExists(name: string) {\n const response = await this.api.get(this.api.baseUrl + \"/umbraco/backoffice/UmbracoTrees/RelationTypeTree/GetNodes?id=-1\");\n const content = await JsonHelper.getBody(response);\n\n if(content.length > 0){\n let relationTypeId = null;\n\n for(const node of content){\n if(node.name === name){\n relationTypeId = node.id;\n }\n }\n\n if(relationTypeId !== null){\n return this.api.post(this.api.baseUrl + \"/umbraco/backoffice/UmbracoApi/RelationType/DeleteById?id=\" + relationTypeId);\n }\n }\n \n return null;\n }\n}"]}
|