2023-09-06 22:20:09 +01:00
|
|
|
package server
|
|
|
|
|
|
|
|
import (
|
|
|
|
"github.com/1f349/tulip/database"
|
|
|
|
"log"
|
|
|
|
"net/http"
|
|
|
|
)
|
|
|
|
|
2023-09-07 11:45:16 +01:00
|
|
|
// DbTx wraps a database transaction with http error messages and a simple action
|
|
|
|
// function. If the action function returns an error the transaction will be
|
|
|
|
// rolled back. If there is no error then the transaction is committed.
|
2024-03-11 12:39:52 +00:00
|
|
|
func (h *HttpServer) DbTx(rw http.ResponseWriter, action func(db *database.Queries) error) bool {
|
|
|
|
err := action(h.db)
|
2023-09-06 22:20:09 +01:00
|
|
|
if err != nil {
|
|
|
|
http.Error(rw, "Database error", http.StatusInternalServerError)
|
|
|
|
log.Println("Database action error:", err)
|
|
|
|
return true
|
|
|
|
}
|
|
|
|
|
|
|
|
return false
|
|
|
|
}
|