app/models/AuditRecord.scala (18 lines of code) (raw):
package models
import java.time.ZonedDateTime
import java.util.UUID
import helpers.RangeHeader
case class AuditRecord (uuid:UUID, recordTime:ZonedDateTime, event:String, username:String, file:Option[AuditFile], maybeRange:Seq[RangeHeader], notes:Option[String], bytes:Option[Long])
object AuditRecord {
/**
* shortcut method to generate a new event, with randomised UUID and current time
* @param event event type, an AuditEvent value
* @param username username (string)
* @param file optional AuditFile record indicating the object affected
* @param overrideDateTime optional ZonedDateTime to override the current datetime used
* @return a new AuditRecord instance
*/
def apply(event:AuditEvent.Value, username:String, file:Option[AuditFile], maybeRange:Seq[RangeHeader], notes:Option[String]=None, bytes:Option[Long]=None, overrideDateTime:Option[ZonedDateTime]=None) =
new AuditRecord(
UUID.randomUUID(),
overrideDateTime.getOrElse(ZonedDateTime.now()),
event.toString,
username,
file,
maybeRange,
notes,
bytes
)
}