mirror of
https://github.com/Ed1s0nZ/CyberStrikeAI.git
synced 2026-07-14 07:57:26 +02:00
Add files via upload
This commit is contained in:
@@ -0,0 +1,56 @@
|
||||
package database
|
||||
|
||||
import (
|
||||
"strings"
|
||||
"time"
|
||||
)
|
||||
|
||||
func (db *DB) UpsertChatUploadArtifact(relativePath, conversationID, ownerUserID string) error {
|
||||
relativePath = strings.TrimSpace(relativePath)
|
||||
conversationID = strings.TrimSpace(conversationID)
|
||||
ownerUserID = strings.TrimSpace(ownerUserID)
|
||||
if relativePath == "" || conversationID == "" || ownerUserID == "" {
|
||||
return nil
|
||||
}
|
||||
_, err := db.Exec(`
|
||||
INSERT INTO chat_upload_artifacts(relative_path, conversation_id, owner_user_id, created_at)
|
||||
VALUES (?, ?, ?, ?)
|
||||
ON CONFLICT(relative_path) DO UPDATE SET conversation_id=excluded.conversation_id, owner_user_id=excluded.owner_user_id
|
||||
`, relativePath, conversationID, ownerUserID, time.Now())
|
||||
return err
|
||||
}
|
||||
|
||||
func (db *DB) GetChatUploadArtifact(relativePath string) (conversationID, ownerUserID string, ok bool) {
|
||||
err := db.QueryRow(`SELECT conversation_id, owner_user_id FROM chat_upload_artifacts WHERE relative_path = ?`, strings.TrimSpace(relativePath)).Scan(&conversationID, &ownerUserID)
|
||||
return conversationID, ownerUserID, err == nil
|
||||
}
|
||||
|
||||
func (db *DB) DeleteChatUploadArtifactPath(relativePath string) error {
|
||||
path := strings.Trim(strings.TrimSpace(relativePath), "/")
|
||||
if path == "" {
|
||||
return nil
|
||||
}
|
||||
_, err := db.Exec(`DELETE FROM chat_upload_artifacts WHERE relative_path = ? OR relative_path LIKE ? ESCAPE '\'`, path, escapeLikePrefix(path)+"/%")
|
||||
return err
|
||||
}
|
||||
|
||||
func (db *DB) RenameChatUploadArtifactPath(oldPath, newPath string) error {
|
||||
oldPath = strings.Trim(strings.TrimSpace(oldPath), "/")
|
||||
newPath = strings.Trim(strings.TrimSpace(newPath), "/")
|
||||
if oldPath == "" || newPath == "" {
|
||||
return nil
|
||||
}
|
||||
_, err := db.Exec(`
|
||||
UPDATE chat_upload_artifacts
|
||||
SET relative_path = CASE
|
||||
WHEN relative_path = ? THEN ?
|
||||
ELSE ? || substr(relative_path, length(?) + 1)
|
||||
END
|
||||
WHERE relative_path = ? OR relative_path LIKE ? ESCAPE '\'
|
||||
`, oldPath, newPath, newPath, oldPath, oldPath, escapeLikePrefix(oldPath)+"/%")
|
||||
return err
|
||||
}
|
||||
|
||||
func escapeLikePrefix(value string) string {
|
||||
return strings.NewReplacer(`\`, `\\`, `%`, `\%`, `_`, `\_`).Replace(value)
|
||||
}
|
||||
Reference in New Issue
Block a user