This commit is contained in:
		
							
								
								
									
										55
									
								
								client/helpers/call.go
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										55
									
								
								client/helpers/call.go
									
									
									
									
									
										Normal file
									
								
							@@ -0,0 +1,55 @@
 | 
			
		||||
package helpers
 | 
			
		||||
 | 
			
		||||
import (
 | 
			
		||||
	"forge.redroom.link/yves/meowlib"
 | 
			
		||||
	"forge.redroom.link/yves/meowlib/client"
 | 
			
		||||
)
 | 
			
		||||
 | 
			
		||||
func BuildCallRequestMessage(users []string, expiry uint64, srvuid string) ([]byte, string, error) {
 | 
			
		||||
	// Server: get the invitation server
 | 
			
		||||
	server, err := client.GetConfig().GetIdentity().MessageServers.LoadServer(srvuid)
 | 
			
		||||
	if err != nil {
 | 
			
		||||
		return nil, "BuildCallRequestMessage: LoadServer", err
 | 
			
		||||
	}
 | 
			
		||||
 | 
			
		||||
	toSrvMsg, err := server.BuildVideoRoomRequestMessage(users, expiry)
 | 
			
		||||
	if err != nil {
 | 
			
		||||
		return nil, "BuildCallRequestMessage: BuildVideoRoomRequestMessage", err
 | 
			
		||||
	}
 | 
			
		||||
	msg, err := server.ProcessOutboundMessage(toSrvMsg)
 | 
			
		||||
	if err != nil {
 | 
			
		||||
		return nil, "BuildCallRequestMessage: ProcessOutboundMessage", err
 | 
			
		||||
	}
 | 
			
		||||
	return msg, "", nil
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
func ReadCallRequestResponseMessage(data []byte, srvuid string) (*meowlib.VideoData, string, error) {
 | 
			
		||||
	server, err := client.GetConfig().GetIdentity().MessageServers.LoadServer(srvuid)
 | 
			
		||||
	if err != nil {
 | 
			
		||||
		return nil, "ReadCallRequestResponseMessage: LoadServer", err
 | 
			
		||||
	}
 | 
			
		||||
	// Server inbound processing : get the invitation server
 | 
			
		||||
	serverMsg, err := server.ProcessInboundServerResponse(data)
 | 
			
		||||
	if err != nil {
 | 
			
		||||
		return nil, "ReadCallRequestResponseMessage: ProcessInboundServerResponse", err
 | 
			
		||||
	}
 | 
			
		||||
	return serverMsg.VideoData, "", nil
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
func BuildCallMessage(videodata *meowlib.VideoData, srvuid string, peer_idx int, replyToUid string, filelist []string) ([]byte, string, error) {
 | 
			
		||||
	peer := client.GetConfig().GetIdentity().Peers[peer_idx]
 | 
			
		||||
 | 
			
		||||
	// Creating User message
 | 
			
		||||
	usermessage, err := peer.BuildSimpleUserMessage(nil)
 | 
			
		||||
	if err != nil {
 | 
			
		||||
		return nil, "BuildCallMessage : BuildSimpleUserMessage", err
 | 
			
		||||
	}
 | 
			
		||||
 | 
			
		||||
	usermessage.Status.AnswerToUuid = replyToUid
 | 
			
		||||
 | 
			
		||||
	return messageBuildPostprocess(usermessage, srvuid, peer)
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
func BuildCancelCallMessage() {
 | 
			
		||||
 | 
			
		||||
}
 | 
			
		||||
@@ -1,16 +1,39 @@
 | 
			
		||||
package helpers
 | 
			
		||||
 | 
			
		||||
import (
 | 
			
		||||
	"forge.redroom.link/yves/meowlib"
 | 
			
		||||
	"forge.redroom.link/yves/meowlib/client"
 | 
			
		||||
)
 | 
			
		||||
 | 
			
		||||
func messageBuildPostprocess(msg *meowlib.UserMessage, srvuid string, peer *client.Peer) ([]byte, string, error) {
 | 
			
		||||
	// Get the message server
 | 
			
		||||
	srv, err := client.GetConfig().GetIdentity().MessageServers.LoadServer(srvuid)
 | 
			
		||||
	if err != nil {
 | 
			
		||||
		return nil, "messageBuildPostprocess : LoadServer", err
 | 
			
		||||
	}
 | 
			
		||||
	// Prepare cyphered + packed user message
 | 
			
		||||
	packedMsg, err := peer.ProcessOutboundUserMessage(msg)
 | 
			
		||||
	if err != nil {
 | 
			
		||||
		return nil, "messageBuildPostprocess : ProcessOutboundUserMessage", err
 | 
			
		||||
	}
 | 
			
		||||
	// Creating Server message for transporting the user message
 | 
			
		||||
	toServerMessage := srv.BuildToServerMessageFromUserMessage(packedMsg)
 | 
			
		||||
	data, err := srv.ProcessOutboundMessage(toServerMessage)
 | 
			
		||||
	if err != nil {
 | 
			
		||||
		return nil, "messageBuildPostprocess : ProcessOutboundMessage", err
 | 
			
		||||
	}
 | 
			
		||||
	// Store message
 | 
			
		||||
	err = peer.StoreMessage(msg, nil)
 | 
			
		||||
	if err != nil {
 | 
			
		||||
		return nil, "messageBuildPostprocess : StoreMessage", err
 | 
			
		||||
	}
 | 
			
		||||
	return data, "", nil
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
func PrepareUserMessage(message string, srvuid string, peer_idx int, replyToUid string, filelist []string) ([]byte, string, error) {
 | 
			
		||||
 | 
			
		||||
	peer := client.GetConfig().GetIdentity().Peers[peer_idx]
 | 
			
		||||
	srv, err := client.GetConfig().GetIdentity().MessageServers.LoadServer(srvuid)
 | 
			
		||||
	if err != nil {
 | 
			
		||||
		return nil, "PrepareServerMessage : LoadServer", err
 | 
			
		||||
	}
 | 
			
		||||
 | 
			
		||||
	// Creating User message
 | 
			
		||||
	usermessage, err := peer.BuildSimpleUserMessage([]byte(message))
 | 
			
		||||
	if err != nil {
 | 
			
		||||
@@ -23,23 +46,9 @@ func PrepareUserMessage(message string, srvuid string, peer_idx int, replyToUid
 | 
			
		||||
		}
 | 
			
		||||
	}
 | 
			
		||||
	usermessage.Status.AnswerToUuid = replyToUid
 | 
			
		||||
	// Prepare cyphered + packed user message
 | 
			
		||||
	packedMsg, err := peer.ProcessOutboundUserMessage(usermessage)
 | 
			
		||||
	if err != nil {
 | 
			
		||||
		return nil, "PrepareServerMessage : ProcessOutboundUserMessage", err
 | 
			
		||||
	}
 | 
			
		||||
	// Creating Server message for transporting the user message
 | 
			
		||||
	toServerMessage := srv.BuildToServerMessageFromUserMessage(packedMsg)
 | 
			
		||||
	data, err := srv.ProcessOutboundMessage(toServerMessage)
 | 
			
		||||
	if err != nil {
 | 
			
		||||
		return nil, "PrepareServerMessage : ProcessOutboundMessage", err
 | 
			
		||||
	}
 | 
			
		||||
	// Store message
 | 
			
		||||
	err = peer.StoreMessage(usermessage, filelist)
 | 
			
		||||
	if err != nil {
 | 
			
		||||
		return nil, "PrepareServerMessage : StoreMessage", err
 | 
			
		||||
	}
 | 
			
		||||
	return data, "", nil
 | 
			
		||||
 | 
			
		||||
	return messageBuildPostprocess(usermessage, srvuid, peer)
 | 
			
		||||
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
func SendAck(messageUid string, srvuid string, peer_idx int, received int64, processed int64) ([]byte, string, error) {
 | 
			
		||||
 
 | 
			
		||||
		Reference in New Issue
	
	Block a user