1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859 |
- package main
- import (
- "path"
- "gorm.io/driver/sqlite"
- "gorm.io/gorm"
- )
- // Manages the User Database
- //
- // Default location is 'data/users.db'
- type UserManager struct {
- db *gorm.DB
- }
- func NewUserManager() (*UserManager, error) {
- var (
- um *UserManager = &UserManager{}
- err error
- )
- um.db, err = gorm.Open(sqlite.Open(path.Join("data", "users.db")), &gorm.Config{})
- if err != nil {
- return nil, err
- }
- err = um.db.AutoMigrate(&User{})
- if err != nil {
- return nil, err
- }
- return um, err
- }
- func (um *UserManager) Close() error {
- sqldb, err := um.db.DB()
- if err != nil {
- return err
- }
- return sqldb.Close()
- }
- func (um *UserManager) FindByHandle(handle string) (*User, error) {
- var u *User
- tx := um.db.First(u, "handle = ?", handle)
- return u, tx.Error
- }
- func (um *UserManager) SaveUser(u *User) error {
- tx := um.db.Save(u)
- return tx.Error
- }
- func (um *UserManager) DeleteUser(u *User) error {
- tx := um.db.Delete(u)
- if tx.Error != nil {
- return tx.Error
- }
- u = nil
- return nil
- }
|