52 lines
1.2 KiB
Go
52 lines
1.2 KiB
Go
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
|
|
}
|