Sha256: efc8131657d3e75a452334fc0911d6fccc0b79a613ad6eecd452949dd010de50

Contents?: true

Size: 1.72 KB

Versions: 17

Compression:

Stored size: 1.72 KB

Contents

/* Copyright 2016 The Cocktail Experience, S.L. */
var AWS = require('aws-sdk');
var ses = new AWS.SES({apiVersion: '2010-12-01'});
var conf = require('./conf');
var utils = require('./utils');

exports.handler = function(event, context) {
  console.log('Received event:', JSON.stringify(event, null, 2));

  if (!event.domain) { context.fail('domain: empty'); return; }

  var domain = conf.domains[event.domain];

  if (!domain) { context.fail('domain: not found'); return; }

  console.log(domain.emailAddress);

  if (!event.email) { context.fail('email: empty'); return; }
  if (!event.message || event.message === '') { context.fail('message: empty'); return; }

  var email = unescape(event.email);
  if (!utils.validateEmail(email)) { context.fail('email: format'); return; }

  var messageParts = [];

  if (event.name) messageParts.push("Name: " + event.name);
  if (event.company) messageParts.push("Company: " + event.company);
  if (event.phone) messageParts.push("Phone: " + event.phone);
  messageParts.push("Email: " + event.email);
  messageParts.push("\r\n" + event.message);

  var params = {
    Destination: {
      ToAddresses: [ domain.emailAddress ],
      BccAddresses: [ "fernando.gs@gmail.com" ]
    },
    Message: {
      Body: { Text: { Data: messageParts.join("\r\n"), Charset: 'UTF-8' } },
      Subject: { Data: domain.emailSubject, Charset: 'UTF-8' }
    },
    Source: domain.emailAddress,
    ReplyToAddresses: [ email ]
  };

  if ((event.cc) && (event.cc == "1")) {
    params.Destination.CcAddresses = [ event.email ];
  }

  ses.sendEmail(params, function(err, data) {
    if (err) {
      console.log(err, err.stack);
      context.fail(err);
    } else {
      console.log(data);
      context.succeed(0);
    }
  });
};

Version data entries

17 entries across 17 versions & 1 rubygems

Version Path
tck-lambdas-0.3.9 lib/tck/lambdas/contact_form/source/contact_form.js
tck-lambdas-0.3.8 lib/tck/lambdas/contact_form/source/contact_form.js
tck-lambdas-0.3.7 lib/tck/lambdas/contact_form/source/contact_form.js
tck-lambdas-0.3.6 lib/tck/lambdas/contact_form/source/contact_form.js
tck-lambdas-0.3.5 lib/tck/lambdas/contact_form/source/contact_form.js
tck-lambdas-0.3.4 lib/tck/lambdas/contact_form/source/contact_form.js
tck-lambdas-0.3.3 lib/tck/lambdas/contact_form/source/contact_form.js
tck-lambdas-0.3.2 lib/tck/lambdas/contact_form/source/contact_form.js
tck-lambdas-0.3.1 lib/tck/lambdas/contact_form/source/contact_form.js
tck-lambdas-0.3.0 lib/tck/lambdas/contact_form/source/contact_form.js
tck-lambdas-0.2.0 lib/tck/lambdas/contact_form/source/contact_form.js
tck-lambdas-0.1.6 lib/tck/lambdas/contact_form/source/contact_form.js
tck-lambdas-0.1.5 lib/tck/lambdas/contact_form/source/contact_form.js
tck-lambdas-0.1.4 lib/tck/lambdas/contact_form/source/contact_form.js
tck-lambdas-0.1.3 lib/tck/lambdas/contact_form/source/contact_form.js
tck-lambdas-0.1.2 lib/tck/lambdas/contact_form/source/contact_form.js
tck-lambdas-0.1.1 lib/tck/lambdas/contact_form/source/contact_form.js