refactor invitation
This commit is contained in:
44
client/invitation/server/step4.go
Normal file
44
client/invitation/server/step4.go
Normal file
@@ -0,0 +1,44 @@
|
||||
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
|
||||
}
|
||||
Reference in New Issue
Block a user