Store messages with DbMessage Type
Some checks failed
continuous-integration/drone/push Build is failing

This commit is contained in:
ycc
2024-02-29 21:03:15 +01:00
parent 4b3d7548bd
commit f20681adab
7 changed files with 244 additions and 38 deletions

View File

@ -12,7 +12,7 @@ import (
"google.golang.org/protobuf/proto"
)
func StoreMessage(peer *Peer, usermessage *meowlib.UserMessage, password string) error {
func StoreMessage(peer *Peer, usermessage *meowlib.UserMessage, filenames []string, password string) error {
var dbid string
// If no db/no ID create DB + Tablz
// TODO : if file size > X new db
@ -52,8 +52,14 @@ func StoreMessage(peer *Peer, usermessage *meowlib.UserMessage, password string)
f.Data = []byte(hiddenFilename)
}
}
outbound := true
if usermessage.From == peer.ContactPublicKey {
outbound = false
}
// Convert UserMessage to DbMessage
dbm := UserMessageToDbMessage(outbound, usermessage, filenames)
// Encrypt message
out, err := proto.Marshal(usermessage)
out, err := proto.Marshal(dbm)
if err != nil {
return err
}
@ -98,7 +104,7 @@ func GetNewMessages(peer *Peer, lastDbId int, password string) ([]*InternalUserM
for rows.Next() {
var ium *InternalUserMessage
var um meowlib.UserMessage
var dbm meowlib.DbMessage
var id int64
var m []byte
err = rows.Scan(&id, &m)
@ -109,12 +115,12 @@ func GetNewMessages(peer *Peer, lastDbId int, password string) ([]*InternalUserM
if err != nil {
return nil, err
}
err = proto.Unmarshal(decdata, &um)
err = proto.Unmarshal(decdata, &dbm)
if err != nil {
return nil, err
}
ium = InternalUserMessageFromUserMessage(peer, &um)
ium = DbMessageToInternalUserMessage(id, peer.DbIds[fileidx], &dbm)
ium.Dbid = id
ium.Dbfile = peer.DbIds[fileidx]
messages = append(messages, ium)
@ -164,7 +170,7 @@ func GetMessagesHistory(peer *Peer, inAppMsgCount int, lastDbId int, wantMore in
for rows.Next() {
var ium *InternalUserMessage
var um meowlib.UserMessage
var dbm meowlib.DbMessage
var id int64
var m []byte
err = rows.Scan(&id, &m)
@ -175,12 +181,12 @@ func GetMessagesHistory(peer *Peer, inAppMsgCount int, lastDbId int, wantMore in
if err != nil {
return nil, err
}
err = proto.Unmarshal(decdata, &um)
err = proto.Unmarshal(decdata, &dbm)
if err != nil {
return nil, err
}
ium = InternalUserMessageFromUserMessage(peer, &um)
ium = DbMessageToInternalUserMessage(id, peer.DbIds[fileidx], &dbm)
ium.Dbid = id
ium.Dbfile = peer.DbIds[fileidx]
messages = append(messages, *ium)