moved postgres init to integrations
This commit is contained in:
parent
717a923dff
commit
99b75a731b
71
src/app.go
71
src/app.go
@ -8,12 +8,12 @@ import (
|
|||||||
"backend/src/core/repos"
|
"backend/src/core/repos"
|
||||||
"backend/src/core/services"
|
"backend/src/core/services"
|
||||||
"backend/src/core/utils"
|
"backend/src/core/utils"
|
||||||
|
"backend/src/integrations"
|
||||||
"backend/src/logger"
|
"backend/src/logger"
|
||||||
"backend/src/server"
|
"backend/src/server"
|
||||||
"context"
|
"context"
|
||||||
"crypto/rsa"
|
"crypto/rsa"
|
||||||
"crypto/x509"
|
"crypto/x509"
|
||||||
"database/sql"
|
|
||||||
"encoding/pem"
|
"encoding/pem"
|
||||||
"log"
|
"log"
|
||||||
"os"
|
"os"
|
||||||
@ -21,9 +21,6 @@ import (
|
|||||||
"runtime/pprof"
|
"runtime/pprof"
|
||||||
"syscall"
|
"syscall"
|
||||||
"time"
|
"time"
|
||||||
|
|
||||||
"github.com/jackc/pgx"
|
|
||||||
"github.com/jackc/pgx/stdlib"
|
|
||||||
)
|
)
|
||||||
|
|
||||||
type App struct{}
|
type App struct{}
|
||||||
@ -42,31 +39,6 @@ func (a *App) Run(p RunParams) {
|
|||||||
debugMode = false // TODO: replace with flag from conf
|
debugMode = false // TODO: replace with flag from conf
|
||||||
)
|
)
|
||||||
|
|
||||||
//-----------------------------------------
|
|
||||||
|
|
||||||
args, err := args_parser.Parse(osArgs)
|
|
||||||
if err != nil {
|
|
||||||
log.Fatalf("failed to parse os args: %v\n", err)
|
|
||||||
}
|
|
||||||
|
|
||||||
logger, err := logger.New(logger.NewLoggerOpts{
|
|
||||||
Debug: debugMode,
|
|
||||||
OutputFile: args.GetLogPath(),
|
|
||||||
})
|
|
||||||
if err != nil {
|
|
||||||
log.Fatalf("failed to create logger object: %v\n", err)
|
|
||||||
}
|
|
||||||
|
|
||||||
conf, err := config.NewFromFile(args.GetConfigPath())
|
|
||||||
if err != nil {
|
|
||||||
logger.Fatal().Err(err).Msg("failed to parse config file")
|
|
||||||
}
|
|
||||||
|
|
||||||
//-----------------------------------------
|
|
||||||
|
|
||||||
logger.Log().Msg("initializing service...")
|
|
||||||
defer logger.Log().Msg("service stopped")
|
|
||||||
|
|
||||||
signals := []os.Signal{
|
signals := []os.Signal{
|
||||||
os.Kill,
|
os.Kill,
|
||||||
os.Interrupt,
|
os.Interrupt,
|
||||||
@ -82,18 +54,37 @@ func (a *App) Run(p RunParams) {
|
|||||||
ctx, stop := signal.NotifyContext(ctx, signals...)
|
ctx, stop := signal.NotifyContext(ctx, signals...)
|
||||||
defer stop()
|
defer stop()
|
||||||
|
|
||||||
var sqlDb *sql.DB // TODO: move to integrations package
|
//-----------------------------------------
|
||||||
{
|
|
||||||
pgConnStr := conf.GetPostgresUrl()
|
|
||||||
connConf, err := pgx.ParseConnectionString(pgConnStr)
|
|
||||||
if err != nil {
|
|
||||||
logger.Fatal().Err(err).Msg("failed parsing postgres connection string")
|
|
||||||
}
|
|
||||||
|
|
||||||
sqlDb = stdlib.OpenDB(connConf)
|
args, err := args_parser.Parse(osArgs)
|
||||||
if err := sqlDb.Ping(); err != nil {
|
if err != nil {
|
||||||
logger.Fatal().Err(err).Msg("failed pinging postgres db")
|
log.Fatalf("failed to parse os args: %v\n", err)
|
||||||
}
|
}
|
||||||
|
|
||||||
|
logger, err := logger.New(
|
||||||
|
ctx,
|
||||||
|
logger.NewLoggerOpts{
|
||||||
|
Debug: debugMode,
|
||||||
|
OutputFile: args.GetLogPath(),
|
||||||
|
},
|
||||||
|
)
|
||||||
|
if err != nil {
|
||||||
|
log.Fatalf("failed to create logger object: %v\n", err)
|
||||||
|
}
|
||||||
|
|
||||||
|
conf, err := config.NewFromFile(args.GetConfigPath())
|
||||||
|
if err != nil {
|
||||||
|
logger.Fatal().Err(err).Msg("failed to parse config file")
|
||||||
|
}
|
||||||
|
|
||||||
|
//-----------------------------------------
|
||||||
|
|
||||||
|
logger.Log().Msg("initializing service...")
|
||||||
|
defer logger.Log().Msg("service stopped")
|
||||||
|
|
||||||
|
sqlDb, err := integrations.NewPostgresConn(ctx, conf.GetPostgresUrl())
|
||||||
|
if err != nil {
|
||||||
|
logger.Fatal().Err(err).Msg("failed connecting to postgres")
|
||||||
}
|
}
|
||||||
|
|
||||||
var key *rsa.PrivateKey
|
var key *rsa.PrivateKey
|
||||||
|
|||||||
25
src/integrations/postgresql.go
Normal file
25
src/integrations/postgresql.go
Normal file
@ -0,0 +1,25 @@
|
|||||||
|
package integrations
|
||||||
|
|
||||||
|
import (
|
||||||
|
"context"
|
||||||
|
"database/sql"
|
||||||
|
"fmt"
|
||||||
|
|
||||||
|
"github.com/jackc/pgx"
|
||||||
|
"github.com/jackc/pgx/stdlib"
|
||||||
|
)
|
||||||
|
|
||||||
|
// TODO: wrapper, connection pool
|
||||||
|
func NewPostgresConn(ctx context.Context, connUrl string) (*sql.DB, error) {
|
||||||
|
connConf, err := pgx.ParseConnectionString(connUrl)
|
||||||
|
if err != nil {
|
||||||
|
return nil, fmt.Errorf("failed parsing postgres connection string: %v", err)
|
||||||
|
}
|
||||||
|
|
||||||
|
sqlDb := stdlib.OpenDB(connConf)
|
||||||
|
if err := sqlDb.PingContext(ctx); err != nil {
|
||||||
|
return nil, fmt.Errorf("failed pinging postgres db: %v", err)
|
||||||
|
}
|
||||||
|
|
||||||
|
return sqlDb, nil
|
||||||
|
}
|
||||||
Loading…
x
Reference in New Issue
Block a user