dbm-graph-api 1.1.34 → 1.1.35
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/package.json +2 -2
- package/src/dbm-graph-api/index.js +22 -2
- package/src/dbm-graph-api/processAction/pageUpdates/ClearCloudflareCache.js +46 -0
- package/src/dbm-graph-api/processAction/pageUpdates/UpdateRenderedContent.js +47 -0
- package/src/dbm-graph-api/processAction/pageUpdates/index.js +3 -1
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "dbm-graph-api",
|
|
3
|
-
"version": "1.1.
|
|
3
|
+
"version": "1.1.35",
|
|
4
4
|
"main": "index.js",
|
|
5
5
|
"type": "module",
|
|
6
6
|
"scripts": {
|
|
@@ -13,7 +13,7 @@
|
|
|
13
13
|
"dependencies": {
|
|
14
14
|
"@aws-sdk/client-s3": "^3.741.0",
|
|
15
15
|
"@aws-sdk/s3-request-presigner": "^3.741.0",
|
|
16
|
-
"dbm": "^1.2.
|
|
16
|
+
"dbm": "^1.2.5",
|
|
17
17
|
"mime": "^4.0.6",
|
|
18
18
|
"sharp": "^0.33.5",
|
|
19
19
|
"ws": "^8.18.0"
|
|
@@ -294,6 +294,8 @@ let fullProcessActionSetup = function() {
|
|
|
294
294
|
registerProcessActionFunction("handleFormSubmission", new DbmGraphApi.processAction.HandleFormSubmission());
|
|
295
295
|
|
|
296
296
|
registerProcessActionFunction("pageUpdates/updateCategoryListing", new DbmGraphApi.processAction.pageUpdates.UpdateCategoryListing());
|
|
297
|
+
registerProcessActionFunction("pageUpdates/updateRenderedContent", new DbmGraphApi.processAction.pageUpdates.UpdateRenderedContent());
|
|
298
|
+
registerProcessActionFunction("pageUpdates/clearCache", new DbmGraphApi.processAction.pageUpdates.ClearCloudflareCache());
|
|
297
299
|
}
|
|
298
300
|
|
|
299
301
|
export {fullProcessActionSetup};
|
|
@@ -868,16 +870,34 @@ export const setupSite = function(aServer) {
|
|
|
868
870
|
<meta property="article:publisher" content="https://sv-se.facebook.com/..." />
|
|
869
871
|
*/
|
|
870
872
|
|
|
873
|
+
|
|
874
|
+
let renderedContent = "";
|
|
875
|
+
|
|
876
|
+
if(fields["renderedPageContent"]) {
|
|
877
|
+
renderedContent = fields["renderedPageContent"];
|
|
878
|
+
}
|
|
879
|
+
|
|
880
|
+
let renderedContentHolder = "";
|
|
881
|
+
if(renderedContent) {
|
|
882
|
+
renderedContentHolder = `<div id="preRenderContent">${renderedContent}</div>`;
|
|
883
|
+
}
|
|
884
|
+
|
|
885
|
+
let moduleData = {};
|
|
886
|
+
//METODO: add page data
|
|
887
|
+
let endodedModuleData = JSON.stringify(moduleData);
|
|
888
|
+
|
|
871
889
|
returnString += ` </head>
|
|
872
890
|
<body>
|
|
873
|
-
<div id="site"
|
|
891
|
+
<div id="site">
|
|
892
|
+
${renderedContentHolder}
|
|
893
|
+
</div>
|
|
874
894
|
<script>
|
|
875
895
|
(function(d,b,m,j,s){
|
|
876
896
|
d[m] = d[m] || {}; d[m][j] = d[m][j] || {_: [], create: function(element, moduleName, data) {return this._.push({element, moduleName, data});}, remove: function(id) {this._[id-1] = null;}};
|
|
877
897
|
let e = b.createElement("script"); e.async = true; e.src = s; b.head.appendChild(e);
|
|
878
898
|
})(window, document, "dbmstartup", "modules", "${assetsUri}js/${loader}");
|
|
879
899
|
|
|
880
|
-
dbmstartup.modules.create(document.getElementById("site"), "${moduleName}", {});
|
|
900
|
+
dbmstartup.modules.create(document.getElementById("site"), "${moduleName}", ${endodedModuleData});
|
|
881
901
|
</script>
|
|
882
902
|
</body>
|
|
883
903
|
</html>`;
|
|
@@ -0,0 +1,46 @@
|
|
|
1
|
+
import Dbm from "dbm";
|
|
2
|
+
|
|
3
|
+
export default class ClearCloudflareCache extends Dbm.core.BaseObject {
|
|
4
|
+
_construct() {
|
|
5
|
+
super._construct();
|
|
6
|
+
}
|
|
7
|
+
|
|
8
|
+
async process(aAction) {
|
|
9
|
+
console.log("ClearCloudflareCache:process");
|
|
10
|
+
//console.log(aAction);
|
|
11
|
+
|
|
12
|
+
let database = Dbm.getInstance().repository.getItem("graphDatabase").controller;
|
|
13
|
+
let page = await aAction.singleObjectRelationQuery("out:from:page");
|
|
14
|
+
|
|
15
|
+
let cloudflare = Dbm.getInstance().repository.getItem("cloudflare");
|
|
16
|
+
let url = await page.getUrl();
|
|
17
|
+
|
|
18
|
+
if(cloudflare.domain && cloudflare.zone) {
|
|
19
|
+
let fullUrl = cloudflare.domain + url;
|
|
20
|
+
|
|
21
|
+
let requestUrl = "https://api.cloudflare.com/client/v4/zones/" + cloudflare.zone + "/purge_cache";
|
|
22
|
+
|
|
23
|
+
let body = {
|
|
24
|
+
"files": [fullUrl]
|
|
25
|
+
}
|
|
26
|
+
|
|
27
|
+
let headers = {
|
|
28
|
+
"Content-Type": "application/json",
|
|
29
|
+
'Authorization': 'Bearer ' + cloudflare.cacheToken
|
|
30
|
+
}
|
|
31
|
+
|
|
32
|
+
let response = await fetch(requestUrl, {
|
|
33
|
+
method: "DELETE",
|
|
34
|
+
headers: headers,
|
|
35
|
+
body: JSON.stringify(body),
|
|
36
|
+
});
|
|
37
|
+
|
|
38
|
+
let data = await response.json();
|
|
39
|
+
}
|
|
40
|
+
else {
|
|
41
|
+
//METODO: report error log
|
|
42
|
+
}
|
|
43
|
+
|
|
44
|
+
|
|
45
|
+
}
|
|
46
|
+
}
|
|
@@ -0,0 +1,47 @@
|
|
|
1
|
+
import Dbm from "dbm";
|
|
2
|
+
|
|
3
|
+
export default class UpdateRenderedContent extends Dbm.core.BaseObject {
|
|
4
|
+
_construct() {
|
|
5
|
+
super._construct();
|
|
6
|
+
}
|
|
7
|
+
|
|
8
|
+
async process(aAction) {
|
|
9
|
+
console.log("UpdateRenderedContent:process");
|
|
10
|
+
//console.log(aAction);
|
|
11
|
+
|
|
12
|
+
let database = Dbm.getInstance().repository.getItem("graphDatabase").controller;
|
|
13
|
+
let page = await aAction.singleObjectRelationQuery("out:from:page");
|
|
14
|
+
|
|
15
|
+
let webcrawler = Dbm.getInstance().repository.getItem("webcrawler");
|
|
16
|
+
|
|
17
|
+
if(webcrawler.domain && webcrawler.renderPageUrl) {
|
|
18
|
+
let url = await page.getUrl();
|
|
19
|
+
|
|
20
|
+
let fullUrl = webcrawler.domain + url;
|
|
21
|
+
|
|
22
|
+
let body = {
|
|
23
|
+
"url": fullUrl,
|
|
24
|
+
"key": webcrawler.key
|
|
25
|
+
}
|
|
26
|
+
|
|
27
|
+
let headers = {
|
|
28
|
+
"Content-Type": "application/json",
|
|
29
|
+
}
|
|
30
|
+
|
|
31
|
+
let response = await fetch(webcrawler.renderPageUrl, {
|
|
32
|
+
method: "POST",
|
|
33
|
+
headers: headers,
|
|
34
|
+
body: JSON.stringify(body),
|
|
35
|
+
});
|
|
36
|
+
|
|
37
|
+
let data = await response.json();
|
|
38
|
+
|
|
39
|
+
let renderedContent = Dbm.objectPath(data, "data.html");
|
|
40
|
+
await page.updateField("renderedPageContent", renderedContent);
|
|
41
|
+
|
|
42
|
+
await database.addActionToProcess("pageUpdates/clearCache", [page]);
|
|
43
|
+
}
|
|
44
|
+
|
|
45
|
+
|
|
46
|
+
}
|
|
47
|
+
}
|
|
@@ -1 +1,3 @@
|
|
|
1
|
-
export {default as UpdateCategoryListing} from "./UpdateCategoryListing.js";
|
|
1
|
+
export {default as UpdateCategoryListing} from "./UpdateCategoryListing.js";
|
|
2
|
+
export {default as UpdateRenderedContent} from "./UpdateRenderedContent.js";
|
|
3
|
+
export {default as ClearCloudflareCache} from "./ClearCloudflareCache.js";
|