From e12ebedf3c3cbed4500809500cd08d85e4356380 Mon Sep 17 00:00:00 2001 From: Prad N Date: Fri, 4 Apr 2025 00:41:33 -0400 Subject: [PATCH] refactor: consolidate database connection logic and configuration --- .gitignore | 3 --- app/app.go | 3 +-- app/options.go | 5 ++--- docker/Dockerfile | 1 + internal/database/database.go | 15 ++++--------- pkg/config/runtime.go | 21 +++++++++++++++++++ .../ipfs_middleware.go => ipfs/middleware.go} | 0 .../sonr_middleware.go => sonr/middleware.go} | 0 .../ucan_middleware.go => ucan/middleware.go} | 0 9 files changed, 29 insertions(+), 19 deletions(-) create mode 100644 pkg/config/runtime.go rename pkg/{middleware/ipfs_middleware.go => ipfs/middleware.go} (100%) rename pkg/{middleware/sonr_middleware.go => sonr/middleware.go} (100%) rename pkg/{middleware/ucan_middleware.go => ucan/middleware.go} (100%) diff --git a/.gitignore b/.gitignore index 4df49c6..e3e98a6 100644 --- a/.gitignore +++ b/.gitignore @@ -90,7 +90,6 @@ bin/ .ignore .opencommitignore heighliner* -sonr deploy/**/data x/.DS_Store .aider* @@ -101,7 +100,6 @@ pkg/nebula/node_modules configs/logs.json mprocs.yaml -sonr.wiki !devbox.lock !buf.lock @@ -110,7 +108,6 @@ sonr.wiki mprocs.yaml mprocs.log tools-stamp -sonr.log deploy/conf interchaintest-downloader diff --git a/app/app.go b/app/app.go index d7edb17..ba60572 100644 --- a/app/app.go +++ b/app/app.go @@ -5,7 +5,6 @@ package app import ( "github.com/labstack/echo/v4" - "github.com/onsonr/motr/internal/database" "github.com/onsonr/motr/internal/serve" "github.com/onsonr/motr/pkg/config" "github.com/onsonr/motr/x/identity" @@ -15,7 +14,7 @@ import ( type App struct { Config *config.MotrConfig - Database *database.Connection + Database *config.DBConnection e *echo.Echo } diff --git a/app/options.go b/app/options.go index e7681dc..399505c 100644 --- a/app/options.go +++ b/app/options.go @@ -6,12 +6,11 @@ package app import ( "github.com/labstack/echo/v4" echomiddleware "github.com/labstack/echo/v4/middleware" - "github.com/onsonr/motr/internal/database" "github.com/onsonr/motr/pkg/config" ) type Options struct { - conn *database.Connection + conn *config.DBConnection cfg *config.MotrConfig mdws []echo.MiddlewareFunc } @@ -43,7 +42,7 @@ func WithConfig(cfg *config.MotrConfig) func(*Options) { } } -func WithDatabase(conn *database.Connection) func(*Options) { +func WithDatabase(conn *config.DBConnection) func(*Options) { return func(o *Options) { o.conn = conn } diff --git a/docker/Dockerfile b/docker/Dockerfile index e69de29..db60101 100644 --- a/docker/Dockerfile +++ b/docker/Dockerfile @@ -0,0 +1 @@ +FROM golang:1.18-alpine AS builder diff --git a/internal/database/database.go b/internal/database/database.go index 1e8d992..bd7bb2b 100644 --- a/internal/database/database.go +++ b/internal/database/database.go @@ -8,20 +8,14 @@ import ( _ "github.com/ncruces/go-sqlite3/driver" _ "github.com/ncruces/go-sqlite3/embed" + "github.com/onsonr/motr/pkg/config" "github.com/onsonr/motr/x/identity" "github.com/onsonr/motr/x/portfolio" "github.com/onsonr/motr/x/user" ) -type Connection struct { - db *sql.DB - Identity identity.Model - Portfolio portfolio.Model - User user.Model -} - // New returns a new SQLite database instance -func New() (*Connection, error) { +func New() (*config.DBConnection, error) { db, err := sql.Open("sqlite3", ":memory:") if err != nil { return nil, err @@ -40,9 +34,8 @@ func New() (*Connection, error) { if err != nil { return nil, err } - - return &Connection{ - db: db, + return &config.DBConnection{ + DB: db, Identity: idTable, Portfolio: portTable, User: userTable, diff --git a/pkg/config/runtime.go b/pkg/config/runtime.go new file mode 100644 index 0000000..e473c79 --- /dev/null +++ b/pkg/config/runtime.go @@ -0,0 +1,21 @@ +package config + +import ( + "database/sql" + + "github.com/onsonr/motr/x/identity" + "github.com/onsonr/motr/x/portfolio" + "github.com/onsonr/motr/x/user" +) + +type DBConnection struct { + DB *sql.DB + Identity identity.Model + Portfolio portfolio.Model + User user.Model +} + +type RuntimeContext interface { + GetMotrConfig() *MotrConfig + GetDatabaseConnection() *DBConnection +} diff --git a/pkg/middleware/ipfs_middleware.go b/pkg/ipfs/middleware.go similarity index 100% rename from pkg/middleware/ipfs_middleware.go rename to pkg/ipfs/middleware.go diff --git a/pkg/middleware/sonr_middleware.go b/pkg/sonr/middleware.go similarity index 100% rename from pkg/middleware/sonr_middleware.go rename to pkg/sonr/middleware.go diff --git a/pkg/middleware/ucan_middleware.go b/pkg/ucan/middleware.go similarity index 100% rename from pkg/middleware/ucan_middleware.go rename to pkg/ucan/middleware.go