diff --git a/src/App.js b/src/App.js index adf8cf6..5bcb6d6 100644 --- a/src/App.js +++ b/src/App.js @@ -22,14 +22,16 @@ class LambdaDemo extends Component { return (

+ {msg}
+

+ -
- {msg}

); } diff --git a/src/lambda/promise-chuck-norris.js b/src/lambda/promise-chuck-norris.js new file mode 100644 index 0000000..74cd2d7 --- /dev/null +++ b/src/lambda/promise-chuck-norris.js @@ -0,0 +1,28 @@ +// example to have the handler return a promise directly +// https://aws.amazon.com/blogs/compute/node-js-8-10-runtime-now-available-in-aws-lambda/ + +import fetch from 'node-fetch'; +export function handler(event, context) { + return new Promise((resolve, reject) => { + fetch('https://api.chucknorris.io/jokes/random') + .then(response => { + if (response.ok) { // response.status >= 200 && response.status < 300 + return response.json(); + } else { + resolve({ statusCode: response.status, body: response.statusText }) + }; + }) + .then(data =>{ + const response = { + statusCode: 200, + headers: { 'content-type': 'application/json' }, + body: JSON.stringify({ msg: data.value }) + } + resolve(response); + }) + .catch(err => { + console.log(err) + resolve({ statusCode: 500, body: err.message }); + }) + }); +}