From 788f8807fcbcf6bf5ad33d26a62cc99b938a3f33 Mon Sep 17 00:00:00 2001 From: chenyifan01 Date: Wed, 30 Nov 2022 11:14:18 +0800 Subject: [PATCH] #3188 add active org list query api --- models/user.go | 2 ++ routers/home.go | 11 +++++++++++ routers/routes/routes.go | 2 +- services/repository/square.go | 12 ++++++++++++ 4 files changed, 26 insertions(+), 1 deletion(-) diff --git a/models/user.go b/models/user.go index ec636e000..e4eed1f9a 100755 --- a/models/user.go +++ b/models/user.go @@ -207,6 +207,7 @@ type User4Front struct { Language string `xorm:"VARCHAR(5)"` Description string RelAvatarLink string + NumMembers int CreatedUnix timeutil.TimeStamp `xorm:"INDEX created"` UpdatedUnix timeutil.TimeStamp `xorm:"INDEX updated"` } @@ -222,6 +223,7 @@ func (u *User) ToFrontFormat() *User4Front { Description: u.Description, CreatedUnix: u.CreatedUnix, UpdatedUnix: u.UpdatedUnix, + NumMembers: u.NumMembers, } if !u.KeepEmailPrivate { uf.Email = u.Email diff --git a/routers/home.go b/routers/home.go index f8363bb1a..a1043655e 100755 --- a/routers/home.go +++ b/routers/home.go @@ -334,6 +334,17 @@ func ActiveUser(ctx *context.Context) { resultMap["Users"] = result ctx.JSON(http.StatusOK, response.SuccessWithData(resultMap)) } +func ActiveOrg(ctx *context.Context) { + result, err := repository.GetActiveOrgs() + if err != nil { + log.Error("ActiveOrg err. %v", err) + ctx.JSON(http.StatusOK, response.Success()) + return + } + resultMap := make(map[string]interface{}, 0) + resultMap["Orgs"] = result + ctx.JSON(http.StatusOK, response.SuccessWithData(resultMap)) +} func RepoFind(ctx *context.Context) { keyword := strings.Trim(ctx.Query("q"), " ") diff --git a/routers/routes/routes.go b/routers/routes/routes.go index 31d72a96b..8f60153db 100755 --- a/routers/routes/routes.go +++ b/routers/routes/routes.go @@ -375,7 +375,7 @@ func RegisterRoutes(m *macaron.Macaron) { m.Group("/square", func() { m.Get("/tab", routers.RepoSquare) m.Get("/active-user", routers.ActiveUser) - m.Get("/active-org", routers.RepoSquare) + m.Get("/active-org", routers.ActiveOrg) }) m.Get("/search", routers.RepoFind) diff --git a/services/repository/square.go b/services/repository/square.go index 4465cbe9b..55858db81 100644 --- a/services/repository/square.go +++ b/services/repository/square.go @@ -190,3 +190,15 @@ func GetActiveUser4Square(currentUserId int64) ([]*ActiveUser, error) { } return result, nil } + +func GetActiveOrgs() ([]*models.User4Front, error) { + orgScores, err := models.FindTopNOpenIOrgs(10) + if err != nil { + return nil, err + } + orgs := make([]*models.User4Front, len(orgScores)) + for i, v := range orgScores { + orgs[i] = v.ToFrontFormat() + } + return orgs, nil +}