added reserved account name handling

alpha
alex 2023-03-04 23:13:56 +01:00
parent cedfd94aa4
commit 9bef619b5a
1 changed files with 39 additions and 3 deletions

View File

@ -13,7 +13,7 @@ func TableCleaner() {
desiredTime := time.Date(currentTime.Year(), currentTime.Month(), currentTime.Day()+1, 3, 0, 0, 0, currentTime.Location()) desiredTime := time.Date(currentTime.Year(), currentTime.Month(), currentTime.Day()+1, 3, 0, 0, 0, currentTime.Location())
duration := desiredTime.Sub(currentTime) duration := desiredTime.Sub(currentTime)
time.Sleep(duration) // handling expired userSignUpProcesses
var userSignUpProcesses []dbstructs.UserSignUpProcess var userSignUpProcesses []dbstructs.UserSignUpProcess
@ -22,10 +22,10 @@ func TableCleaner() {
return return
} }
var expiredUserSignUpProcesses []dbstructs.UserSignUpProcess
currentTimeUnix := time.Now().Unix() currentTimeUnix := time.Now().Unix()
var expiredUserSignUpProcesses []dbstructs.UserSignUpProcess
for _, us := range userSignUpProcesses { for _, us := range userSignUpProcesses {
if us.ExpiresAt < currentTimeUnix { if us.ExpiresAt < currentTimeUnix {
expiredUserSignUpProcesses = append(expiredUserSignUpProcesses, us) expiredUserSignUpProcesses = append(expiredUserSignUpProcesses, us)
@ -47,6 +47,42 @@ func TableCleaner() {
} }
} }
// handling reserved account names
var users []dbstructs.User
if err := Session.Query(gocnjhelper.DbMUsers.SelectAll()).SelectRelease(&users); err != nil {
gocnjhelper.LogErrorf("Failed to select users, err: %s", err.Error())
return
}
var updatingUsers []dbstructs.User
accountNameReservingTime := currentTime.Add(-7 * 24 * time.Hour).Unix()
for _, u := range users {
if u.LastAccountNameLc != "" && u.AccountNameUpdatedAt < accountNameReservingTime {
updatingUsers = append(updatingUsers, u)
}
}
if len(updatingUsers) > 0 {
batch := Session.NewBatch(gocql.UnloggedBatch)
q := "UPDATE " + Cluster.Keyspace + "." + gocnjhelper.DbMUsers.Name() + " SET last_account_name_lc='' WHERE id = ?"
for _, us := range updatingUsers {
batch.Query(q, us.Id)
}
if err := Session.ExecuteBatch(batch); err != nil {
gocnjhelper.LogErrorf("Failed to execute batch, err:", err.Error())
return
}
}
time.Sleep(duration)
// restart timer // restart timer
go TableCleaner() go TableCleaner()
} }