2022-12-02 23:18:13 +01:00
|
|
|
package client
|
|
|
|
|
2023-02-15 22:08:17 +01:00
|
|
|
import "forge.redroom.link/yves/meowlib"
|
|
|
|
|
2024-02-18 13:46:11 +01:00
|
|
|
const (
|
|
|
|
Inbound = 0
|
|
|
|
Outbound = 1
|
|
|
|
)
|
|
|
|
|
2023-02-15 22:08:17 +01:00
|
|
|
type InternalUserMessage struct {
|
2024-02-18 13:46:11 +01:00
|
|
|
Direction int // 0 = inbound, 1 = outbound
|
|
|
|
Messagetype string
|
|
|
|
Message string
|
|
|
|
ConversationStatus *meowlib.ConversationStatus
|
|
|
|
Contact *meowlib.ContactCard
|
|
|
|
//Group group
|
|
|
|
FilePaths []string
|
|
|
|
CurrentLocation meowlib.Location
|
|
|
|
appdata []byte
|
|
|
|
Dbfile string
|
|
|
|
Dbid int64
|
|
|
|
}
|
|
|
|
|
|
|
|
// InternalUserMessageFromUserMessage creates an InternalUserMessage from a UserMessage
|
|
|
|
func InternalUserMessageFromUserMessage(peer *Peer, msg *meowlib.UserMessage) *InternalUserMessage {
|
|
|
|
iu := new(InternalUserMessage)
|
|
|
|
if peer.ContactPublicKey == msg.From {
|
|
|
|
iu.Direction = Inbound
|
|
|
|
} else {
|
|
|
|
iu.Direction = Outbound
|
|
|
|
}
|
|
|
|
iu.Messagetype = msg.Type
|
|
|
|
iu.Message = string(msg.Data)
|
|
|
|
iu.ConversationStatus = msg.Status
|
|
|
|
iu.Contact = msg.Contact
|
|
|
|
return iu
|
2023-02-15 22:08:17 +01:00
|
|
|
}
|
|
|
|
|
2023-11-08 22:01:44 +01:00
|
|
|
func ProcessOutboundTextMessage(peer *Peer, text string, srv *Server) ([]byte, error) {
|
2022-12-18 19:47:44 +01:00
|
|
|
// Creating User message
|
|
|
|
usermessage, err := peer.BuildSimpleUserMessage([]byte(text))
|
|
|
|
if err != nil {
|
|
|
|
return nil, err
|
|
|
|
}
|
|
|
|
// Prepare cyphered + packed user message
|
2022-12-18 20:59:27 +01:00
|
|
|
packedMsg, err := peer.ProcessOutboundUserMessage(usermessage)
|
2022-12-18 19:47:44 +01:00
|
|
|
if err != nil {
|
|
|
|
return nil, err
|
|
|
|
}
|
2022-12-02 23:18:13 +01:00
|
|
|
// Creating Server message for transporting the user message
|
2022-12-18 20:36:44 +01:00
|
|
|
toServerMessage := srv.BuildToServerMessageFromUserMessage(packedMsg)
|
2022-12-18 20:59:27 +01:00
|
|
|
return srv.ProcessOutboundMessage(toServerMessage)
|
2022-12-17 19:57:02 +01:00
|
|
|
}
|