MCPcopy Index your code
hub / github.com/apache/answer / GetUserPage

Method GetUserPage

internal/service/user_admin/user_backyard.go:469–544  ·  view source on GitHub ↗

GetUserPage get user list page

(ctx context.Context, req *schema.GetUserPageReq)

Source from the content-addressed store, hash-verified

467
468// GetUserPage get user list page
469func (us *UserAdminService) GetUserPage(ctx context.Context, req *schema.GetUserPageReq) (pageModel *pager.PageModel, err error) {
470 user := &entity.User{}
471 _ = copier.Copy(user, req)
472
473 switch {
474 case req.IsInactive():
475 user.MailStatus = entity.EmailStatusToBeVerified
476 user.Status = entity.UserStatusAvailable
477 case req.IsSuspended():
478 user.Status = entity.UserStatusSuspended
479 case req.IsDeleted():
480 user.Status = entity.UserStatusDeleted
481 default:
482 user.MailStatus = entity.EmailStatusAvailable
483 user.Status = entity.UserStatusAvailable
484 }
485
486 if len(req.Query) > 0 {
487 if email, e := mail.ParseAddress(req.Query); e == nil {
488 user.EMail = email.Address
489 req.Query = ""
490 } else if after, ok := strings.CutPrefix(req.Query, "user:"); ok {
491 id := strings.TrimSpace(after)
492 idSearch := true
493 for _, r := range id {
494 if !unicode.IsDigit(r) {
495 idSearch = false
496 break
497 }
498 }
499 if idSearch {
500 user.ID = id
501 req.Query = ""
502 } else {
503 req.Query = id
504 }
505 }
506 }
507
508 users, total, err := us.userRepo.GetUserPage(ctx, req.Page, req.PageSize, user, req.Query, req.Staff)
509 if err != nil {
510 return
511 }
512 avatarMapping := us.siteInfoCommonService.FormatListAvatar(ctx, users)
513
514 resp := make([]*schema.GetUserPageResp, 0)
515 for _, u := range users {
516 t := &schema.GetUserPageResp{
517 UserID: u.ID,
518 CreatedAt: u.CreatedAt.Unix(),
519 Username: u.Username,
520 EMail: u.EMail,
521 Rank: u.Rank,
522 DisplayName: u.DisplayName,
523 Avatar: avatarMapping[u.ID].GetURL(),
524 }
525 switch {
526 case u.Status == entity.UserStatusDeleted:

Callers

nothing calls this directly

Calls 8

setUserRoleInfoMethod · 0.95
NewPageModelFunction · 0.92
GetURLMethod · 0.80
GetUserPageMethod · 0.65
FormatListAvatarMethod · 0.65
IsInactiveMethod · 0.45
IsSuspendedMethod · 0.45
IsDeletedMethod · 0.45

Tested by

no test coverage detected