Add last-message-clock-value
This commit is contained in:
parent
9c229ef5d7
commit
019becdcbb
1
chat.go
1
chat.go
|
@ -47,6 +47,7 @@ type Chat struct {
|
|||
LastMessageContentType string `json:"lastMessageContentType"`
|
||||
LastMessageContent string `json:"lastMessageContent"`
|
||||
LastMessageTimestamp int64 `json:"lastMessageTimestamp"`
|
||||
LastMessageClockValue int64 `json:"lastMessageClockValue"`
|
||||
|
||||
// Group chat fields
|
||||
// Members are the members who have been invited to the group chat
|
||||
|
|
|
@ -3,7 +3,7 @@
|
|||
// 000001_init.down.db.sql (82B)
|
||||
// 000001_init.up.db.sql (840B)
|
||||
// 000002_add_chats.down.db.sql (74B)
|
||||
// 000002_add_chats.up.db.sql (569B)
|
||||
// 000002_add_chats.up.db.sql (599B)
|
||||
// 000003_add_contacts.down.db.sql (21B)
|
||||
// 000003_add_contacts.up.db.sql (381B)
|
||||
// 000004_user_messages_compatibility.down.sql (33B)
|
||||
|
@ -139,7 +139,7 @@ func _000002_add_chatsDownDbSql() (*asset, error) {
|
|||
return a, nil
|
||||
}
|
||||
|
||||
var __000002_add_chatsUpDbSql = []byte("\x1f\x8b\x08\x00\x00\x00\x00\x00\x00\xff\x8c\x92\xcf\x6a\x32\x31\x14\xc5\xf7\xf7\x29\x2e\x7c\x0b\xbf\x42\x16\xed\xa2\xb4\xe0\x2a\x33\x46\x3a\x34\x9d\x48\x8c\xa5\xae\x42\xcc\x5c\xea\xe0\xfc\xc3\xc9\x58\x7c\xfb\xa2\x1d\xac\x76\x2a\x74\x99\x9c\xdf\x39\x97\x93\xdc\x58\x0b\x6e\x04\x1a\x1e\x49\x81\xc9\x14\x53\x65\x50\xbc\x25\x73\x33\x47\xbf\x76\xa1\xc5\xff\x90\x67\xf8\xca\x75\xfc\xc4\x35\xce\x74\xf2\xc2\xf5\x12\x9f\xc5\x12\x55\x8a\xb1\x4a\xa7\x32\x89\x0d\x6a\x31\x93\x3c\x16\x0c\x2a\x57\xd2\x89\x3e\x64\xa5\x0b\x29\x19\xf8\xba\xa8\xb7\x83\x7b\x9c\x88\x29\x5f\x48\x83\xa3\x7f\xee\xee\xf1\x21\xbb\x1f\x31\x08\xfb\x86\x30\x49\xcd\x99\xd9\xf9\x90\xef\x08\x23\xa5\xa4\xe0\xe9\xd0\x6d\xf4\x42\x30\x08\x79\x49\x6d\x70\x65\xf3\xc3\x9d\x51\x41\x81\x32\xeb\x82\xf5\x45\xed\x37\x76\xe7\x8a\xee\x72\xc4\x29\xe9\x96\x41\xd3\xad\x8a\xdc\xdb\x0d\xed\x31\x92\x2a\x62\xd0\x55\xbb\x9c\x3e\x28\xb3\x25\xb5\xad\x7b\x27\xeb\xeb\xae\x0a\x57\xfd\x85\x6b\xff\x36\xe8\x08\x7e\x67\x56\x81\xaa\x60\x8f\xed\xfb\x67\xfa\x1d\xb9\xa2\x5e\xb4\x67\x50\x52\xb9\xa2\x6d\xdb\x57\xe8\x4f\xeb\xbc\xb1\x5d\x93\xb9\x40\x5f\x02\xdc\x8c\x01\x60\xa2\xd5\xac\xff\xfe\x21\x37\x3e\x97\x0f\xfb\x60\x7b\x66\x0c\x9f\x01\x00\x00\xff\xff\x78\x3a\x6f\x25\x39\x02\x00\x00")
|
||||
var __000002_add_chatsUpDbSql = []byte("\x1f\x8b\x08\x00\x00\x00\x00\x00\x00\xff\x8c\x92\x4f\x4b\x03\x31\x10\xc5\xef\xf3\x29\x06\x3c\x54\x21\x07\x3d\x88\x42\x4f\xd9\x6d\x8a\x8b\x71\x53\xd2\x54\xec\x29\xa4\xd9\xc1\x2e\xdd\x7f\x74\xb3\x95\x7e\x7b\x69\x5d\x6a\xff\x58\xf0\x98\xbc\xf7\x7b\x93\x17\x26\xd6\x82\x1b\x81\x86\x47\x52\x60\x32\xc6\x54\x19\x14\x1f\xc9\xd4\x4c\xd1\x2f\x5d\x68\xf1\x16\xf2\x0c\xdf\xb9\x8e\x5f\xb8\xc6\x89\x4e\xde\xb8\x9e\xe3\xab\x98\xa3\x4a\x31\x56\xe9\x58\x26\xb1\x41\x2d\x26\x92\xc7\x82\x41\xe5\x4a\x3a\xb8\x77\x59\xe9\x4c\x4a\x06\xbe\x2e\xea\xf5\xc5\x3d\x8e\xc4\x98\xcf\xa4\xc1\xc1\x8d\x7b\x78\x7e\xca\x1e\x07\x0c\xc2\xb6\x21\x4c\x52\x73\x04\x3b\x1f\xf2\x0d\x61\xa4\x94\x14\x3c\xbd\xa4\x8d\x9e\x09\x06\x21\x2f\xa9\x0d\xae\x6c\xce\xe8\x8c\x0a\x0a\x94\x59\x17\xac\x2f\x6a\xbf\xb2\x1b\x57\x74\xa7\x23\x0e\x49\xf7\x0c\x9a\x6e\x51\xe4\xde\xae\x68\x8b\x91\x54\x11\x83\xae\xda\xe4\xf4\x45\x99\x2d\xa9\x6d\xdd\x27\x59\x5f\x77\x55\xb8\xca\x17\xae\xfd\xdf\xa0\xbd\xf1\x37\xb3\x0a\x54\x05\xbb\x6f\xdf\x7f\xd3\xdf\x96\x2b\xea\x49\xfb\x73\xf2\xf4\x35\x0c\x4a\x2a\x17\xb4\x6e\xfb\x82\xfd\x69\x99\x37\xb6\x6b\x32\x17\xe8\x47\x80\xbb\x21\x00\x8c\xb4\x9a\xf4\xcb\x71\xe9\x1b\x1e\xcb\xbb\x6d\xb1\xbd\x67\x08\xdf\x01\x00\x00\xff\xff\x44\xe3\x59\x6f\x57\x02\x00\x00")
|
||||
|
||||
func _000002_add_chatsUpDbSqlBytes() ([]byte, error) {
|
||||
return bindataRead(
|
||||
|
@ -154,8 +154,8 @@ func _000002_add_chatsUpDbSql() (*asset, error) {
|
|||
return nil, err
|
||||
}
|
||||
|
||||
info := bindataFileInfo{name: "000002_add_chats.up.db.sql", size: 569, mode: os.FileMode(0644), modTime: time.Unix(1567414857, 0)}
|
||||
a := &asset{bytes: bytes, info: info, digest: [32]uint8{0x89, 0xb, 0x12, 0x5, 0x4b, 0xda, 0xab, 0xb2, 0x47, 0x1b, 0x66, 0xe, 0x47, 0x8a, 0xb0, 0x9c, 0xa0, 0xe4, 0x12, 0xa4, 0xf9, 0xaa, 0x72, 0xba, 0xd9, 0x17, 0x8f, 0xac, 0x7f, 0xfd, 0x85, 0xa9}}
|
||||
info := bindataFileInfo{name: "000002_add_chats.up.db.sql", size: 599, mode: os.FileMode(0644), modTime: time.Unix(1572543168, 0)}
|
||||
a := &asset{bytes: bytes, info: info, digest: [32]uint8{0xdb, 0xf, 0xef, 0x31, 0x64, 0x3, 0xf0, 0x58, 0x1e, 0xed, 0x1e, 0x7e, 0xce, 0x4, 0x20, 0x51, 0x79, 0xf9, 0xca, 0xc3, 0xb9, 0xc9, 0x60, 0x25, 0x2f, 0x6b, 0x99, 0xb1, 0x92, 0x6d, 0x56, 0x31}}
|
||||
return a, nil
|
||||
}
|
||||
|
||||
|
@ -194,7 +194,7 @@ func _000003_add_contactsUpDbSql() (*asset, error) {
|
|||
return nil, err
|
||||
}
|
||||
|
||||
info := bindataFileInfo{name: "000003_add_contacts.up.db.sql", size: 381, mode: os.FileMode(0644), modTime: time.Unix(1570778621, 0)}
|
||||
info := bindataFileInfo{name: "000003_add_contacts.up.db.sql", size: 381, mode: os.FileMode(0644), modTime: time.Unix(1572543168, 0)}
|
||||
a := &asset{bytes: bytes, info: info, digest: [32]uint8{0x45, 0xfe, 0x1e, 0xf2, 0x75, 0x33, 0x37, 0x8e, 0x7f, 0x93, 0x6f, 0x16, 0xbb, 0xf8, 0xa4, 0x70, 0x6b, 0xe0, 0xc1, 0x4f, 0x99, 0x8d, 0xc8, 0x2d, 0x40, 0xf1, 0xed, 0x65, 0x90, 0xc3, 0xad, 0xc7}}
|
||||
return a, nil
|
||||
}
|
||||
|
|
|
@ -12,6 +12,7 @@ last_clock_value INT NOT NULL DEFAULT 0,
|
|||
last_message_content_type VARCHAR,
|
||||
last_message_content VARCHAR,
|
||||
last_message_timestamp INT,
|
||||
last_message_clock_value INT,
|
||||
members BLOB,
|
||||
membership_updates BLOB
|
||||
);
|
||||
|
|
|
@ -76,8 +76,8 @@ func (db sqlitePersistence) SaveChat(chat Chat) error {
|
|||
}
|
||||
|
||||
// Insert record
|
||||
stmt, err := db.db.Prepare(`INSERT INTO chats(id, name, color, active, type, timestamp, deleted_at_clock_value, public_key, unviewed_message_count, last_clock_value, last_message_content_type, last_message_content, last_message_timestamp, members, membership_updates)
|
||||
VALUES (?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?)`)
|
||||
stmt, err := db.db.Prepare(`INSERT INTO chats(id, name, color, active, type, timestamp, deleted_at_clock_value, public_key, unviewed_message_count, last_clock_value, last_message_content_type, last_message_content, last_message_timestamp, last_message_clock_value, members, membership_updates)
|
||||
VALUES (?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?)`)
|
||||
if err != nil {
|
||||
return err
|
||||
}
|
||||
|
@ -97,6 +97,7 @@ func (db sqlitePersistence) SaveChat(chat Chat) error {
|
|||
chat.LastMessageContentType,
|
||||
chat.LastMessageContent,
|
||||
chat.LastMessageTimestamp,
|
||||
chat.LastMessageClockValue,
|
||||
encodedMembers.Bytes(),
|
||||
encodedMembershipUpdates.Bytes(),
|
||||
)
|
||||
|
@ -149,6 +150,7 @@ func (db sqlitePersistence) chats(tx *sql.Tx) ([]*Chat, error) {
|
|||
last_message_content_type,
|
||||
last_message_content,
|
||||
last_message_timestamp,
|
||||
last_message_clock_value,
|
||||
members,
|
||||
membership_updates
|
||||
FROM chats
|
||||
|
@ -164,6 +166,7 @@ func (db sqlitePersistence) chats(tx *sql.Tx) ([]*Chat, error) {
|
|||
var lastMessageContentType sql.NullString
|
||||
var lastMessageContent sql.NullString
|
||||
var lastMessageTimestamp sql.NullInt64
|
||||
var lastMessageClockValue sql.NullInt64
|
||||
|
||||
chat := &Chat{}
|
||||
encodedMembers := []byte{}
|
||||
|
@ -183,6 +186,7 @@ func (db sqlitePersistence) chats(tx *sql.Tx) ([]*Chat, error) {
|
|||
&lastMessageContentType,
|
||||
&lastMessageContent,
|
||||
&lastMessageTimestamp,
|
||||
&lastMessageClockValue,
|
||||
&encodedMembers,
|
||||
&encodedMembershipUpdates,
|
||||
)
|
||||
|
@ -192,6 +196,7 @@ func (db sqlitePersistence) chats(tx *sql.Tx) ([]*Chat, error) {
|
|||
chat.LastMessageContent = lastMessageContent.String
|
||||
chat.LastMessageContentType = lastMessageContentType.String
|
||||
chat.LastMessageTimestamp = lastMessageTimestamp.Int64
|
||||
chat.LastMessageClockValue = lastMessageClockValue.Int64
|
||||
|
||||
// Restore members
|
||||
membersDecoder := gob.NewDecoder(bytes.NewBuffer(encodedMembers))
|
||||
|
|
|
@ -392,6 +392,7 @@ func (db sqlitePersistence) BlockContact(contact Contact) ([]*Chat, error) {
|
|||
unviewed_message_count = (SELECT COUNT(1) FROM user_messages_legacy WHERE seen = 0 AND chat_id = chats.id),
|
||||
last_message_content = (SELECT content from user_messages_legacy WHERE chat_id = chats.id ORDER BY clock_value DESC LIMIT 1),
|
||||
last_message_timestamp = (SELECT timestamp from user_messages_legacy WHERE chat_id = chats.id ORDER BY clock_value DESC LIMIT 1),
|
||||
last_message_clock_value = (SELECT clock_value from user_messages_legacy WHERE chat_id = chats.id ORDER BY clock_value DESC LIMIT 1),
|
||||
last_message_content_type = (SELECT content_type from user_messages_legacy WHERE chat_id = chats.id ORDER BY clock_value DESC LIMIT 1)`)
|
||||
if err != nil {
|
||||
return nil, err
|
||||
|
|
Loading…
Reference in New Issue