split http across files

This commit is contained in:
2026-04-11 23:04:50 +02:00
parent 4c87222b43
commit 59e693dacd
7 changed files with 1019 additions and 1005 deletions
+25 -11
View File
@@ -54,13 +54,12 @@ func DbInit(ctx context.Context) {
}
_, err = dbConn.Exec(ctx, `
CREATE TABLE IF NOT EXISTS messages (
CREATE TABLE IF NOT EXISTS direct_messages (
id UUID PRIMARY KEY DEFAULT gen_random_uuid(),
sender_id INTEGER NOT NULL REFERENCES users(id) ON DELETE CASCADE,
receiver_id UUID NOT NULL REFERENCES user_connections(id) ON DELETE CASCADE,
created_at TIMESTAMP NOT NULL DEFAULT NOW(),
content TEXT NOT NULL,
is_group_message BOOLEAN DEFAULT FALSE
content TEXT NOT NULL
)
`)
if err != nil {
@@ -162,6 +161,21 @@ func DbUserSetPronouns(ctx context.Context, user *User) error {
return err
}
func DbGetWholeUser(ctx context.Context, user *User) error {
if err := DbUserGetById(ctx, user); err != nil {
return err
}
if err := DbUserGetGroups(ctx, user); err != nil {
return err
}
if err := DbConnectionsGetBelongingToUser(ctx, user); err != nil {
return err
}
CacheSaveUser(user)
return nil
}
func DbGroupSetColor(ctx context.Context, group *Group) error {
_, err := dbConn.Exec(ctx, `
UPDATE chat_groups SET color_red = $1, color_green = $2, color_blue = $3 WHERE id = $4
@@ -219,22 +233,22 @@ func DbConnectionUpdateState(ctx context.Context, conn *Connection) error {
func DbMessageSave(ctx context.Context, message *Message) error {
if message.Id != (uuid.UUID{}) {
_, err := dbConn.Exec(ctx, `
INSERT INTO messages (id, sender_id, receiver_id, created_at, content, is_group_message) VALUES ($1, $2, $3, $4, $5, $6)
`, message.Id, message.Sender, message.Receiver, message.CreatedAt, message.Content, message.IsGroupMessage)
INSERT INTO direct_messages (id, sender_id, receiver_id, created_at, content) VALUES ($1, $2, $3, $4, $5)
`, message.Id, message.Sender, message.Receiver, message.CreatedAt, message.Content)
return err
}
return dbConn.QueryRow(ctx, `
INSERT INTO messages (sender_id, receiver_id, created_at, content, is_group_message) VALUES ($1, $2, $3, $4, $5)
INSERT INTO direct_messages (sender_id, receiver_id, created_at, content) VALUES ($1, $2, $3, $4)
RETURNING id
`, message.Sender, message.Receiver, message.CreatedAt, message.Content, message.IsGroupMessage).Scan(&message.Id)
`, message.Sender, message.Receiver, message.CreatedAt, message.Content).Scan(&message.Id)
}
func DbConnectionGetMessagesBefore(ctx context.Context, before time.Time, connection uuid.UUID, cap uint32) ([]*Message, error) {
rows, err := dbConn.Query(ctx, `
SELECT id, sender_id, receiver_id, created_at, content, is_group_message
SELECT id, sender_id, receiver_id, created_at, content
FROM (
SELECT id, sender_id, receiver_id, created_at, content, is_group_message
FROM messages
SELECT id, sender_id, receiver_id, created_at, content
FROM direct_messages
WHERE receiver_id = $1
AND created_at < $2
ORDER BY created_at DESC
@@ -250,7 +264,7 @@ func DbConnectionGetMessagesBefore(ctx context.Context, before time.Time, connec
messages := make([]*Message, 0, cap)
for rows.Next() {
msg := &Message{}
if err = rows.Scan(&msg.Id, &msg.Sender, &msg.Receiver, &msg.CreatedAt, &msg.Content, &msg.IsGroupMessage); err != nil {
if err = rows.Scan(&msg.Id, &msg.Sender, &msg.Receiver, &msg.CreatedAt, &msg.Content); err != nil {
return nil, err
}
messages = append(messages, msg)