code.gitea.io/gitea@v1.21.7/routers/api/v1/user/helper.go (about) 1 // Copyright 2021 The Gitea Authors. 2 // SPDX-License-Identifier: MIT 3 4 package user 5 6 import ( 7 "net/http" 8 9 user_model "code.gitea.io/gitea/models/user" 10 "code.gitea.io/gitea/modules/context" 11 ) 12 13 // GetUserByParamsName get user by name 14 func GetUserByParamsName(ctx *context.APIContext, name string) *user_model.User { 15 username := ctx.Params(name) 16 user, err := user_model.GetUserByName(ctx, username) 17 if err != nil { 18 if user_model.IsErrUserNotExist(err) { 19 if redirectUserID, err2 := user_model.LookupUserRedirect(ctx, username); err2 == nil { 20 context.RedirectToUser(ctx.Base, username, redirectUserID) 21 } else { 22 ctx.NotFound("GetUserByName", err) 23 } 24 } else { 25 ctx.Error(http.StatusInternalServerError, "GetUserByName", err) 26 } 27 return nil 28 } 29 return user 30 } 31 32 // GetUserByParams returns user whose name is presented in URL (":username"). 33 func GetUserByParams(ctx *context.APIContext) *user_model.User { 34 return GetUserByParamsName(ctx, ":username") 35 }