feat: recode NginxParser, add writer to db
All checks were successful
CI.yml / build (push) Successful in 1m54s
All checks were successful
CI.yml / build (push) Successful in 1m54s
This commit is contained in:
@@ -12,7 +12,7 @@ type DB struct {
|
||||
db *sql.DB
|
||||
}
|
||||
|
||||
func NewDB(path string) (*DB, error) {
|
||||
func NewDB() (*DB, error) {
|
||||
db, err := sql.Open("sqlite3", "/var/lib/banforge/storage.db")
|
||||
if err != nil {
|
||||
return nil, err
|
||||
|
||||
43
internal/storage/writer.go
Normal file
43
internal/storage/writer.go
Normal file
@@ -0,0 +1,43 @@
|
||||
package storage
|
||||
|
||||
import (
|
||||
"time"
|
||||
)
|
||||
|
||||
func Write(db *DB, resultCh <-chan *LogEntry) {
|
||||
for result := range resultCh {
|
||||
path := ""
|
||||
if result.Path != nil {
|
||||
path = *result.Path
|
||||
}
|
||||
|
||||
status := ""
|
||||
if result.Status != nil {
|
||||
status = *result.Status
|
||||
}
|
||||
|
||||
method := ""
|
||||
if result.Method != nil {
|
||||
method = *result.Method
|
||||
}
|
||||
|
||||
reason := ""
|
||||
if result.Reason != nil {
|
||||
reason = *result.Reason
|
||||
}
|
||||
|
||||
_, err := db.db.Exec(
|
||||
"INSERT INTO requests (service, ip, path, method, status, reason, created_at) VALUES (?, ?, ?, ?, ?, ?, ?)",
|
||||
result.Service,
|
||||
result.IP,
|
||||
path,
|
||||
method,
|
||||
status,
|
||||
reason,
|
||||
time.Now().Format(time.RFC3339),
|
||||
)
|
||||
if err != nil {
|
||||
db.logger.Error("Failed to write to database", "error", err)
|
||||
}
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user