func handleExport(d *Server, ctx context.Context, cmd *wire.Command) (*wire.Response, error) { who := cmd.GetExportCommand().Who // Figure out the correct store: var st *store.Store if who == "" { st = d.Repo.OwnStore } else { whoID, err := id.Cast(who) if err != nil { return nil, err } st, err = d.Repo.Store(whoID) if err != nil { return nil, err } } pbStore, err := st.Export() if err != nil { return nil, err } data, err := proto.Marshal(pbStore) if err != nil { return nil, err } return &wire.Response{ ExportResp: &wire.Response_ExportResp{ Data: data, }, }, nil }