forked from lichess-org/lila
-
Notifications
You must be signed in to change notification settings - Fork 0
/
Modlog.scala
47 lines (39 loc) · 1.13 KB
/
Modlog.scala
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
package lila.mod
import org.joda.time.DateTime
import org.scala_tools.time.Imports._
case class Modlog(
mod: String,
user: Option[String],
action: String,
details: Option[String] = None,
date: DateTime = DateTime.now) {
def showAction = action match {
case Modlog.engine ⇒ "mark as engine"
case Modlog.unengine ⇒ "un-mark as engine"
case Modlog.deletePost ⇒ "delete forum post"
case Modlog.ban ⇒ "ban user"
case Modlog.ipban ⇒ "ban IP"
case a ⇒ a
}
}
object Modlog {
val engine = "engine"
val unengine = "unengine"
val mute = "mute"
val unmute = "unmute"
val ban = "ban"
val ipban = "ipban"
val deletePost = "deletePost"
import lila.db.Tube
import Tube.Helpers._
import play.api.libs.json._
private[mod] lazy val tube = Tube[Modlog](
reader = (__.json update (
merge(defaults) andThen readDate('date)
)) andThen Json.reads[Modlog],
writer = Json.writes[Modlog],
writeTransformer = (__.json update writeDate('date)).some,
flags = Seq(_.NoId)
)
private def defaults = Json.obj("details" -> none[String])
}