|
- package db2
-
- import (
- cdssdk "gitlink.org.cn/cloudream/common/sdks/storage"
- "gorm.io/gorm"
- )
-
- type UserDB struct {
- *DB
- }
-
- func (db *DB) User() *UserDB {
- return &UserDB{DB: db}
- }
-
- func (db *UserDB) GetByID(ctx SQLContext, userID cdssdk.UserID) (cdssdk.User, error) {
- var ret cdssdk.User
- err := ctx.Table("User").Where("UserID = ?", userID).First(&ret).Error
- return ret, err
- }
-
- func (db *UserDB) GetByName(ctx SQLContext, name string) (cdssdk.User, error) {
- var ret cdssdk.User
- err := ctx.Table("User").Where("Name = ?", name).First(&ret).Error
- return ret, err
- }
-
- func (db *UserDB) Create(ctx SQLContext, name string) (cdssdk.User, error) {
- _, err := db.GetByName(ctx, name)
- if err == nil {
- return cdssdk.User{}, gorm.ErrDuplicatedKey
- }
- if err != gorm.ErrRecordNotFound {
- return cdssdk.User{}, err
- }
-
- user := cdssdk.User{Name: name}
- err = ctx.Table("User").Create(&user).Error
- return user, err
- }
-
- func (*UserDB) Delete(ctx SQLContext, userID cdssdk.UserID) error {
- return ctx.Table("User").Delete(&cdssdk.User{UserID: userID}).Error
- }
|