aboutsummaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
Diffstat (limited to 'src')
-rw-r--r--src/conf/conf.go24
-rw-r--r--src/db/db.go23
-rw-r--r--src/server/server.go6
3 files changed, 42 insertions, 11 deletions
diff --git a/src/conf/conf.go b/src/conf/conf.go
index 7a6dcbf..62ffb57 100644
--- a/src/conf/conf.go
+++ b/src/conf/conf.go
@@ -1,6 +1,7 @@
package conf
import (
+ "fmt"
"log"
"os"
@@ -18,7 +19,11 @@ type (
Db struct {
Adapter string `toml:"adapter"`
User string `toml:"user"`
- Password string `toml:"pass"`
+ Secret string `toml:"secret"`
+ Hostname string `toml:"hostname"`
+ Port string `toml:"port"`
+ DbName string `toml:"dbname"`
+ Url string
}
Server struct {
@@ -43,7 +48,9 @@ func NewConf() *Conf {
c := Conf{
cwd,
filepath,
- Db{},
+ Db{
+ Hostname: "localhost",
+ },
Server{
UiPath: cwd + "/ui",
},
@@ -52,11 +59,24 @@ func NewConf() *Conf {
if err != nil {
log.Fatalln(err)
}
+ c.setDbUrl()
log.Printf("Config loaded: %s", c)
return &c
}
+func (c *Conf) setDbUrl() {
+ c.Db.Url = fmt.Sprintf(
+ "%s://%s:%s@%s:%s/%s",
+ c.Db.Adapter,
+ c.Db.User,
+ c.Db.Secret,
+ c.Db.Hostname,
+ c.Db.Port,
+ c.Db.DbName,
+ )
+}
+
func (c *Conf) GetCwd() string {
return c.cwd
}
diff --git a/src/db/db.go b/src/db/db.go
index 62218b2..4daf561 100644
--- a/src/db/db.go
+++ b/src/db/db.go
@@ -1,15 +1,26 @@
package db
import (
- "database/sql"
+ "context"
+ "log"
+
+ "github.com/jackc/pgx/v5/pgxpool"
"gitlab.com/alexkavon/newsstand/src/conf"
)
-type Db struct {
- Db *sql.DB
-}
+func NewDb(config *conf.Conf) *pgxpool.Pool {
+ pool, err := pgxpool.New(context.Background(), config.Db.Url)
+ if err != nil {
+ log.Fatal(err)
+ }
+ defer pool.Close()
-func NewDb(config *conf.Conf) *sql.DB {
- return &sql.DB{}
+ var testquery string
+ err = pool.QueryRow(context.Background(), "select 'Hello, PostgreSQL!'").Scan(&testquery)
+ if err != nil {
+ log.Fatal(err)
+ }
+ log.Println("Database connection pool created.", testquery)
+ return pool
}
diff --git a/src/server/server.go b/src/server/server.go
index 9ba6104..aa9f7d2 100644
--- a/src/server/server.go
+++ b/src/server/server.go
@@ -1,21 +1,21 @@
package server
import (
- "database/sql"
"net/http"
"github.com/go-chi/chi/v5"
+ "github.com/jackc/pgx/v5/pgxpool"
"gitlab.com/alexkavon/newsstand/src/conf"
)
type Server struct {
Router *chi.Mux
- Db *sql.DB
+ Db *pgxpool.Pool
Config *conf.Conf
Ui Ui
}
-func NewServer(config *conf.Conf, db *sql.DB) *Server {
+func NewServer(config *conf.Conf, db *pgxpool.Pool) *Server {
return &Server{
Router: NewRouter(config),
Db: db,