commit be20893f819a5320fcf7aae0fd66f48c2e1651ed from: Oliver Lowe date: Mon Apr 25 01:05:52 2022 UTC mailmux: deduplicate userdb table init commit - b25c20b4f35df866bfc43d44cdc78b9876b1b028 commit + be20893f819a5320fcf7aae0fd66f48c2e1651ed blob - 9e4ecb8a5e91c19c8b0b6edbcf9571bd70c99122 blob + 5df1f44e95df5012ac0d24147c449c696aa34808 --- userdb.go +++ userdb.go @@ -38,26 +38,24 @@ func CreateUserDB(name, ticketDir string) (*UserDB, er if err != nil { return nil, fmt.Errorf("create user db: %w", err) } - return db, db.initialise() + return db, initialiseUserDB(db.DB) } // OpenUserDB opens the named user database file and ticket directory. +// If the database does not exist, it is created and its tables are +// initialised ready for use. func OpenUserDB(name, dir string) (*UserDB, error) { db, err := sql.Open("sqlite3", name) if err != nil { return nil, err } - stmt := `CREATE TABLE IF NOT EXISTS users ( - username TEXT PRIMARY KEY, - password BLOB NOT NULL -);` - if _, err := db.Exec(stmt); err != nil { + if err := initialiseUserDB(db); err != nil { return nil, err } return &UserDB{db, dir}, db.Ping() } -func (db *UserDB) initialise() error { +func initialiseUserDB(db *sql.DB) error { stmt := `CREATE TABLE IF NOT EXISTS users ( username TEXT PRIMARY KEY, password BLOB NOT NULL