about summary refs log tree commit diff
path: root/db.go
diff options
context:
space:
mode:
Diffstat (limited to 'db.go')
-rw-r--r--db.go44
1 files changed, 44 insertions, 0 deletions
diff --git a/db.go b/db.go
new file mode 100644
index 0000000..164984a
--- /dev/null
+++ b/db.go
@@ -0,0 +1,44 @@
+package main
+
+import (
+	"database/sql"
+	"fmt"
+	"log"
+)
+
+func connectToDatabase() {
+	log.Println("[Database] Initializing the database connection")
+	db = connectToDB()
+	db.SetMaxOpenConns(75)
+	pingDB()
+}
+
+// connectToDB returns a pointer to an sql database writing to the database
+func connectToDB() *sql.DB {
+	//connStr := fmt.Sprintf("user=%s dbname=%s sslmode=%s", DBUSER, DBNAME, DBSSLMODE)
+	connStr := fmt.Sprintf("host=%s port=%d user=%s "+
+		"password=%s dbname=%s sslmode=disable",
+		DBHOST, DBPORT, DBUSER, DBPASSWD, DBNAME)
+	db := dbConnect(connStr)
+	return db
+}
+
+// dbConnect connects to a PostgreSQL database
+func dbConnect(connStr string) *sql.DB {
+	// connect to the database
+	db, err := sql.Open("postgres", connStr)
+	if err != nil {
+		log.Fatalf("[ E ] connection: %v", err)
+	}
+
+	return db
+}
+
+func pingDB() {
+	// ping the db
+	err := db.Ping()
+	if err != nil {
+		panic(err)
+	}
+	log.Println("[ ] Done Pinging the DB")
+}