Skip to content

Commit

Permalink
Moved error handling to the function for now. This may be implemented…
Browse files Browse the repository at this point in the history
… in a future version of µServerless
  • Loading branch information
onema committed Jan 27, 2019
1 parent e2a08b8 commit 5458dad
Show file tree
Hide file tree
Showing 2 changed files with 9 additions and 7 deletions.
9 changes: 7 additions & 2 deletions src/main/scala/io/onema/mailer/MailerFunction.scala
Original file line number Diff line number Diff line change
Expand Up @@ -19,6 +19,9 @@ import io.onema.json.JavaExtensions._
import io.onema.mailer.MailerLogic.Email
import io.onema.userverless.configuration.lambda.EnvLambdaConfiguration
import io.onema.userverless.function.SnsHandler
import io.onema.userverless.exception.ThrowableExtensions._

import scala.util.{Failure, Success, Try}

class MailerFunction extends SnsHandler[Email] with EnvLambdaConfiguration {

Expand All @@ -33,12 +36,14 @@ class MailerFunction extends SnsHandler[Email] with EnvLambdaConfiguration {
getValue("/table/name").getOrElse(throw new Exception("Table name is a required value")),
getValue("/attachment/bucket").getOrElse(throw new Exception("Attachment bucket is a required value")),
shouldLog,
reportException
)

//--- Methods ---
def execute(email: Email, context: Context): Unit = {
log.info(email.asJson)
logic.handleRequest(email)
Try(logic.handleRequest(email)) match {
case Failure(ex) => log.error(ex.structuredMessage(reportException = reportException))
case Success(_) =>
}
}
}
7 changes: 2 additions & 5 deletions src/main/scala/io/onema/mailer/MailerLogic.scala
Original file line number Diff line number Diff line change
Expand Up @@ -25,7 +25,6 @@ import com.amazonaws.services.simpleemail.model._
import com.sun.mail.smtp.SMTPMessage
import com.typesafe.scalalogging.Logger
import io.onema.userverless.monitoring.LogMetrics._
import io.onema.userverless.exception.ThrowableExtensions._
import io.onema.mailer.MailerLogic.Email
import io.onema.vff.FileSystem
import io.onema.vff.adapter.AwsS3Adapter
Expand Down Expand Up @@ -111,7 +110,7 @@ object MailerLogic {
}
}

class MailerLogic(val sesClient: AmazonSimpleEmailService, val dynamodbClient: AmazonDynamoDBAsync, val s3Client: AmazonS3, val tableName: String, val bucketName: String, val shouldLogEmail: Boolean, val reportException: Boolean) {
class MailerLogic(val sesClient: AmazonSimpleEmailService, val dynamodbClient: AmazonDynamoDBAsync, val s3Client: AmazonS3, val tableName: String, val bucketName: String, val shouldLogEmail: Boolean) {

//--- Fields ---
protected val log = Logger("mailer-logic")
Expand All @@ -126,9 +125,7 @@ class MailerLogic(val sesClient: AmazonSimpleEmailService, val dynamodbClient: A
if(filteredEmails.to.nonEmpty) {
val value = if(shouldLogEmail) filteredEmails.to else s"${filteredEmails.to.size} emails"
log.info(s"Sending message to $value")
Try(sendEmail(filteredEmails)) match {
case Failure(ex) => log.error(ex.structuredMessage(reportException = false))
}
sendEmail(filteredEmails)
} else {
log.info(s"All emails are blocked")
}
Expand Down

0 comments on commit 5458dad

Please sign in to comment.