github.com/keybase/client/go@v0.0.0-20240309051027-028f7c731f8b/chat/commands/hide.go (about) 1 package commands 2 3 import ( 4 "context" 5 6 "github.com/keybase/client/go/chat/globals" 7 "github.com/keybase/client/go/protocol/chat1" 8 "github.com/keybase/client/go/protocol/gregor1" 9 ) 10 11 type Hide struct { 12 *baseCommand 13 } 14 15 func NewHide(g *globals.Context) *Hide { 16 return &Hide{ 17 baseCommand: newBaseCommand(g, "hide", "[conversation]", 18 "Hides [conversation] or the current one", false), 19 } 20 } 21 22 func (h *Hide) Execute(ctx context.Context, uid gregor1.UID, inConvID chat1.ConversationID, 23 tlfName, text string, replyTo *chat1.MessageID) (err error) { 24 defer h.Trace(ctx, &err, "Execute")() 25 if !h.Match(ctx, text) { 26 return ErrInvalidCommand 27 } 28 var convID chat1.ConversationID 29 toks, err := h.tokenize(text, 1) 30 if err != nil { 31 return err 32 } 33 if len(toks) == 1 { 34 convID = inConvID 35 } else if len(toks) == 2 { 36 conv, err := getConvByName(ctx, h.G(), uid, toks[1]) 37 if err != nil { 38 return err 39 } 40 convID = conv.GetConvID() 41 } else { 42 return ErrInvalidArguments 43 } 44 if err = h.G().InboxSource.RemoteSetConversationStatus(ctx, uid, convID, 45 chat1.ConversationStatus_IGNORED); err != nil { 46 return err 47 } 48 return nil 49 }