package main import "fmt" func saveRequest(db *DB, message string) (string, error) { id := newUUID() if err := db.Exec( `INSERT INTO requests (id, sha1, message) VALUES (?, ?, ?)`, id, hashSHA1(message), encodeB64(message), ); err != nil { return "", fmt.Errorf("saveRequest: %w", err) } return id, nil } func saveResponse(db *DB, requestID, response string) error { if err := db.Exec( `INSERT INTO responses (id, id_request, response) VALUES (?, ?, ?)`, newUUID(), requestID, encodeB64(response), ); err != nil { return fmt.Errorf("saveResponse: %w", err) } return nil } func initSchema(db *DB) error { return db.Exec(` CREATE TABLE IF NOT EXISTS requests ( id TEXT PRIMARY KEY, sha1 TEXT NOT NULL, message TEXT NOT NULL, created_at TEXT DEFAULT (datetime('now')) ); CREATE TABLE IF NOT EXISTS responses ( id TEXT PRIMARY KEY, id_request TEXT NOT NULL, response TEXT NOT NULL, created_at TEXT DEFAULT (datetime('now')), FOREIGN KEY (id_request) REFERENCES requests(id) ); `) }