update: device delete current user
This commit is contained in:
parent
60d584a052
commit
3635d3e224
@ -42,22 +42,37 @@ func (l *DeleteCurrentUserAccountLogic) DeleteCurrentUserAccount() (err error) {
|
|||||||
}
|
}
|
||||||
|
|
||||||
err = l.svcCtx.UserModel.Transaction(l.ctx, func(tx *gorm.DB) error {
|
err = l.svcCtx.UserModel.Transaction(l.ctx, func(tx *gorm.DB) error {
|
||||||
|
//delete user devices
|
||||||
if len(userInfo.UserDevices) > 0 {
|
if len(userInfo.UserDevices) > 0 {
|
||||||
if err = tx.Model(&user.Device{}).Delete("user_id = ?", userInfo.Id).Error; err != nil {
|
for _, device := range userInfo.UserDevices {
|
||||||
|
if err = l.svcCtx.UserModel.DeleteDevice(l.ctx, device.Id, tx); err != nil {
|
||||||
return err
|
return err
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
// delete user auth methods
|
||||||
if len(userInfo.AuthMethods) > 0 {
|
if len(userInfo.AuthMethods) > 0 {
|
||||||
if err = tx.Model(&user.AuthMethods{}).Delete("user_id = ?", userInfo.Id).Error; err != nil {
|
for _, authMethod := range userInfo.AuthMethods {
|
||||||
|
if err = l.svcCtx.UserModel.DeleteUserAuthMethods(l.ctx, userInfo.Id, authMethod.AuthType); err != nil {
|
||||||
return err
|
return err
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
if err = tx.Model(&user.Subscribe{}).Delete("user_id = ?", userInfo.Id).Error; err != nil {
|
|
||||||
return err
|
|
||||||
}
|
}
|
||||||
|
|
||||||
return tx.Model(userInfo).Delete("id = ?", userInfo.Id).Error
|
// delete user subscribes
|
||||||
|
var subscribes []*user.SubscribeDetails
|
||||||
|
subscribes, err = l.svcCtx.UserModel.QueryUserSubscribe(l.ctx, userInfo.Id)
|
||||||
|
if err != nil {
|
||||||
|
return err
|
||||||
|
}
|
||||||
|
for _, subscribe := range subscribes {
|
||||||
|
if err = l.svcCtx.UserModel.DeleteSubscribe(l.ctx, subscribe.Token, tx); err != nil {
|
||||||
|
return err
|
||||||
|
}
|
||||||
|
}
|
||||||
|
// delete user account
|
||||||
|
return l.svcCtx.UserModel.BatchDeleteUser(l.ctx, []int64{userInfo.Id}, tx)
|
||||||
})
|
})
|
||||||
if err != nil {
|
if err != nil {
|
||||||
return errors.Wrapf(xerr.NewErrCode(xerr.DatabaseDeletedError), "find user auth methods failed: %v", err.Error())
|
return errors.Wrapf(xerr.NewErrCode(xerr.DatabaseDeletedError), "find user auth methods failed: %v", err.Error())
|
||||||
|
|||||||
Loading…
x
Reference in New Issue
Block a user