package object import ( "citrons.xyz/talk/proto" "citrons.xyz/talk/server/session" ) type Tombstone struct { Id string Fields map[string]string } type TombstoneKind struct {} func (t TombstoneKind) Undata(o proto.Object) Object { return Tombstone {Id: o.Id, Fields: o.Fields} } func (t Tombstone) InfoFor(uid string) proto.Object { return t.Data() } func (t Tombstone) Data() 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()) } }