diff --git a/server/handlers/admin.go b/server/handlers/admin.go index 8119538..ad71bc2 100644 --- a/server/handlers/admin.go +++ b/server/handlers/admin.go @@ -114,8 +114,6 @@ func Users(ctx *gin.Context) { return } - var desc = ctx.DefaultQuery("order", "desc") == "desc" - scopes := []func(db *gorm.DB) *gorm.DB{} switch ctx.Query("role") { @@ -131,25 +129,6 @@ func Users(ctx *gin.Context) { scopes = append(scopes, db.WhereRole(dbModel.RoleRoot)) } - switch ctx.DefaultQuery("sort", "name") { - case "createdAt": - if desc { - scopes = append(scopes, db.OrderByCreatedAtDesc) - } else { - scopes = append(scopes, db.OrderByCreatedAtAsc) - } - case "name": - if desc { - scopes = append(scopes, db.OrderByDesc("username")) - } else { - scopes = append(scopes, db.OrderByAsc("username")) - } - default: - log.Error("not support sort") - ctx.AbortWithStatusJSON(http.StatusBadRequest, model.NewApiErrorStringResp("not support sort")) - return - } - if keyword := ctx.Query("keyword"); keyword != "" { // search mode, all, name, id switch ctx.DefaultQuery("search", "all") { @@ -181,6 +160,26 @@ func Users(ctx *gin.Context) { return } + var desc = ctx.DefaultQuery("order", "desc") == "desc" + switch ctx.DefaultQuery("sort", "name") { + case "createdAt": + if desc { + scopes = append(scopes, db.OrderByCreatedAtDesc) + } else { + scopes = append(scopes, db.OrderByCreatedAtAsc) + } + case "name": + if desc { + scopes = append(scopes, db.OrderByDesc("username")) + } else { + scopes = append(scopes, db.OrderByAsc("username")) + } + default: + log.Error("not support sort") + ctx.AbortWithStatusJSON(http.StatusBadRequest, model.NewApiErrorStringResp("not support sort")) + return + } + list, err := db.GetAllUsers(append(scopes, db.Paginate(page, pageSize))...) if err != nil { log.WithError(err).Error("get all users error") @@ -218,8 +217,6 @@ func AdminGetRoomMembers(ctx *gin.Context) { return } - var desc = ctx.DefaultQuery("order", "desc") == "desc" - scopes := []func(db *gorm.DB) *gorm.DB{} switch ctx.DefaultQuery("status", "active") { @@ -240,25 +237,6 @@ func AdminGetRoomMembers(ctx *gin.Context) { scopes = append(scopes, db.WhereRoomMemberRole(dbModel.RoomMemberRoleCreator)) } - switch ctx.DefaultQuery("sort", "name") { - case "join": - if desc { - scopes = append(scopes, db.OrderByUsersCreatedAtDesc) - } else { - scopes = append(scopes, db.OrderByUsersCreatedAtAsc) - } - case "name": - if desc { - scopes = append(scopes, db.OrderByDesc("username")) - } else { - scopes = append(scopes, db.OrderByAsc("username")) - } - default: - log.Errorf("get room users failed: not support sort") - ctx.AbortWithStatusJSON(http.StatusBadRequest, model.NewApiErrorStringResp("not support sort")) - return - } - if keyword := ctx.Query("keyword"); keyword != "" { // search mode, all, name, id switch ctx.DefaultQuery("search", "all") { @@ -297,6 +275,26 @@ func AdminGetRoomMembers(ctx *gin.Context) { return } + var desc = ctx.DefaultQuery("order", "desc") == "desc" + switch ctx.DefaultQuery("sort", "name") { + case "join": + if desc { + scopes = append(scopes, db.OrderByUsersCreatedAtDesc) + } else { + scopes = append(scopes, db.OrderByUsersCreatedAtAsc) + } + case "name": + if desc { + scopes = append(scopes, db.OrderByDesc("username")) + } else { + scopes = append(scopes, db.OrderByAsc("username")) + } + default: + log.Errorf("get room users failed: not support sort") + ctx.AbortWithStatusJSON(http.StatusBadRequest, model.NewApiErrorStringResp("not support sort")) + return + } + list, err := db.GetAllUsers(append(scopes, db.Paginate(page, pageSize))...) if err != nil { log.Errorf("get room users failed: %v", err) @@ -454,8 +452,6 @@ func Rooms(ctx *gin.Context) { return } - var desc = ctx.DefaultQuery("order", "desc") == "desc" - scopes := []func(db *gorm.DB) *gorm.DB{} switch ctx.Query("status") { @@ -467,25 +463,6 @@ func Rooms(ctx *gin.Context) { scopes = append(scopes, db.WhereStatus(dbModel.RoomStatusBanned)) } - switch ctx.DefaultQuery("sort", "name") { - case "createdAt": - if desc { - scopes = append(scopes, db.OrderByCreatedAtDesc) - } else { - scopes = append(scopes, db.OrderByCreatedAtAsc) - } - case "name": - if desc { - scopes = append(scopes, db.OrderByDesc("name")) - } else { - scopes = append(scopes, db.OrderByAsc("name")) - } - default: - log.Error("not support sort") - ctx.AbortWithStatusJSON(http.StatusBadRequest, model.NewApiErrorStringResp("not support sort")) - return - } - if keyword := ctx.Query("keyword"); keyword != "" { // search mode, all, name, creator switch ctx.DefaultQuery("search", "all") { @@ -521,6 +498,26 @@ func Rooms(ctx *gin.Context) { return } + var desc = ctx.DefaultQuery("order", "desc") == "desc" + switch ctx.DefaultQuery("sort", "name") { + case "createdAt": + if desc { + scopes = append(scopes, db.OrderByCreatedAtDesc) + } else { + scopes = append(scopes, db.OrderByCreatedAtAsc) + } + case "name": + if desc { + scopes = append(scopes, db.OrderByDesc("name")) + } else { + scopes = append(scopes, db.OrderByAsc("name")) + } + default: + log.Error("not support sort") + ctx.AbortWithStatusJSON(http.StatusBadRequest, model.NewApiErrorStringResp("not support sort")) + return + } + list, err := genRoomListResp(append(scopes, db.Paginate(page, pageSize))...) if err != nil { log.WithError(err).Error("gen room list resp error") @@ -550,8 +547,6 @@ func GetUserRooms(ctx *gin.Context) { return } - var desc = ctx.DefaultQuery("order", "desc") == "desc" - scopes := []func(db *gorm.DB) *gorm.DB{ db.WhereCreatorID(id), } @@ -565,25 +560,6 @@ func GetUserRooms(ctx *gin.Context) { scopes = append(scopes, db.WhereStatus(dbModel.RoomStatusBanned)) } - switch ctx.DefaultQuery("sort", "name") { - case "createdAt": - if desc { - scopes = append(scopes, db.OrderByCreatedAtDesc) - } else { - scopes = append(scopes, db.OrderByCreatedAtAsc) - } - case "name": - if desc { - scopes = append(scopes, db.OrderByDesc("name")) - } else { - scopes = append(scopes, db.OrderByAsc("name")) - } - default: - log.Error("not support sort") - ctx.AbortWithStatusJSON(http.StatusBadRequest, model.NewApiErrorStringResp("not support sort")) - return - } - if keyword := ctx.Query("keyword"); keyword != "" { // search mode, all, name, creator switch ctx.DefaultQuery("search", "all") { @@ -603,6 +579,26 @@ func GetUserRooms(ctx *gin.Context) { return } + var desc = ctx.DefaultQuery("order", "desc") == "desc" + switch ctx.DefaultQuery("sort", "name") { + case "createdAt": + if desc { + scopes = append(scopes, db.OrderByCreatedAtDesc) + } else { + scopes = append(scopes, db.OrderByCreatedAtAsc) + } + case "name": + if desc { + scopes = append(scopes, db.OrderByDesc("name")) + } else { + scopes = append(scopes, db.OrderByAsc("name")) + } + default: + log.Error("not support sort") + ctx.AbortWithStatusJSON(http.StatusBadRequest, model.NewApiErrorStringResp("not support sort")) + return + } + list, err := genRoomListResp(append(scopes, db.Paginate(page, pageSize))...) if err != nil { log.WithError(err).Error("gen room list resp error") diff --git a/server/handlers/member.go b/server/handlers/member.go index a97cf8f..e264fec 100644 --- a/server/handlers/member.go +++ b/server/handlers/member.go @@ -24,8 +24,6 @@ func RoomMembers(ctx *gin.Context) { return } - var desc = ctx.DefaultQuery("order", "desc") == "desc" - scopes := []func(db *gorm.DB) *gorm.DB{} switch ctx.DefaultQuery("role", "") { @@ -37,25 +35,6 @@ func RoomMembers(ctx *gin.Context) { scopes = append(scopes, db.WhereRoomMemberRole(dbModel.RoomMemberRoleCreator)) } - switch ctx.DefaultQuery("sort", "name") { - case "join": - if desc { - scopes = append(scopes, db.OrderByUsersCreatedAtDesc) - } else { - scopes = append(scopes, db.OrderByUsersCreatedAtAsc) - } - case "name": - if desc { - scopes = append(scopes, db.OrderByDesc("username")) - } else { - scopes = append(scopes, db.OrderByAsc("username")) - } - default: - log.Errorf("get room users failed: not support sort") - ctx.AbortWithStatusJSON(http.StatusBadRequest, model.NewApiErrorStringResp("not support sort")) - return - } - if keyword := ctx.Query("keyword"); keyword != "" { // search mode, all, name, id switch ctx.DefaultQuery("search", "all") { @@ -94,6 +73,26 @@ func RoomMembers(ctx *gin.Context) { return } + var desc = ctx.DefaultQuery("order", "desc") == "desc" + switch ctx.DefaultQuery("sort", "name") { + case "join": + if desc { + scopes = append(scopes, db.OrderByUsersCreatedAtDesc) + } else { + scopes = append(scopes, db.OrderByUsersCreatedAtAsc) + } + case "name": + if desc { + scopes = append(scopes, db.OrderByDesc("username")) + } else { + scopes = append(scopes, db.OrderByAsc("username")) + } + default: + log.Errorf("get room users failed: not support sort") + ctx.AbortWithStatusJSON(http.StatusBadRequest, model.NewApiErrorStringResp("not support sort")) + return + } + list, err := db.GetAllUsers(append(scopes, db.Paginate(page, pageSize))...) if err != nil { log.Errorf("get room users failed: %v", err) @@ -118,8 +117,6 @@ func RoomAdminMembers(ctx *gin.Context) { return } - var desc = ctx.DefaultQuery("order", "desc") == "desc" - scopes := []func(db *gorm.DB) *gorm.DB{} switch ctx.DefaultQuery("status", "active") { @@ -140,25 +137,6 @@ func RoomAdminMembers(ctx *gin.Context) { scopes = append(scopes, db.WhereRoomMemberRole(dbModel.RoomMemberRoleCreator)) } - switch ctx.DefaultQuery("sort", "name") { - case "join": - if desc { - scopes = append(scopes, db.OrderByUsersCreatedAtDesc) - } else { - scopes = append(scopes, db.OrderByUsersCreatedAtAsc) - } - case "name": - if desc { - scopes = append(scopes, db.OrderByDesc("username")) - } else { - scopes = append(scopes, db.OrderByAsc("username")) - } - default: - log.Errorf("get room users failed: not support sort") - ctx.AbortWithStatusJSON(http.StatusBadRequest, model.NewApiErrorStringResp("not support sort")) - return - } - if keyword := ctx.Query("keyword"); keyword != "" { // search mode, all, name, id switch ctx.DefaultQuery("search", "all") { @@ -197,6 +175,26 @@ func RoomAdminMembers(ctx *gin.Context) { return } + var desc = ctx.DefaultQuery("order", "desc") == "desc" + switch ctx.DefaultQuery("sort", "name") { + case "join": + if desc { + scopes = append(scopes, db.OrderByUsersCreatedAtDesc) + } else { + scopes = append(scopes, db.OrderByUsersCreatedAtAsc) + } + case "name": + if desc { + scopes = append(scopes, db.OrderByDesc("username")) + } else { + scopes = append(scopes, db.OrderByAsc("username")) + } + default: + log.Errorf("get room users failed: not support sort") + ctx.AbortWithStatusJSON(http.StatusBadRequest, model.NewApiErrorStringResp("not support sort")) + return + } + list, err := db.GetAllUsers(append(scopes, db.Paginate(page, pageSize))...) if err != nil { log.Errorf("get room users failed: %v", err) diff --git a/server/handlers/room.go b/server/handlers/room.go index f3fc44e..591d1d6 100644 --- a/server/handlers/room.go +++ b/server/handlers/room.go @@ -163,8 +163,6 @@ func RoomList(ctx *gin.Context) { return } - var desc = ctx.DefaultQuery("order", "desc") == "desc" - scopes := []func(db *gorm.DB) *gorm.DB{ func(db *gorm.DB) *gorm.DB { return db.InnerJoins("JOIN room_settings ON rooms.id = room_settings.id") @@ -173,25 +171,6 @@ func RoomList(ctx *gin.Context) { db.WhereStatus(dbModel.RoomStatusActive), } - switch ctx.DefaultQuery("sort", "name") { - case "createdAt": - if desc { - scopes = append(scopes, db.OrderByCreatedAtDesc) - } else { - scopes = append(scopes, db.OrderByCreatedAtAsc) - } - case "name": - if desc { - scopes = append(scopes, db.OrderByDesc("name")) - } else { - scopes = append(scopes, db.OrderByAsc("name")) - } - default: - log.Errorf("get room list failed: not support sort") - ctx.AbortWithStatusJSON(http.StatusBadRequest, model.NewApiErrorStringResp("not support sort")) - return - } - if keyword := ctx.Query("keyword"); keyword != "" { // search mode, all, name, creator switch ctx.DefaultQuery("search", "all") { @@ -225,6 +204,26 @@ func RoomList(ctx *gin.Context) { return } + var desc = ctx.DefaultQuery("order", "desc") == "desc" + switch ctx.DefaultQuery("sort", "name") { + case "createdAt": + if desc { + scopes = append(scopes, db.OrderByCreatedAtDesc) + } else { + scopes = append(scopes, db.OrderByCreatedAtAsc) + } + case "name": + if desc { + scopes = append(scopes, db.OrderByDesc("name")) + } else { + scopes = append(scopes, db.OrderByAsc("name")) + } + default: + log.Errorf("get room list failed: not support sort") + ctx.AbortWithStatusJSON(http.StatusBadRequest, model.NewApiErrorStringResp("not support sort")) + return + } + list, err := genRoomListResp(append(scopes, db.Paginate(page, pageSize))...) if err != nil { log.Errorf("get room list failed: %v", err) diff --git a/server/handlers/user.go b/server/handlers/user.go index e9a0f24..6ddc94f 100644 --- a/server/handlers/user.go +++ b/server/handlers/user.go @@ -100,8 +100,6 @@ func UserRooms(ctx *gin.Context) { return } - var desc = ctx.DefaultQuery("order", "desc") == "desc" - scopes := []func(db *gorm.DB) *gorm.DB{ db.WhereCreatorID(user.ID), } @@ -115,25 +113,6 @@ func UserRooms(ctx *gin.Context) { scopes = append(scopes, db.WhereStatus(dbModel.RoomStatusBanned)) } - switch ctx.DefaultQuery("sort", "name") { - case "createdAt": - if desc { - scopes = append(scopes, db.OrderByCreatedAtDesc) - } else { - scopes = append(scopes, db.OrderByCreatedAtAsc) - } - case "name": - if desc { - scopes = append(scopes, db.OrderByDesc("name")) - } else { - scopes = append(scopes, db.OrderByAsc("name")) - } - default: - log.Errorf("not support sort") - ctx.AbortWithStatusJSON(http.StatusBadRequest, model.NewApiErrorStringResp("not support sort")) - return - } - if keyword := ctx.Query("keyword"); keyword != "" { // search mode, all, name, creator switch ctx.DefaultQuery("search", "all") { @@ -159,6 +138,26 @@ func UserRooms(ctx *gin.Context) { return } + var desc = ctx.DefaultQuery("order", "desc") == "desc" + switch ctx.DefaultQuery("sort", "name") { + case "createdAt": + if desc { + scopes = append(scopes, db.OrderByCreatedAtDesc) + } else { + scopes = append(scopes, db.OrderByCreatedAtAsc) + } + case "name": + if desc { + scopes = append(scopes, db.OrderByDesc("name")) + } else { + scopes = append(scopes, db.OrderByAsc("name")) + } + default: + log.Errorf("not support sort") + ctx.AbortWithStatusJSON(http.StatusBadRequest, model.NewApiErrorStringResp("not support sort")) + return + } + list, err := genRoomListResp(append(scopes, db.Paginate(page, pageSize))...) if err != nil { log.Errorf("failed to get all rooms: %v", err)