sharded-gotify/database/user.go

57 lines
1.3 KiB
Go

package database
import (
"github.com/gotify/server/model"
)
// GetUserByName returns the user by the given name or nil.
func (d *GormDatabase) GetUserByName(name string) *model.User {
user := new(model.User)
d.DB.Where("name = ?", name).Find(user)
if user.Name == name {
return user
}
return nil
}
// GetUserByID returns the user by the given id or nil.
func (d *GormDatabase) GetUserByID(id uint) *model.User {
user := new(model.User)
d.DB.Find(user, id)
if user.ID == id {
return user
}
return nil
}
// GetUsers returns all users.
func (d *GormDatabase) GetUsers() []*model.User {
var users []*model.User
d.DB.Find(&users)
return users
}
// DeleteUserByID deletes a user by its id.
func (d *GormDatabase) DeleteUserByID(id uint) error {
for _, app := range d.GetApplicationsByUser(id) {
d.DeleteApplicationByID(app.ID)
}
for _, client := range d.GetClientsByUser(id) {
d.DeleteClientByID(client.ID)
}
for _, conf := range d.GetPluginConfByUser(id) {
d.DeletePluginConfByID(conf.ID)
}
return d.DB.Where("id = ?", id).Delete(&model.User{}).Error
}
// UpdateUser updates a user.
func (d *GormDatabase) UpdateUser(user *model.User) {
d.DB.Save(user)
}
// CreateUser creates a user.
func (d *GormDatabase) CreateUser(user *model.User) error {
return d.DB.Create(user).Error
}