mirror of
https://github.com/anotherhadi/spilltea.git
synced 2026-05-20 17:52:33 +02:00
e8e64eff12
Signed-off-by: Hadi <112569860+anotherhadi@users.noreply.github.com>
77 lines
1.9 KiB
Go
77 lines
1.9 KiB
Go
package db
|
|
|
|
import (
|
|
"time"
|
|
)
|
|
|
|
type ReplayEntry struct {
|
|
ID int64
|
|
Timestamp time.Time
|
|
Scheme string
|
|
Host string
|
|
Path string
|
|
Method string
|
|
OriginalRaw string
|
|
RequestRaw string
|
|
ResponseRaw string
|
|
StatusCode int
|
|
ErrorMsg string
|
|
}
|
|
|
|
func (d *DB) InsertReplayEntry(e ReplayEntry) (int64, error) {
|
|
res, err := d.conn.Exec(
|
|
`INSERT INTO replay_entries (timestamp, scheme, host, path, method, original_raw, request_raw, response_raw, status_code, error_msg)
|
|
VALUES (?, ?, ?, ?, ?, ?, ?, ?, ?, ?)`,
|
|
e.Timestamp.UTC().Format(time.RFC3339),
|
|
e.Scheme, e.Host, e.Path, e.Method,
|
|
e.OriginalRaw, e.RequestRaw, e.ResponseRaw,
|
|
e.StatusCode, e.ErrorMsg,
|
|
)
|
|
if err != nil {
|
|
return 0, err
|
|
}
|
|
return res.LastInsertId()
|
|
}
|
|
|
|
func (d *DB) UpdateReplayEntry(e ReplayEntry) error {
|
|
_, err := d.conn.Exec(
|
|
`UPDATE replay_entries SET request_raw=?, response_raw=?, status_code=?, error_msg=? WHERE id=?`,
|
|
e.RequestRaw, e.ResponseRaw, e.StatusCode, e.ErrorMsg, e.ID,
|
|
)
|
|
return err
|
|
}
|
|
|
|
func (d *DB) ListReplayEntries() ([]ReplayEntry, error) {
|
|
rows, err := d.conn.Query(
|
|
`SELECT id, timestamp, scheme, host, path, method, original_raw, request_raw, response_raw, status_code, error_msg
|
|
FROM replay_entries ORDER BY id ASC`,
|
|
)
|
|
if err != nil {
|
|
return nil, err
|
|
}
|
|
defer rows.Close()
|
|
|
|
var entries []ReplayEntry
|
|
for rows.Next() {
|
|
var e ReplayEntry
|
|
var ts string
|
|
if err := rows.Scan(&e.ID, &ts, &e.Scheme, &e.Host, &e.Path, &e.Method,
|
|
&e.OriginalRaw, &e.RequestRaw, &e.ResponseRaw, &e.StatusCode, &e.ErrorMsg); err != nil {
|
|
return nil, err
|
|
}
|
|
e.Timestamp, _ = time.Parse(time.RFC3339, ts)
|
|
entries = append(entries, e)
|
|
}
|
|
return entries, rows.Err()
|
|
}
|
|
|
|
func (d *DB) DeleteReplayEntry(id int64) error {
|
|
_, err := d.conn.Exec(`DELETE FROM replay_entries WHERE id = ?`, id)
|
|
return err
|
|
}
|
|
|
|
func (d *DB) DeleteAllReplayEntries() error {
|
|
_, err := d.conn.Exec(`DELETE FROM replay_entries`)
|
|
return err
|
|
}
|