updates to db queries and exports
Updates to how queries to the db are made.
This commit is contained in:
+25
-8
@@ -15,17 +15,34 @@ import (
|
||||
var DB *gorm.DB
|
||||
|
||||
// InitDB initializes the database connection
|
||||
func InitDB(dbDir string) (*gorm.DB, error) {
|
||||
zap.L().Info("Initializing database")
|
||||
func InitDB(dbPath string) (*gorm.DB, error) {
|
||||
zap.L().Info("Initializing database", zap.String("path", dbPath))
|
||||
|
||||
// Create directory if it doesn't exist
|
||||
if err := os.MkdirAll(dbDir, 0755); err != nil {
|
||||
zap.L().Error("Failed to create database directory", zap.Error(err))
|
||||
return nil, fmt.Errorf("failed to create database directory: %w", err)
|
||||
// Check if the path is a file or directory
|
||||
fileInfo, err := os.Stat(dbPath)
|
||||
var finalDbPath string
|
||||
|
||||
// If path doesn't exist or is a directory
|
||||
if os.IsNotExist(err) || (err == nil && fileInfo.IsDir()) {
|
||||
// Treat as directory path
|
||||
if err := os.MkdirAll(dbPath, 0755); err != nil {
|
||||
zap.L().Error("Failed to create database directory", zap.Error(err))
|
||||
return nil, fmt.Errorf("failed to create database directory: %w", err)
|
||||
}
|
||||
finalDbPath = filepath.Join(dbPath, "dehashed.sqlite")
|
||||
} else {
|
||||
// Treat as file path
|
||||
// Ensure the directory exists
|
||||
dir := filepath.Dir(dbPath)
|
||||
if err := os.MkdirAll(dir, 0755); err != nil {
|
||||
zap.L().Error("Failed to create parent directory for database", zap.Error(err))
|
||||
return nil, fmt.Errorf("failed to create parent directory for database: %w", err)
|
||||
}
|
||||
finalDbPath = dbPath
|
||||
}
|
||||
|
||||
dbPath := filepath.Join(dbDir, "dehashed.sqlite")
|
||||
db, err := gorm.Open(sqlite.Open(dbPath), &gorm.Config{
|
||||
zap.L().Info("Opening database", zap.String("finalPath", finalDbPath))
|
||||
db, err := gorm.Open(sqlite.Open(finalDbPath), &gorm.Config{
|
||||
Logger: logger.Default.LogMode(logger.Silent),
|
||||
})
|
||||
if err != nil {
|
||||
|
||||
@@ -0,0 +1,53 @@
|
||||
package sqlite
|
||||
|
||||
import "strings"
|
||||
|
||||
type Table int64
|
||||
|
||||
const (
|
||||
ResultsTable Table = iota
|
||||
RunsTable
|
||||
CredsTable
|
||||
WhoIsTable
|
||||
SubdomainsTable
|
||||
HistoryTable
|
||||
UnknownTable
|
||||
)
|
||||
|
||||
func GetTable(userInput string) Table {
|
||||
switch strings.ToLower(userInput) {
|
||||
case "results":
|
||||
return ResultsTable
|
||||
case "runs":
|
||||
return RunsTable
|
||||
case "creds":
|
||||
return CredsTable
|
||||
case "whois":
|
||||
return WhoIsTable
|
||||
case "subdomains":
|
||||
return SubdomainsTable
|
||||
case "history":
|
||||
return HistoryTable
|
||||
default:
|
||||
return UnknownTable
|
||||
}
|
||||
}
|
||||
|
||||
func (t Table) Object() interface{} {
|
||||
switch t {
|
||||
case ResultsTable:
|
||||
return Result{}
|
||||
case RunsTable:
|
||||
return QueryOptions{}
|
||||
case CredsTable:
|
||||
return Creds{}
|
||||
case WhoIsTable:
|
||||
return WhoisRecord{}
|
||||
case SubdomainsTable:
|
||||
return SubdomainRecord{}
|
||||
case HistoryTable:
|
||||
return HistoryRecord{}
|
||||
default:
|
||||
return nil
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user