aboutsummaryrefslogtreecommitdiff
path: root/server/src/Message.scala
diff options
context:
space:
mode:
Diffstat (limited to 'server/src/Message.scala')
-rw-r--r--server/src/Message.scala26
1 files changed, 26 insertions, 0 deletions
diff --git a/server/src/Message.scala b/server/src/Message.scala
new file mode 100644
index 0000000..55b4602
--- /dev/null
+++ b/server/src/Message.scala
@@ -0,0 +1,26 @@
+import java.time.Instant
+
+case class Message(
+ author: String,
+ date: Long, // seconds since epoch
+ content: String
+)
+
+object Message {
+
+ // A ReadWriter is used to serialize a message to JSON.
+ // The call to macroRW will generate a readwriter through compiler-time
+ // introspection. By default, the mapping of a case class to JSON is pretty
+ // straightforward. A message:
+ // Message("John Smith", 0, "Hello, World!")
+ // will get rendered as
+ // {
+ // "author": "John Smith",
+ // "date": 0,
+ // "message": "Hello, World!"
+ // }
+ //
+ implicit def messageRW: upickle.default.ReadWriter[Message] =
+ upickle.default.macroRW[Message]
+
+}