Skip to content

Instantly share code, notes, and snippets.

@furkan3ayraktar
Created March 29, 2018 16:31
Show Gist options
  • Save furkan3ayraktar/7b80f271bcc5af84e370fa57020d03a3 to your computer and use it in GitHub Desktop.
Save furkan3ayraktar/7b80f271bcc5af84e370fa57020d03a3 to your computer and use it in GitHub Desktop.
Handler for Lambda function
exports.handler = (event, context, callback) => {
const { request, config } = event.Records[0].cf;
let originalUri = request.uri;
const parsedPath = path.parse(originalUri);
if (parsedPath.ext === '') {
request.uri = '/index.html';
let metaUrl = 'https://houseofradon.com';
if (parsedPath.dir === '/') {
metaUrl += '/api/meta?type=' + parsedPath.base;
} else if (parsedPath.dir === '/creative' || parsedPath.dir === '/venture') {
metaUrl += '/api/case/' + parsedPath.base + '/meta';
} else if (parsedPath.dir === '/join-us') {
metaUrl += '/api/career/' + parsedPath.base + '/meta';
} else {
metaUrl += '/api/meta?type=';
}
fetchMetaData(metaUrl, (isOk, metaTags, metaHeaders) => {
if (!isOk) {
return callback(null, request); // Return same request so CloudFront can process as usual.
} else {
const contentUrl = 'https://houseofradon.com/index.html';
fetchIndexHtmlAndCreateCloudFrontResponse(contentUrl, metaTags, metaHeaders, (isOk, newResponse) => {
if (!isOk) {
return callback(null, request);
} else {
return callback(null, newResponse);
}
});
}
});
} else {
return callback(null, request);
}
};
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment