You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@sling.apache.org by bd...@apache.org on 2019/07/25 16:06:12 UTC
[sling-whiteboard] branch master updated (538f7b3 -> bc456a2)
This is an automated email from the ASF dual-hosted git repository.
bdelacretaz pushed a change to branch master
in repository https://gitbox.apache.org/repos/asf/sling-whiteboard.git.
from 538f7b3 Openwhisk action selection based on annotations
new 39dfeed Basic dynamic Openwhisk action dispatching works
new bc456a2 Style tweaks for obvious demo
The 2 revisions listed above as "new" are entirely new to this
repository and will be described in separate emails. The revisions
listed as "add" were already present in the repository and have only
been added to this reference.
Summary of changes:
serverless-microsling/lib/openwhisk-renderer.js | 20 +++++++++++++++++---
serverless-microsling/lib/render.js | 14 +++++++++-----
.../rendering-actions/somedoc-html.js | 11 +++++++++--
3 files changed, 35 insertions(+), 10 deletions(-)
[sling-whiteboard] 02/02: Style tweaks for obvious demo
Posted by bd...@apache.org.
This is an automated email from the ASF dual-hosted git repository.
bdelacretaz pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/sling-whiteboard.git
commit bc456a2e05d440fcfab3ec5f39916e97f214e365
Author: Bertrand Delacretaz <bd...@apache.org>
AuthorDate: Thu Jul 25 18:05:47 2019 +0200
Style tweaks for obvious demo
---
serverless-microsling/rendering-actions/somedoc-html.js | 10 +++++++++-
1 file changed, 9 insertions(+), 1 deletion(-)
diff --git a/serverless-microsling/rendering-actions/somedoc-html.js b/serverless-microsling/rendering-actions/somedoc-html.js
index 831e00f..d3c52a4 100644
--- a/serverless-microsling/rendering-actions/somedoc-html.js
+++ b/serverless-microsling/rendering-actions/somedoc-html.js
@@ -21,10 +21,18 @@ function main (params) {
const markup = `<html>
<head>
<title>${resource.title}</title>
+ <style type="text/css">
+ body {
+ background-color: #fcf3cf;
+ }
+ h1 {
+ color: blue;
+ }
+ </style>
</head>
<body>
<h1>
- ${resource.title}
+ ${resource.title}, with a custom rendering!
</h1>
<div>${resource.body}</div>
<div><em>This is the somedoc-html rendering</em></div>
[sling-whiteboard] 01/02: Basic dynamic Openwhisk action
dispatching works
Posted by bd...@apache.org.
This is an automated email from the ASF dual-hosted git repository.
bdelacretaz pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/sling-whiteboard.git
commit 39dfeed111142303676bbd34054fcc5152779cf8
Author: Bertrand Delacretaz <bd...@apache.org>
AuthorDate: Thu Jul 25 17:57:41 2019 +0200
Basic dynamic Openwhisk action dispatching works
---
serverless-microsling/lib/openwhisk-renderer.js | 20 +++++++++++++++++---
serverless-microsling/lib/render.js | 14 +++++++++-----
.../rendering-actions/somedoc-html.js | 1 -
3 files changed, 26 insertions(+), 9 deletions(-)
diff --git a/serverless-microsling/lib/openwhisk-renderer.js b/serverless-microsling/lib/openwhisk-renderer.js
index e5544f7..21ba43d 100644
--- a/serverless-microsling/lib/openwhisk-renderer.js
+++ b/serverless-microsling/lib/openwhisk-renderer.js
@@ -39,19 +39,33 @@ const getAction = async (resourceType, extension) => {
})
};
+const render = (resource, action) => {
+ const name = action.name;
+ const blocking = true, result = true
+ const params = {
+ resource: resource
+ }
+ var ow = openwhisk();
+ return ow.actions.invoke({name, blocking, result, params});
+};
+
const renderer = {
contentType: 'text/html',
appliesTo : async (resourceType, extension) => {
return getAction(resourceType, extension)
},
render : (resource, action) => {
- return `TODO: render using ${action ? action.name : null}`;
+ return render(resource, action);
},
}
function main () {
- return new Promise(resolve => {
- resolve(getAction('microsling/somedoc', 'html'));
+ return new Promise(async resolve => {
+ const resource = {
+ title: 'cmdline title test',
+ body: 'cmdline body test',
+ }
+ resolve(render(resource, getAction('microsling/somedoc', 'html')));
});
}
diff --git a/serverless-microsling/lib/render.js b/serverless-microsling/lib/render.js
index b78b3c5..eee7098 100644
--- a/serverless-microsling/lib/render.js
+++ b/serverless-microsling/lib/render.js
@@ -26,7 +26,7 @@ const defaultTextRenderer = {
return extension == 'txt';
},
render : (resource) => {
- return `${resource.title}\n${resource.body}\n`;
+ return { output: `${resource.title}\n${resource.body}\n` };
},
}
@@ -36,7 +36,7 @@ const defaultJsonRenderer = {
return extension == 'json';
},
render : (resource) => {
- return JSON.stringify(resource, 2, null);
+ return { output: JSON.stringify(resource, 2, null) };
},
}
@@ -46,7 +46,7 @@ const defaultHtmlRenderer = {
return extension == 'html';
},
render : (resource) => {
- return `
+ return { output: `
<html>
<head>
<title>${resource.title}</title>
@@ -58,7 +58,7 @@ const defaultHtmlRenderer = {
<div>${resource.body}</div>
</body>
</html>
- `;
+ `};
},
}
@@ -104,7 +104,11 @@ async function render(context) {
if(!rendererInfo) {
throw Error(`Renderer not found for ${resourceType} extension ${extension}`);
}
- context.response.body = rendererInfo.renderer.render(resource, rendererInfo.applyContext);
+ const rendered = await rendererInfo.renderer.render(resource, rendererInfo.applyContext);
+ if(!rendered.output) {
+ throw Error('Renderer generated no output');
+ }
+ context.response.body = rendered.output;
context.response.headers = {
'Content-Type': rendererInfo.renderer.contentType
};
diff --git a/serverless-microsling/rendering-actions/somedoc-html.js b/serverless-microsling/rendering-actions/somedoc-html.js
index ff29573..831e00f 100644
--- a/serverless-microsling/rendering-actions/somedoc-html.js
+++ b/serverless-microsling/rendering-actions/somedoc-html.js
@@ -21,7 +21,6 @@ function main (params) {
const markup = `<html>
<head>
<title>${resource.title}</title>
- <link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/highlight.js/9.12.0/styles/default.min.css"/>
</head>
<body>
<h1>