Advertisement
Guest User

Untitled

a guest
Nov 9th, 2016
175
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 2.38 KB | None | 0 0
  1. 'use strict';
  2. /* @flow */
  3.  
  4. const nconf = require('nconf');
  5. nconf.env()
  6. .file({ file: 'api-keys.json' });
  7.  
  8. const AWS = require('aws-sdk');
  9. AWS.config.apiVersions = {
  10. sns: '2010-03-31',
  11. };
  12. AWS.config.update(
  13. {
  14. accessKeyId: nconf.get('AWS:ACCESS_KEY_ID'),
  15. secretAccessKey: nconf.get('AWS:SECRET_ACCESS_KEY'),
  16. region: nconf.get('AWS:REGION'),
  17. });
  18. const sns = new AWS.SNS();
  19. const moment = require('moment-timezone');
  20. moment.tz.setDefault('US/Pacific');
  21.  
  22. const loggers = require('@hughescr/logger');
  23. const logger = loggers.logger;
  24. const mysql = require('mysql2');
  25. nconf.use('file', { file: 'database.json' });
  26. nconf.defaults({
  27. NODE_ENV: 'test',
  28. });
  29. const env = nconf.get('NODE_ENV');
  30. const config = {
  31. host: nconf.get(env + ':host'),
  32. user: nconf.get(env + ':user'),
  33. password: nconf.get(env + ':password'),
  34. database: nconf.get(env + ':database'),
  35. };
  36.  
  37. // This handler uses some ES6 stuff like arrow functions
  38. exports.handler = function(event: any, context: any, callback: Function): any
  39. {
  40. logger.info('INITIATED BY: ', event);
  41. logger.info('CONFIG INFO: ', config);
  42.  
  43. const conn = mysql.createConnection({
  44. host: config.host,
  45. user: config.user,
  46. password: config.password,
  47. database: config.database,
  48. // debug: true,
  49. });
  50. conn.on('error', (err: any) =>
  51. {
  52. logger.debug(err.code); // 'ER_BAD_DB_ERROR'
  53. });
  54. const statement = 'SELECT COUNT(*) AS user_count FROM users';
  55. conn.query(statement, (err: any, rows: any) =>
  56. {
  57. logger.debug('WTF');
  58. if(err)
  59. {
  60. logger.debug(err);
  61. }
  62. logger.debug(rows);
  63. });
  64.  
  65. logger.debug('Before this.notifier()');
  66. this.notifier();
  67. logger.debug('After this.notifier()');
  68. setTimeout((): any =>
  69. {
  70. return callback(null, 'FIN001');
  71. }, 60000);
  72. return callback(null, 'FIN002');
  73. };
  74.  
  75. exports.notifier = function notifyWhenDone(): any
  76. {
  77. // logger.debug('notifier called');
  78. const params =
  79. {
  80. Message: 'a whole bunch of strings',
  81. Subject: 'some string',
  82. TopicArn: 'arn:aws:sns:us-west-2:681167774979:rds-cleaner-is-done',
  83. };
  84. const request = sns.publish(params);
  85. request.promise()
  86. .then((data: any): any =>
  87. {
  88. logger.info('GOOD', data);
  89. // return callback(null, data);
  90. return data;
  91. },
  92. (error: any): any =>
  93. {
  94. logger.error('BAD', error);
  95. // return callback(error);
  96. return error;
  97. })
  98. .catch((err: any): any =>
  99. {
  100. logger.error('WORSE', err);
  101. });
  102. };
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement