|
@@ -180,26 +180,20 @@ func (msg *Message) Scan(row dbutil.Scannable) *Message {
|
|
|
return msg
|
|
|
}
|
|
|
|
|
|
-func (msg *Message) Insert(txn dbutil.Transaction) {
|
|
|
+func (msg *Message) Insert(txn dbutil.Execable) {
|
|
|
+ if txn == nil {
|
|
|
+ txn = msg.db
|
|
|
+ }
|
|
|
var sender interface{} = msg.Sender
|
|
|
// Slightly hacky hack to allow inserting empty senders (used for post-backfill dummy events)
|
|
|
if msg.Sender.IsEmpty() {
|
|
|
sender = ""
|
|
|
}
|
|
|
- query := `
|
|
|
+ _, err := txn.Exec(`
|
|
|
INSERT INTO message
|
|
|
(chat_jid, chat_receiver, jid, mxid, sender, timestamp, sent, type, error, broadcast_list_jid)
|
|
|
VALUES ($1, $2, $3, $4, $5, $6, $7, $8, $9, $10)
|
|
|
- `
|
|
|
- args := []interface{}{
|
|
|
- msg.Chat.JID, msg.Chat.Receiver, msg.JID, msg.MXID, sender, msg.Timestamp.Unix(), msg.Sent, msg.Type, msg.Error, msg.BroadcastListJID,
|
|
|
- }
|
|
|
- var err error
|
|
|
- if txn != nil {
|
|
|
- _, err = txn.Exec(query, args...)
|
|
|
- } else {
|
|
|
- _, err = msg.db.Exec(query, args...)
|
|
|
- }
|
|
|
+ `, msg.Chat.JID, msg.Chat.Receiver, msg.JID, msg.MXID, sender, msg.Timestamp.Unix(), msg.Sent, msg.Type, msg.Error, msg.BroadcastListJID)
|
|
|
if err != nil {
|
|
|
msg.log.Warnfln("Failed to insert %s@%s: %v", msg.Chat, msg.JID, err)
|
|
|
}
|
|
@@ -214,18 +208,15 @@ func (msg *Message) MarkSent(ts time.Time) {
|
|
|
}
|
|
|
}
|
|
|
|
|
|
-func (msg *Message) UpdateMXID(txn dbutil.Transaction, mxid id.EventID, newType MessageType, newError MessageErrorType) {
|
|
|
+func (msg *Message) UpdateMXID(txn dbutil.Execable, mxid id.EventID, newType MessageType, newError MessageErrorType) {
|
|
|
+ if txn == nil {
|
|
|
+ txn = msg.db
|
|
|
+ }
|
|
|
msg.MXID = mxid
|
|
|
msg.Type = newType
|
|
|
msg.Error = newError
|
|
|
- query := "UPDATE message SET mxid=$1, type=$2, error=$3 WHERE chat_jid=$4 AND chat_receiver=$5 AND jid=$6"
|
|
|
- args := []interface{}{mxid, newType, newError, msg.Chat.JID, msg.Chat.Receiver, msg.JID}
|
|
|
- var err error
|
|
|
- if txn != nil {
|
|
|
- _, err = txn.Exec(query, args...)
|
|
|
- } else {
|
|
|
- _, err = msg.db.Exec(query, args...)
|
|
|
- }
|
|
|
+ _, err := txn.Exec("UPDATE message SET mxid=$1, type=$2, error=$3 WHERE chat_jid=$4 AND chat_receiver=$5 AND jid=$6",
|
|
|
+ mxid, newType, newError, msg.Chat.JID, msg.Chat.Receiver, msg.JID)
|
|
|
if err != nil {
|
|
|
msg.log.Warnfln("Failed to update %s@%s: %v", msg.Chat, msg.JID, err)
|
|
|
}
|