package server import ( "errors" "forge.redroom.link/yves/meowlib/client" ) // Step4PostConfirmation builds and returns the packed server messages that send the // invitee's confirmation to the initiator through the initiator's servers. func Step4PostConfirmation(invitationId string) ([][]byte, error) { id := client.GetConfig().GetIdentity() peer := id.Peers.GetFromInvitationId(invitationId) if peer == nil { return nil, errors.New("no peer for invitation id " + invitationId) } step4msg, err := peer.BuildInvitationStep4Message() if err != nil { return nil, err } packedMsg, err := peer.ProcessOutboundUserMessage(step4msg) if err != nil { return nil, err } var results [][]byte for _, srvUid := range peer.ContactPullServers { srv, err := id.MessageServers.LoadServer(srvUid) if err != nil { continue } toSrvMsg := srv.BuildToServerMessageFromUserMessage(packedMsg) bytemsg, err := srv.ProcessOutboundMessage(toSrvMsg) if err != nil { continue } results = append(results, bytemsg) } if len(results) == 0 { return nil, errors.New("could not build message for any initiator server") } return results, nil }