add messages persistancy, channels does not persist
This commit is contained in:
@@ -578,6 +578,35 @@ func HubChannelMessageGet(ctx context.Context, message *types.Message) error {
|
||||
`, message.Id).Scan(&message.Sender, &message.Receiver, &message.CreatedAt, &message.Content, &message.AttachedFile)
|
||||
}
|
||||
|
||||
func HubChannelGetMessagesBefore(ctx context.Context, before time.Time, channelId uuid.UUID, cap uint32) ([]*types.Message, error) {
|
||||
rows, err := dbConn.Query(ctx, `
|
||||
SELECT id, sender_id, receiver_id, created_at, content, attached_file
|
||||
FROM (
|
||||
SELECT id, sender_id, receiver_id, created_at, content, attached_file
|
||||
FROM hub_channel_messages
|
||||
WHERE receiver_id = $1
|
||||
AND created_at < $2
|
||||
ORDER BY created_at DESC
|
||||
LIMIT $3
|
||||
) sub
|
||||
ORDER BY created_at ASC
|
||||
`, channelId, before, cap)
|
||||
if err != nil {
|
||||
return nil, err
|
||||
}
|
||||
defer rows.Close()
|
||||
|
||||
messages := make([]*types.Message, 0, cap)
|
||||
for rows.Next() {
|
||||
msg := &types.Message{}
|
||||
if err = rows.Scan(&msg.Id, &msg.Sender, &msg.Receiver, &msg.CreatedAt, &msg.Content, &msg.AttachedFile); err != nil {
|
||||
return nil, err
|
||||
}
|
||||
messages = append(messages, msg)
|
||||
}
|
||||
return messages, rows.Err()
|
||||
}
|
||||
|
||||
func HubUpdate(ctx context.Context, hub *types.Hub, updateList *types.HubUpdate) error {
|
||||
setClauses := make([]string, 0, 6)
|
||||
args := make([]any, 0, 7)
|
||||
|
||||
Reference in New Issue
Block a user