package database
import (
"database/sql"
"fmt"
"github.com/gin-gonic/gin"
_ "github.com/lib/pq"
)
const CONNECTION_SUCCESS string = `
Connection successful!
`
const CONNECTION_FAILURE string = `
Connection failed!
%s
`
// 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)
}