diff options
Diffstat (limited to '')
-rw-r--r-- | db.go | 35 |
1 files changed, 35 insertions, 0 deletions
@@ -0,0 +1,35 @@ +package main + +import ( + "fmt" + + "gorm.io/driver/sqlite" + "gorm.io/gorm" +) + +type user_t struct { + Subject string `gorm:"primaryKey"` + Name string + Email string + Sessions []session_t `gorm:"foreignKey:UserSubject"` +} + +type session_t struct { + Cookie string `gorm:"primaryKey"` + UserSubject string + User user_t `gorm:"foreignKey:UserSubject"` +} + +func setup_database() error { + var err error + switch config.Db.Type { + case "sqlite": + db, err = gorm.Open(sqlite.Open(config.Db.Conn), &gorm.Config{}) + if err != nil { + return err + } + default: + return (fmt.Errorf("Database type \"%s\" unsupported", config.Db.Type)) + } + return db.AutoMigrate(&user_t{}, &session_t{}) +} |