get-url-hash.js 929 B

12345678910111213141516171819202122232425262728293031
  1. const AWS = require('aws-sdk');
  2. const lambda = new AWS.Lambda({
  3. credentials: {
  4. accessKeyId: process.env.AWS_LAMBDA_EXECUTE_KEY,
  5. secretAccessKey: process.env.AWS_LAMBDA_EXECUTE_SECRET
  6. },
  7. region: 'us-east-1'
  8. });
  9. module.exports = function getUrlHash (targetUrl, algorithm = 'sha256') {
  10. return new Promise((resolve, reject) => {
  11. lambda.invoke({
  12. FunctionName: 'hasher',
  13. Payload: JSON.stringify({
  14. targetUrl,
  15. algorithm
  16. })
  17. }, (err, data) => {
  18. if (err) return reject(err);
  19. try {
  20. const response = JSON.parse(data.Payload);
  21. if (response.statusCode !== 200) return reject(new Error('non-200 status code received from hasher function'));
  22. if (!response.hash) return reject(new Error('Successful lambda call but failed to get valid hash'));
  23. resolve(response.hash);
  24. } catch (err) {
  25. return reject(err);
  26. }
  27. });
  28. });
  29. };