package db import ( "errors" "fmt" "th7/data/config" "th7/ports" "time" ) func NewAdapter(corePort ports.CorePort, cfg config.Config) (ports.DBPort, error) { var duration time.Duration var no_logging bool var adapter ports.DBPort var err error no_logging = cfg.Board.NoLogging duration = time.Duration(cfg.Board.Logfreq) * time.Second if _, ok := cfg.DB["type"]; !ok || no_logging { adapter, _ = NewDummyAdapter() // it doesn't fail go startLoggingProcess(adapter, corePort, duration) return adapter, nil } db := fmt.Sprint(cfg.DB["type"]) switch db { case "sqlite3": adapter, err = NewSQLite3Adapter(cfg.DB) default: return &DummyAdapter{}, errors.New("unknown db type") } if err != nil { return &DummyAdapter{}, err } go startLoggingProcess(adapter, corePort, duration) return adapter, nil }