Restructure a bit

This commit is contained in:
Miroslav Vasilev 2025-03-19 21:58:21 +02:00
parent 888a87ab86
commit adbb1216af
Signed by: mvv
GPG key ID: 92BACFBE98721A3F
4 changed files with 72 additions and 3 deletions

View file

@ -0,0 +1,9 @@
package pilgrim_common
type PilgrimDbAdapter interface {
Up()
Down()
ValidateChecksums()
ValidateLatest()
ValidateMigrationOrder()
}

View file

@ -0,0 +1,52 @@
package pilgrim_core
import (
"mvvasilev.dev/pilgrim/internal/pilgrim_common"
"mvvasilev.dev/pilgrim/internal/pilgrim_conf"
)
type Pilgrim interface {
Context() pilgrim_conf.PilgrimConfigurationRetriever
Execute()
}
type pilgrimImpl struct {
ctx pilgrim_conf.PilgrimConfigurationRetriever
dbAdapter pilgrim_common.PilgrimDbAdapter
}
func NewPilgrim(ctx pilgrim_conf.PilgrimConfigurationRetriever) *pilgrimImpl {
p := new(pilgrimImpl)
p.ctx = ctx
p.dbAdapter = createAdapter(ctx.UrlParts().Driver)
return p
}
func createAdapter(driver pilgrim_conf.DbDriver) pilgrim_common.PilgrimDbAdapter {
switch driver {
case pilgrim_conf.DbDriver_MSSQL:
panic("Not implemented")
case pilgrim_conf.DbDriver_MariaDB:
panic("Not implemented")
case pilgrim_conf.DbDriver_MySQL:
panic("Not implemented")
case pilgrim_conf.DbDriver_Oracle:
panic("Not implemented")
case pilgrim_conf.DbDriver_Postgres:
panic("Not implemented")
case pilgrim_conf.DbDriver_SQLite:
panic("Not implemented")
default:
panic("Not implemented")
}
}
func (p *pilgrimImpl) Context() pilgrim_conf.PilgrimConfigurationRetriever {
return p.ctx
}
func (p *pilgrimImpl) Execute() {
// TODO
}

View file

@ -0,0 +1,7 @@
package pilgrim_db
import "mvvasilev.dev/pilgrim/internal/pilgrim_conf"
type postgresDbAdapter struct {
ctx pilgrim_conf.PilgrimConfigurationRetriever
}

View file

@ -1,9 +1,8 @@
package main
import (
"log"
"mvvasilev.dev/pilgrim/internal/pilgrim_conf"
"mvvasilev.dev/pilgrim/internal/pilgrim_core"
)
func main() {
@ -12,5 +11,7 @@ func main() {
pilgrim_conf.NewEnvVarContext(),
)
log.Println(pilgrimContext)
pilgrim := pilgrim_core.NewPilgrim(pilgrimContext)
pilgrim.Execute()
}