github.com/keybase/client/go@v0.0.0-20241007131713-f10651d043c8/service/tlf.go (about) 1 // Copyright 2015 Keybase, Inc. All rights reserved. Use of 2 // this source code is governed by the included BSD license. 3 4 package service 5 6 import ( 7 "fmt" 8 9 "golang.org/x/net/context" 10 11 "github.com/keybase/client/go/chat" 12 "github.com/keybase/client/go/chat/globals" 13 "github.com/keybase/client/go/chat/utils" 14 keybase1 "github.com/keybase/client/go/protocol/keybase1" 15 "github.com/keybase/go-framed-msgpack-rpc/rpc" 16 ) 17 18 type tlfHandler struct { 19 *BaseHandler 20 utils.DebugLabeler 21 globals.Contextified 22 23 tlfInfoSource *chat.KBFSNameInfoSource 24 } 25 26 func newTlfHandler(xp rpc.Transporter, g *globals.Context) *tlfHandler { 27 return &tlfHandler{ 28 BaseHandler: NewBaseHandler(g.ExternalG(), xp), 29 Contextified: globals.NewContextified(g), 30 DebugLabeler: utils.NewDebugLabeler(g.ExternalG(), "TlfHandler", false), 31 tlfInfoSource: chat.NewKBFSNameInfoSource(g), 32 } 33 } 34 35 func (h *tlfHandler) CryptKeys(ctx context.Context, arg keybase1.TLFQuery) (res keybase1.GetTLFCryptKeysRes, err error) { 36 defer h.Trace(ctx, &err, 37 fmt.Sprintf("CryptKeys(tlf=%s,mode=%v)", arg.TlfName, arg.IdentifyBehavior))() 38 var breaks []keybase1.TLFIdentifyFailure 39 ctx = globals.ChatCtx(ctx, h.G(), arg.IdentifyBehavior, &breaks, chat.NewCachingIdentifyNotifier(h.G())) 40 return h.tlfInfoSource.CryptKeys(ctx, arg.TlfName) 41 } 42 43 func (h *tlfHandler) PublicCanonicalTLFNameAndID(ctx context.Context, arg keybase1.TLFQuery) (res keybase1.CanonicalTLFNameAndIDWithBreaks, err error) { 44 defer h.Trace(ctx, &err, 45 fmt.Sprintf("PublicCanonicalTLFNameAndID(tlf=%s,mode=%v)", arg.TlfName, 46 arg.IdentifyBehavior))() 47 var breaks []keybase1.TLFIdentifyFailure 48 ctx = globals.ChatCtx(ctx, h.G(), arg.IdentifyBehavior, &breaks, chat.NewCachingIdentifyNotifier(h.G())) 49 return h.tlfInfoSource.PublicCanonicalTLFNameAndID(ctx, arg.TlfName) 50 } 51 52 func (h *tlfHandler) CompleteAndCanonicalizePrivateTlfName(ctx context.Context, arg keybase1.TLFQuery) (res keybase1.CanonicalTLFNameAndIDWithBreaks, err error) { 53 defer h.Trace(ctx, &err, 54 fmt.Sprintf("CompleteAndCanonicalizePrivateTlfName(tlf=%s,mode=%v)", arg.TlfName, 55 arg.IdentifyBehavior))() 56 var breaks []keybase1.TLFIdentifyFailure 57 ctx = globals.ChatCtx(ctx, h.G(), arg.IdentifyBehavior, &breaks, chat.NewCachingIdentifyNotifier(h.G())) 58 return h.tlfInfoSource.CompleteAndCanonicalizePrivateTlfName(ctx, arg.TlfName) 59 }