From 71213ad81d43056a1ae101ca26dbfa15edea172b Mon Sep 17 00:00:00 2001 From: Godefroy Ponsinet Date: Tue, 2 Apr 2019 16:14:03 +0200 Subject: [PATCH] fix(ci): tests Signed-off-by: Godefroy Ponsinet --- core/entity/conversation.go | 42 +++++++++++++++++++++++++------------ core/node/nodeapi.go | 2 +- 2 files changed, 30 insertions(+), 14 deletions(-) diff --git a/core/entity/conversation.go b/core/entity/conversation.go index 3db3efbb77..9a381146db 100644 --- a/core/entity/conversation.go +++ b/core/entity/conversation.go @@ -78,29 +78,45 @@ func NewGroupConversation(contacts []*Contact) (*Conversation, error) { Members: []*ConversationMember{}, } + // get myself from contacts + var myself *Contact for _, contact := range contacts { - // create the member - member, err := NewConversationMember(contact, c) - if err != nil { - return nil, errorcodes.ErrConversation.Wrap(err) + if contact.Status == Contact_Myself { + myself = contact } - - c.Members = append(c.Members, member) + } + if myself == nil { + return nil, errorcodes.ErrConversation.Wrap( + errorcodes.ErrConversationMembers.New(), + ) } - var myselfID string - for _, contact := range contacts { - if contact.Status == Contact_Myself { - myselfID = contact.ID - } + // add myself as converastion member + mm, err := NewConversationMember(myself, c) + if err != nil { + return nil, errorcodes.ErrConversation.Wrap(err) } + c.Members = append(c.Members, mm) - im, err := c.GetInteractiveMember(myselfID) + // get interactive member + im, err := c.GetInteractiveMember(myself.ID) if err != nil { return nil, err } - if err = im.SetOwner(myselfID); err != nil { + // invite the contacts + for _, contact := range contacts { + // create the member + if contact.ID == myself.ID { + continue + } + if err := im.Invite(contact); err != nil { + return nil, err + } + } + + // set myself as owner + if err = im.SetOwner(myself.ID); err != nil { return nil, err } diff --git a/core/node/nodeapi.go b/core/node/nodeapi.go index 0ae01d85e3..0c50b76826 100644 --- a/core/node/nodeapi.go +++ b/core/node/nodeapi.go @@ -275,7 +275,7 @@ func (n *Node) ContactRequest(ctx context.Context, req *node.ContactRequestInput } // create conversation if doesn't exist - if _, err := n.ConversationCreate(ctx, + if _, err := n.conversationCreate(ctx, &node.ConversationCreateInput{ Contacts: []*entity.Contact{contact}, Kind: entity.Conversation_OneToOne,