def parseRaw()

in auditlog/src/main/scala/com/gerritforge/analytics/auditlog/model/AuditEvent.scala [151:163]


  def parseRaw(json: String): Try[AuditEvent] = {
    Try(parse(json)).flatMap { jsValueEvent =>
      jsValueEvent \ "type" match {
        case JString(eventType) if eventType == "HttpAuditEvent" =>
          HttpAuditEvent(jsValueEvent \ "event")
        case JString(eventType) if eventType == "ExtendedHttpAuditEvent" =>
          ExtendedHttpAuditEvent(jsValueEvent \ "event")
        case JString(eventType) if eventType == "SshAuditEvent" =>
          SshAuditEvent(jsValueEvent \ "event")
        case _ => Failure(new MappingException(s"Could not parse json into an audit event: $json"))
      }
    }
  }