This commit is contained in:
gitGnome
2026-04-16 14:23:14 +02:00
parent 6d0eaa92e9
commit f0fdaedd8c
4 changed files with 28 additions and 154 deletions
-77
View File
@@ -66,29 +66,6 @@ func Init(ctx context.Context) {
if err != nil {
panic(err)
}
_, err = dbConn.Exec(ctx, `
CREATE TABLE IF NOT EXISTS files_metadata (
id UUID PRIMARY KEY DEFAULT gen_random_uuid(),
uploader_id UUID NOT NULL REFERENCES users(id),
name TEXT,
hash TEXT NOT NULL,
created_at TIMESTAMP NOT NULL DEFAULT NOW()
)
`)
if err != nil {
panic(err)
}
_, err = dbConn.Exec(ctx, `
CREATE TABLE IF NOT EXISTS file_connections (
file_id UUID NOT NULL REFERENCES files_metadata(id) ON DELETE CASCADE,
connection_id UUID NOT NULL REFERENCES user_connections(id) ON DELETE CASCADE
)
`)
if err != nil {
panic(err)
}
}
func UserSave(ctx context.Context, user *types.User) error {
@@ -243,57 +220,3 @@ func ConnectionGetMessagesBefore(ctx context.Context, before time.Time, connecti
}
return messages, rows.Err()
}
func FileMetadataSave(ctx context.Context, metadata *types.FileMetadata) error {
_, err := dbConn.Exec(ctx, `
INSERT INTO files_metadata (id, uploader_id, name, hash, created_at) VALUES ($1, $2, $3, $4, $5)
`, metadata.Id, metadata.UploaderId, metadata.Name, metadata.Hash, metadata.CreatedAt)
return err
}
func FileMetadataGet(ctx context.Context, metadata *types.FileMetadata) error {
return dbConn.QueryRow(ctx, `
SELECT uploader_id, name, hash, created_at FROM files_metadata WHERE id = $1
`, metadata.Id).Scan(&metadata.UploaderId, &metadata.Name, &metadata.Hash, &metadata.CreatedAt)
}
func FileMetadataDelete(ctx context.Context, metadataId *uuid.UUID) error {
_, err := dbConn.Exec(ctx, `
DELETE FROM files_metadata WHERE id = $1
`, metadataId)
return err
}
func FileConnectionsAdd(ctx context.Context, metadataId *uuid.UUID, connectionId *uuid.UUID) error {
_, err := dbConn.Exec(ctx, `
INSERT INTO file_connections (file_id, connection_id) VALUES ($1, $2)
`, metadataId, connectionId)
return err
}
func FileConnectionsGet(ctx context.Context, metadata *types.FileMetadata) error {
rows, err := dbConn.Query(ctx, `
SELECT connection_id FROM file_connections WHERE file_id = $1
`, metadata.Id)
if err != nil {
return err
}
defer rows.Close()
for rows.Next() {
connectionId := uuid.UUID{}
if err = rows.Scan(&connectionId); err != nil {
return err
}
metadata.Connections = append(metadata.Connections, connectionId)
}
return rows.Err()
}
func FileMetadataHashExists(ctx context.Context, hash *types.Sha256Hash) (bool, error) {
var exists bool
err := dbConn.QueryRow(ctx, `
SELECT EXISTS (SELECT FROM files_metadata WHERE hash = $1)
`, hash).Scan(&exists)
return exists, err
}