func (g *gregorHandler) InjectOutOfBandMessage(system string, body []byte) error { var err error defer g.G().Trace(fmt.Sprintf("gregorHandler.InjectOutOfBandMessage(%s)", system), func() error { return err }, )() uid := g.G().Env.GetUID() if uid.IsNil() { err = fmt.Errorf("Can't create new gregor items without a current UID.") return err } gregorUID := gregor1.UID(uid.ToBytes()) msg := gregor1.Message{ Oobm_: &gregor1.OutOfBandMessage{ Uid_: gregorUID, System_: gregor1.System(system), Body_: gregor1.Body(body), }, } incomingClient := gregor1.IncomingClient{Cli: g.cli} // TODO: Should the interface take a context from the caller? err = incomingClient.ConsumeMessage(context.TODO(), msg) return err }
func (g *gregorHandler) InjectItem(cat string, body []byte) (gregor.MsgID, error) { var err error defer g.G().Trace(fmt.Sprintf("gregorHandler.InjectItem(%s)", cat), func() error { return err }, )() creation, err := g.templateMessage() if err != nil { return nil, err } creation.Ibm_.StateUpdate_.Creation_ = &gregor1.Item{ Category_: gregor1.Category(cat), Body_: gregor1.Body(body), } incomingClient := gregor1.IncomingClient{Cli: g.cli} // TODO: Should the interface take a context from the caller? err = incomingClient.ConsumeMessage(context.TODO(), *creation) return creation.Ibm_.StateUpdate_.Md_.MsgID_, err }
func rekeyBroadcast(tc libkb.TestContext, gUID gregor1.UID, h *gregorHandler, body string) { msgID := gregor1.MsgID("my_random_id") m := gregor1.Message{ Ibm_: &gregor1.InBandMessage{ StateUpdate_: &gregor1.StateUpdateMessage{ Md_: gregor1.Metadata{ MsgID_: msgID, Ctime_: gregor1.ToTime(tc.G.Clock().Now()), Uid_: gUID, }, Creation_: &gregor1.Item{ Category_: gregor1.Category("kbfs_tlf_rekey_needed"), Body_: gregor1.Body(body), }, }, }, } if err := h.BroadcastMessage(context.Background(), m); err != nil { tc.T.Fatal(err) } }