mirror of
https://github.com/anotherhadi/spilltea.git
synced 2026-05-20 01:32:33 +02:00
Init
Signed-off-by: Hadi <112569860+anotherhadi@users.noreply.github.com>
This commit is contained in:
@@ -0,0 +1,76 @@
|
||||
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
|
||||
}
|
||||
Reference in New Issue
Block a user