diff --git a/bindings/group.go b/bindings/group.go index e277ca505b81a14e89a6d3f9101f10c8eb2f0ac4..9257424de0bcbc6da9d48d413c714559f54a931b 100644 --- a/bindings/group.go +++ b/bindings/group.go @@ -156,11 +156,11 @@ func (g *GroupChat) ResendRequest(groupId []byte) ([]byte, error) { // - serializedGroupData - the result of calling Group.Serialize() on // any Group object returned over the bindings func (g *GroupChat) JoinGroup(serializedGroupData []byte) error { - grp, err := gs.DeserializeGroup(serializedGroupData) + grp, err := DeserializeGroup(serializedGroupData) if err != nil { return err } - return g.m.JoinGroup(grp) + return g.m.JoinGroup(grp.g) } // LeaveGroup deletes a group so a user no longer has access. @@ -322,6 +322,16 @@ func (g *Group) Serialize() []byte { return g.g.Serialize() } +// DeserializeGroup converts the results of Group.Serialize() into a Group +// so that its methods can be called. +func DeserializeGroup(serializedGroupData []byte) (*Group, error) { + grp, err := gs.DeserializeGroup(serializedGroupData) + if err != nil { + return nil, err + } + return &Group{g: grp}, nil +} + //////////////////////////////////////////////////////////////////////////////// // Callbacks // ////////////////////////////////////////////////////////////////////////////////