Azpect3120 111a6aead3 INIT: First commit, having session issues
Shocker! These sessions are stupid as hell. Going to try using gorilla
instead.
2024-08-06 21:40:04 -07:00

49 lines
1.3 KiB
Go

package database
import (
"database/sql"
"fmt"
"github.com/gin-gonic/gin"
_ "github.com/lib/pq"
)
const CONNECTION_SUCCESS string = `
<span id="connection-status" class="w-3 h-3 bg-green-500 rounded-full"></span>
<span hx-swap-oob="outerHTML" id="connection-message" class="text-green-500"> Connection successful! </span>
<span hx-swap-oob="outerHTML" id="db-url-invalid" class="text-xs text-red-500 hidden"></span>
`
const CONNECTION_FAILURE string = `
<span id="connection-status" class="w-3 h-3 bg-red-500 rounded-full"></span>
<span hx-swap-oob="outerHTML" id="connection-message" class="text-red-500"> Connection failed! </span>
<span hx-swap-oob="outerHTML" id="db-url-invalid" class="text-xs text-red-500">%s</span>
`
// Test a connection to a database
func TestConnectionURL(c *gin.Context) {
var driver string
switch c.PostForm("db-driver") {
case "postgresql":
driver = "postgres"
default:
c.String(200, fmt.Sprintf(CONNECTION_FAILURE, "Unsupported driver"))
return
}
// Open connection
conn, err := sql.Open(driver, c.PostForm("db-url"))
if err != nil {
fmt.Println(err)
c.String(200, CONNECTION_FAILURE)
}
// Ping/test connection
if err := conn.Ping(); err != nil {
c.String(200, fmt.Sprintf(CONNECTION_FAILURE, err.Error()))
return
}
c.String(200, CONNECTION_SUCCESS)
}