Add methods to db user
This commit is contained in:
parent
d691b5193e
commit
59b2bc0deb
2 changed files with 140 additions and 36 deletions
|
@ -1457,17 +1457,20 @@ type IUserDo interface {
|
|||
schema.Tabler
|
||||
|
||||
GetByUsername(username string) (result *models.User, err error)
|
||||
GetPagedTruePublic(pageNr uint) (result []models.User, err error)
|
||||
GetPagedAllDeleted(pageNr uint) (result []models.User, err error)
|
||||
GetPagedAllNonDeleted(pageNr uint) (result []models.User, err error)
|
||||
}
|
||||
|
||||
// Get a user by a username
|
||||
//
|
||||
// SELECT * FROM @@table WHERE username = @username LIMIT 1
|
||||
// SELECT * FROM @@table WHERE username = @username AND deleted_at IS NULL LIMIT 1
|
||||
func (u userDo) GetByUsername(username string) (result *models.User, err error) {
|
||||
var params []interface{}
|
||||
|
||||
var generateSQL strings.Builder
|
||||
params = append(params, username)
|
||||
generateSQL.WriteString("SELECT * FROM users WHERE username = ? LIMIT 1 ")
|
||||
generateSQL.WriteString("SELECT * FROM users WHERE username = ? AND deleted_at IS NULL LIMIT 1 ")
|
||||
|
||||
var executeSQL *gorm.DB
|
||||
executeSQL = u.UnderlyingDB().Raw(generateSQL.String(), params...).Take(&result) // ignore_security_alert
|
||||
|
@ -1476,6 +1479,79 @@ func (u userDo) GetByUsername(username string) (result *models.User, err error)
|
|||
return
|
||||
}
|
||||
|
||||
// Get all true public accounts (verified & no restricted follow & indexable)
|
||||
// in a paged manner, sorted by date saved
|
||||
//
|
||||
// SELECT * FROM @@table WHERE
|
||||
//
|
||||
// deleted_at IS NULL AND
|
||||
// verified = true AND
|
||||
// restricted_follow = false AND
|
||||
// indexable = true
|
||||
//
|
||||
// ORDER BY created_at ASC
|
||||
// LIMIT 50
|
||||
// OFFSET @pageNr * 50
|
||||
func (u userDo) GetPagedTruePublic(pageNr uint) (result []models.User, err error) {
|
||||
var params []interface{}
|
||||
|
||||
var generateSQL strings.Builder
|
||||
params = append(params, pageNr)
|
||||
generateSQL.WriteString("SELECT * FROM users WHERE deleted_at IS NULL AND verified = true AND restricted_follow = false AND indexable = true ORDER BY created_at ASC LIMIT 50 OFFSET ? * 50 ")
|
||||
|
||||
var executeSQL *gorm.DB
|
||||
executeSQL = u.UnderlyingDB().Raw(generateSQL.String(), params...).Find(&result) // ignore_security_alert
|
||||
err = executeSQL.Error
|
||||
|
||||
return
|
||||
}
|
||||
|
||||
// Get all deleted accounts in a paged manner, sorted by date saved
|
||||
//
|
||||
// SELECT * FROM @@table WHERE
|
||||
//
|
||||
// deleted_at IS NOT NULL AND
|
||||
//
|
||||
// ORDER BY created_at ASC
|
||||
// LIMIT 50
|
||||
// OFFSET @pageNr * 50
|
||||
func (u userDo) GetPagedAllDeleted(pageNr uint) (result []models.User, err error) {
|
||||
var params []interface{}
|
||||
|
||||
var generateSQL strings.Builder
|
||||
params = append(params, pageNr)
|
||||
generateSQL.WriteString("SELECT * FROM users WHERE deleted_at IS NOT NULL AND ORDER BY created_at ASC LIMIT 50 OFFSET ? * 50 ")
|
||||
|
||||
var executeSQL *gorm.DB
|
||||
executeSQL = u.UnderlyingDB().Raw(generateSQL.String(), params...).Find(&result) // ignore_security_alert
|
||||
err = executeSQL.Error
|
||||
|
||||
return
|
||||
}
|
||||
|
||||
// Get all accounts that aren't deleted in a paged manner, sorted by date saved
|
||||
//
|
||||
// SELECT * FROM @@table WHERE
|
||||
//
|
||||
// deleted_at IS NULL
|
||||
//
|
||||
// ORDER BY created_at ASC
|
||||
// LIMIT 50
|
||||
// OFFSET @pageNr * 50
|
||||
func (u userDo) GetPagedAllNonDeleted(pageNr uint) (result []models.User, err error) {
|
||||
var params []interface{}
|
||||
|
||||
var generateSQL strings.Builder
|
||||
params = append(params, pageNr)
|
||||
generateSQL.WriteString("SELECT * FROM users WHERE deleted_at IS NULL ORDER BY created_at ASC LIMIT 50 OFFSET ? * 50 ")
|
||||
|
||||
var executeSQL *gorm.DB
|
||||
executeSQL = u.UnderlyingDB().Raw(generateSQL.String(), params...).Find(&result) // ignore_security_alert
|
||||
err = executeSQL.Error
|
||||
|
||||
return
|
||||
}
|
||||
|
||||
func (u userDo) Debug() IUserDo {
|
||||
return u.withDO(u.DO.Debug())
|
||||
}
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue