summaryrefslogtreecommitdiff
path: root/server/object
diff options
context:
space:
mode:
authorcitrons <citrons@mondecitronne.com>2025-06-12 15:19:56 -0500
committercitrons <citrons@mondecitronne.com>2025-06-12 15:24:48 -0500
commit6e9496323fbdfbe2b60122ce68cf3791ccb2910d (patch)
treee9e88b894b56441b1b5591f626c776224dc0669c /server/object
parentececa97d9ee6a435f81756bc25e25ed80285d20b (diff)
object.Tombstone
Diffstat (limited to 'server/object')
-rw-r--r--server/object/tombstone.go29
1 files changed, 29 insertions, 0 deletions
diff --git a/server/object/tombstone.go b/server/object/tombstone.go
new file mode 100644
index 0000000..05d9600
--- /dev/null
+++ b/server/object/tombstone.go
@@ -0,0 +1,29 @@
+package object
+
+import (
+ "citrons.xyz/talk/proto"
+ "citrons.xyz/talk/server/session"
+)
+
+type Tombstone struct {
+ Id string
+ Fields map[string]string
+}
+
+func (t Tombstone) InfoFor(uid string) proto.Object {
+ return proto.Object {"gone", t.Id, t.Fields}
+}
+
+func (t Tombstone) SendRequest(r session.Request) {
+ switch r.Cmd.Kind {
+
+ case "i", "s":
+ r.Reply(proto.NewCmd("i", "", t.InfoFor(r.From.UserId)))
+
+ case "u":
+ r.ReplyOk()
+
+ default:
+ r.Reply(proto.Fail{"bad-target", "", nil}.Cmd())
+ }
+}