Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- 'use strict';
- /* @flow */
- const nconf = require('nconf');
- nconf.env()
- .file({ file: 'api-keys.json' });
- const AWS = require('aws-sdk');
- AWS.config.apiVersions = {
- sns: '2010-03-31',
- };
- AWS.config.update(
- {
- accessKeyId: nconf.get('AWS:ACCESS_KEY_ID'),
- secretAccessKey: nconf.get('AWS:SECRET_ACCESS_KEY'),
- region: nconf.get('AWS:REGION'),
- });
- const sns = new AWS.SNS();
- const moment = require('moment-timezone');
- moment.tz.setDefault('US/Pacific');
- const loggers = require('@hughescr/logger');
- const logger = loggers.logger;
- const mysql = require('mysql2');
- nconf.use('file', { file: 'database.json' });
- nconf.defaults({
- NODE_ENV: 'test',
- });
- const env = nconf.get('NODE_ENV');
- const config = {
- host: nconf.get(env + ':host'),
- user: nconf.get(env + ':user'),
- password: nconf.get(env + ':password'),
- database: nconf.get(env + ':database'),
- };
- // This handler uses some ES6 stuff like arrow functions
- exports.handler = function(event: any, context: any, callback: Function): any
- {
- logger.info('INITIATED BY: ', event);
- logger.info('CONFIG INFO: ', config);
- const conn = mysql.createConnection({
- host: config.host,
- user: config.user,
- password: config.password,
- database: config.database,
- // debug: true,
- });
- conn.on('error', (err: any) =>
- {
- logger.debug(err.code); // 'ER_BAD_DB_ERROR'
- });
- const statement = 'SELECT COUNT(*) AS user_count FROM users';
- conn.query(statement, (err: any, rows: any) =>
- {
- logger.debug('WTF');
- if(err)
- {
- logger.debug(err);
- }
- logger.debug(rows);
- });
- logger.debug('Before this.notifier()');
- this.notifier();
- logger.debug('After this.notifier()');
- setTimeout((): any =>
- {
- return callback(null, 'FIN001');
- }, 60000);
- return callback(null, 'FIN002');
- };
- exports.notifier = function notifyWhenDone(): any
- {
- // logger.debug('notifier called');
- const params =
- {
- Message: 'a whole bunch of strings',
- Subject: 'some string',
- TopicArn: 'arn:aws:sns:us-west-2:681167774979:rds-cleaner-is-done',
- };
- const request = sns.publish(params);
- request.promise()
- .then((data: any): any =>
- {
- logger.info('GOOD', data);
- // return callback(null, data);
- return data;
- },
- (error: any): any =>
- {
- logger.error('BAD', error);
- // return callback(error);
- return error;
- })
- .catch((err: any): any =>
- {
- logger.error('WORSE', err);
- });
- };
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement