diff options
| author | citrons <citrons@mondecitronne.com> | 2025-06-12 15:19:56 -0500 |
|---|---|---|
| committer | citrons <citrons@mondecitronne.com> | 2025-06-12 15:24:48 -0500 |
| commit | 6e9496323fbdfbe2b60122ce68cf3791ccb2910d (patch) | |
| tree | e9e88b894b56441b1b5591f626c776224dc0669c /server/object/tombstone.go | |
| parent | ececa97d9ee6a435f81756bc25e25ed80285d20b (diff) | |
object.Tombstone
Diffstat (limited to 'server/object/tombstone.go')
| -rw-r--r-- | server/object/tombstone.go | 29 |
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()) + } +} |
