meowlib/client/message.go

54 lines
1.4 KiB
Go
Raw Normal View History

2022-12-02 23:18:13 +01:00
package client
import "forge.redroom.link/yves/meowlib"
const (
Inbound = 0
Outbound = 1
)
type InternalUserMessage struct {
2024-02-29 21:03:15 +01:00
Outbound bool // 0 = inbound, 1 = outbound
Messagetype string
Message string
ConversationStatus *meowlib.ConversationStatus
Contact *meowlib.ContactCard
//Group group
FilePaths []string
2024-02-29 21:03:15 +01:00
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 {
2024-02-29 21:03:15 +01:00
iu.Outbound = false
} else {
2024-02-29 21:03:15 +01:00
iu.Outbound = true
}
iu.Messagetype = msg.Type
iu.Message = string(msg.Data)
iu.ConversationStatus = msg.Status
iu.Contact = msg.Contact
return iu
}
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
}