code.gitea.io/gitea@v1.21.7/routers/web/user/search.go (about)

     1  // Copyright 2022 The Gitea Authors. All rights reserved.
     2  // SPDX-License-Identifier: MIT
     3  
     4  package user
     5  
     6  import (
     7  	"net/http"
     8  
     9  	"code.gitea.io/gitea/models/db"
    10  	user_model "code.gitea.io/gitea/models/user"
    11  	"code.gitea.io/gitea/modules/context"
    12  	"code.gitea.io/gitea/services/convert"
    13  )
    14  
    15  // Search search users
    16  func Search(ctx *context.Context) {
    17  	listOptions := db.ListOptions{
    18  		Page:     ctx.FormInt("page"),
    19  		PageSize: convert.ToCorrectPageSize(ctx.FormInt("limit")),
    20  	}
    21  
    22  	users, maxResults, err := user_model.SearchUsers(ctx, &user_model.SearchUserOptions{
    23  		Actor:       ctx.Doer,
    24  		Keyword:     ctx.FormTrim("q"),
    25  		UID:         ctx.FormInt64("uid"),
    26  		Type:        user_model.UserTypeIndividual,
    27  		IsActive:    ctx.FormOptionalBool("active"),
    28  		ListOptions: listOptions,
    29  	})
    30  	if err != nil {
    31  		ctx.JSON(http.StatusInternalServerError, map[string]any{
    32  			"ok":    false,
    33  			"error": err.Error(),
    34  		})
    35  		return
    36  	}
    37  
    38  	ctx.SetTotalCountHeader(maxResults)
    39  
    40  	ctx.JSON(http.StatusOK, map[string]any{
    41  		"ok":   true,
    42  		"data": convert.ToUsers(ctx, ctx.Doer, users),
    43  	})
    44  }