Add ErrorText to syncer.

This commit is contained in:
Gucheng Wang
2022-01-17 21:16:32 +08:00
parent d9bcce9485
commit 9fd175eefd
11 changed files with 87 additions and 20 deletions

View File

@ -25,42 +25,45 @@ import (
type OriginalUser = User
func (syncer *Syncer) getOriginalUsers() []*OriginalUser {
func (syncer *Syncer) getOriginalUsers() ([]*OriginalUser, error) {
sql := fmt.Sprintf("select * from %s", syncer.getTable())
results, err := syncer.Adapter.Engine.QueryString(sql)
if err != nil {
panic(err)
return nil, err
}
return syncer.getOriginalUsersFromMap(results)
return syncer.getOriginalUsersFromMap(results), nil
}
func (syncer *Syncer) getOriginalUserMap() ([]*OriginalUser, map[string]*OriginalUser) {
users := syncer.getOriginalUsers()
func (syncer *Syncer) getOriginalUserMap() ([]*OriginalUser, map[string]*OriginalUser, error) {
users, err := syncer.getOriginalUsers()
if err != nil {
return users, nil, err
}
m := map[string]*OriginalUser{}
for _, user := range users {
m[user.Id] = user
}
return users, m
return users, m, nil
}
func (syncer *Syncer) addUser(user *OriginalUser) bool {
func (syncer *Syncer) addUser(user *OriginalUser) (bool, error) {
m := syncer.getMapFromOriginalUser(user)
keyString, valueString := syncer.getSqlKeyValueStringFromMap(m)
sql := fmt.Sprintf("insert into %s (%s) values (%s)", syncer.getTable(), keyString, valueString)
res, err := syncer.Adapter.Engine.Exec(sql)
if err != nil {
panic(err)
return false, err
}
affected, err := res.RowsAffected()
if err != nil {
panic(err)
return false, err
}
return affected != 0
return affected != 0, nil
}
/*func (syncer *Syncer) getOriginalColumns() []string {
@ -84,7 +87,7 @@ func (syncer *Syncer) getCasdoorColumns() []string {
return res
}
func (syncer *Syncer) updateUser(user *OriginalUser) bool {
func (syncer *Syncer) updateUser(user *OriginalUser) (bool, error) {
m := syncer.getMapFromOriginalUser(user)
pkValue := m[syncer.TablePrimaryKey]
delete(m, syncer.TablePrimaryKey)
@ -93,22 +96,22 @@ func (syncer *Syncer) updateUser(user *OriginalUser) bool {
sql := fmt.Sprintf("update %s set %s where %s = %s", syncer.getTable(), setString, syncer.TablePrimaryKey, pkValue)
res, err := syncer.Adapter.Engine.Exec(sql)
if err != nil {
panic(err)
return false, err
}
affected, err := res.RowsAffected()
if err != nil {
panic(err)
return false, err
}
return affected != 0
return affected != 0, nil
}
func (syncer *Syncer) updateUserForOriginalFields(user *User) bool {
func (syncer *Syncer) updateUserForOriginalFields(user *User) (bool, error) {
owner, name := util.GetOwnerAndNameFromId(user.GetId())
oldUser := getUserById(owner, name)
if oldUser == nil {
return false
return false, nil
}
if user.Avatar != oldUser.Avatar && user.Avatar != "" {
@ -119,10 +122,10 @@ func (syncer *Syncer) updateUserForOriginalFields(user *User) bool {
columns = append(columns, "affiliation", "hash", "pre_hash")
affected, err := adapter.Engine.ID(core.PK{oldUser.Owner, oldUser.Name}).Cols(columns...).Update(user)
if err != nil {
panic(err)
return false, err
}
return affected != 0
return affected != 0, nil
}
func (syncer *Syncer) calculateHash(user *OriginalUser) string {