30 lines
1.1 KiB
Scala
30 lines
1.1 KiB
Scala
package net.okennedy.cells
|
|
|
|
import play.api.libs.json._
|
|
|
|
sealed trait WebsocketRequest
|
|
|
|
case class WebsocketHello(client: String) extends WebsocketRequest
|
|
|
|
sealed trait CanvasRequest extends WebsocketRequest
|
|
|
|
case class RequestAddTable(xy: Option[(Int, Int)] = None) extends CanvasRequest
|
|
|
|
sealed trait TableRequest extends CanvasRequest
|
|
{
|
|
val table: Identifier
|
|
}
|
|
|
|
case class RequestSetTablePosition(table: Identifier, x: Int, y: Int) extends TableRequest
|
|
case class RequestUpdateColumns(table: Identifier, op: SeqOp[serialized.ColSpec]) extends TableRequest
|
|
case class RequestUpdateRows(table: Identifier, op: SeqOp[serialized.RowSpec]) extends TableRequest
|
|
|
|
object WebsocketRequest
|
|
{
|
|
implicit val WebsocketHelloFormat: Format[WebsocketHello] = Json.format
|
|
implicit val RequestAddTableFormat: Format[RequestAddTable] = Json.format
|
|
implicit val RequestSetTablePositionFormat: Format[RequestSetTablePosition] = Json.format
|
|
implicit val RequestUpdateColumnsFormat: Format[RequestUpdateColumns] = Json.format
|
|
implicit val RequestUpdateRowsFormat: Format[RequestUpdateRows] = Json.format
|
|
implicit val WebsocketRequestFormat: Format[WebsocketRequest] = Json.format
|
|
} |