def unapply()

in app/event/BakeEvent.scala [23:63]


  def unapply(event: BakeEvent): Option[BakeId] = Some(event.bakeId)

  implicit val eventIdExtractor: EventIdExtractor[BakeEvent] =
    EventIdExtractor[BakeEvent](e => Some(e.eventId))

  implicit val eventDataExtractor: EventDataExtractor[BakeEvent] =
    EventDataExtractor[BakeEvent]({ event =>
      val json = event match {
        case Log(_, log) =>
          JsObject(
            Seq(
              "eventType" -> JsString("log"),
              "timestamp" -> JsString(
                log.timestamp.toString("YYYY-MM-dd HH:mm:ss")
              ),
              "log" -> JsObject(
                Seq(
                  "level" -> JsString(log.logLevel),
                  "number" -> JsNumber(log.logNumber),
                  "messageHtml" -> JsString(log.messageHtml.toString)
                )
              )
            )
          )
        case AmiCreated(_, amiId) =>
          JsObject(
            Seq(
              "eventType" -> JsString("ami-created"),
              "amiId" -> JsString(amiId.value)
            )
          )
        case PackerProcessExited(_, exitCode) =>
          JsObject(
            Seq(
              "eventType" -> JsString("packer-process-exited"),
              "exitCode" -> JsNumber(exitCode)
            )
          )
      }
      json.toString()
    })