package mysql import ( "errors" "gorm.io/gorm" "myschools.me/heritage/heritage-api/model" ) func UserByUserName(userName *string) (*model.User, bool, error) { db, err := newDB() if err != nil { return nil, false, err } var u model.User if err := db.Where("user_name = ?", *userName).First(&u).Error; err != nil { if errors.Is(err, gorm.ErrRecordNotFound) { return nil, false, nil } return nil, false, err } return &u, true, nil } func UserByID(userID *string) (*model.User, bool, error) { db, err := newDB() if err != nil { return nil, false, err } var u model.User if err := db.Where("id = ?", *userID).First(&u).Error; err != nil { if errors.Is(err, gorm.ErrRecordNotFound) { return nil, false, nil } return nil, false, err } return &u, true, nil } func UpdateUserPasswordHash(userID, passwordHash *string) (bool, error) { db, err := newDB() if err != nil { return false, err } tx := db.Model(&model.User{}).Where("id = ?", *userID).Update("password_hash", *passwordHash) if tx.Error != nil { return false, tx.Error } return tx.RowsAffected > 0, nil } func UserRoleIDByUserID(userID *string) (*string, bool, error) { db, err := newDB() if err != nil { return nil, false, err } var u model.User if err := db.Select("id", "role_id").Where("id = ?", *userID).First(&u).Error; err != nil { if errors.Is(err, gorm.ErrRecordNotFound) { return nil, false, nil } return nil, false, err } return &u.RoleID, true, nil } func UserCount() (*int64, error) { db, err := newDB() if err != nil { return nil, err } var count int64 if err := db.Model(&model.User{}).Count(&count).Error; err != nil { return nil, err } return &count, nil } func UserCreate(obj *model.User) (*model.User, error) { db, err := newDB() if err != nil { return nil, err } if err := db.Create(obj).Error; err != nil { return nil, err } return obj, nil }