package client import "forge.redroom.link/yves/meowlib" const ( Inbound = 0 Outbound = 1 ) type InternalUserMessage struct { Outbound bool `json:"outbound,omitempty"` // 0 = inbound, 1 = outbound Messagetype string `json:"messagetype,omitempty"` Message string `json:"message,omitempty"` ConversationStatus *meowlib.ConversationStatus `json:"conversation_status,omitempty"` Contact *meowlib.ContactCard `json:"contact,omitempty"` //Group group FilePaths []string `json:"file_paths,omitempty"` CurrentLocation *meowlib.Location `json:"current_location,omitempty"` Appdata []byte `json:"appdata,omitempty"` Dbfile string `json:"dbfile,omitempty"` Dbid int64 `json:"dbid,omitempty"` } // InternalUserMessageFromUserMessage creates an InternalUserMessage from a UserMessage func InternalUserMessageFromUserMessage(peer *Peer, msg *meowlib.UserMessage) *InternalUserMessage { iu := new(InternalUserMessage) if peer.ContactPublicKey == msg.From { iu.Outbound = false } else { iu.Outbound = true } iu.Messagetype = msg.Type iu.Message = string(msg.Data) iu.ConversationStatus = msg.Status iu.Contact = msg.Contact return iu } func ProcessOutboundTextMessage(peer *Peer, text string, srv *Server) ([]byte, error) { // Creating User message usermessage, err := peer.BuildSimpleUserMessage([]byte(text)) if err != nil { return nil, err } // Prepare cyphered + packed user message packedMsg, err := peer.ProcessOutboundUserMessage(usermessage) if err != nil { return nil, err } // Creating Server message for transporting the user message toServerMessage := srv.BuildToServerMessageFromUserMessage(packedMsg) return srv.ProcessOutboundMessage(toServerMessage) }