mirror of https://github.com/synctv-org/synctv.git
fix: postgres count search no need order and group by #223
This commit is contained in:
parent
919c0c7ddb
commit
0c1a3771df
|
@ -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")
|
||||
|
|
|
@ -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)
|
||||
|
|
|
@ -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)
|
||||
|
|
|
@ -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)
|
||||
|
|
Loading…
Reference in New Issue