Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- object ServingError{
- // we are adding a method modification content method, to be used by the modification traits def modifyContent(error: ServingError, content: String): ServingError = {
- error match {
- case f: FatalError => FatalError(exceptionCause = f.exceptionCause, content = content)
- case i: InvalidRequestError => InvalidRequestError(i.paramName, i.paramValue, content = content)
- }
- }
- }
- trait JsonTransformer extends Sender {
- import ServingError._
- abstract override def send(event: ServingError): Unit = {
- super.send(modifyContent(event, {
- val date = event match {
- case d: DateTimestampedMessage => "\"date\":" + d.date
- case _ => ""
- }
- val cause = event match {
- case f: FatalError => "\"cause\":" + f.exceptionCause
- case i: InvalidRequestError => "\"cause\":" + i.paramName +":" +i.paramValue
- }
- s""" { "code:"${event.code}, $date $cause } """
- }))
- }
- }
- trait CsVTransformer extends Sender {
- import ServingError._
- abstract override def send(event: ServingError): Unit = {
- super.send(modifyContent(event, {
- val date = event match {
- case d: DateTimestampedMessage => d.date
- case _ => ""
- }
- val cause = event match {
- case f: FatalError => f.exceptionCause
- case i: InvalidRequestError => i.paramName +"," +i.paramValue
- }
- s"""${event.code},$date$cause"""
- }))
- }
- }
- trait Timestamp {
- val date: Date = new Date()
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement