From 9209d9fb22dc7bb3e951e65b0e91cfb53d67b0b1 Mon Sep 17 00:00:00 2001 From: AzenKain Date: Wed, 8 Apr 2026 13:47:32 +0700 Subject: [PATCH] UPDATE: Some logic change --- docs/docs.go | 9 +++++++-- docs/swagger.json | 9 +++++++-- docs/swagger.yaml | 8 ++++++-- internal/dtos/request/user.go | 4 ++-- internal/services/mediaService.go | 3 +++ internal/services/userService.go | 11 +++++++---- 6 files changed, 32 insertions(+), 12 deletions(-) diff --git a/docs/docs.go b/docs/docs.go index 72d2ba4..06f7b9d 100644 --- a/docs/docs.go +++ b/docs/docs.go @@ -868,6 +868,12 @@ const docTemplate = `{ "summary": "Search users", "parameters": [ { + "enum": [ + "local", + "google", + "facebook", + "github" + ], "type": "string", "name": "auth_provider", "in": "query" @@ -892,8 +898,7 @@ const docTemplate = `{ "minimum": 1, "type": "integer", "name": "limit", - "in": "query", - "required": true + "in": "query" }, { "enum": [ diff --git a/docs/swagger.json b/docs/swagger.json index a17ea2a..8b0c2c0 100644 --- a/docs/swagger.json +++ b/docs/swagger.json @@ -861,6 +861,12 @@ "summary": "Search users", "parameters": [ { + "enum": [ + "local", + "google", + "facebook", + "github" + ], "type": "string", "name": "auth_provider", "in": "query" @@ -885,8 +891,7 @@ "minimum": 1, "type": "integer", "name": "limit", - "in": "query", - "required": true + "in": "query" }, { "enum": [ diff --git a/docs/swagger.yaml b/docs/swagger.yaml index ed85f65..a9c9cf9 100644 --- a/docs/swagger.yaml +++ b/docs/swagger.yaml @@ -737,7 +737,12 @@ paths: - application/json description: Search and filter users with pagination (Admin/Mod only) parameters: - - in: query + - enum: + - local + - google + - facebook + - github + in: query name: auth_provider type: string - in: query @@ -753,7 +758,6 @@ paths: maximum: 100 minimum: 1 name: limit - required: true type: integer - enum: - asc diff --git a/internal/dtos/request/user.go b/internal/dtos/request/user.go index ae9ac99..282d7a2 100644 --- a/internal/dtos/request/user.go +++ b/internal/dtos/request/user.go @@ -25,7 +25,7 @@ type ChangeRoleDto struct { type PaginationDto struct { Page int `json:"page" query:"page" validate:"omitempty,min=1"` - Limit int `json:"limit" query:"limit" validate:"required,min=1,max=100"` + Limit int `json:"limit" query:"limit" validate:"omitempty,min=1,max=100"` Order string `json:"order" query:"order" validate:"omitempty,oneof=asc desc"` } type SearchUserDto struct { @@ -34,7 +34,7 @@ type SearchUserDto struct { Search string `json:"search" query:"search" validate:"omitempty,min=2,max=200"` IsDeleted *bool `json:"is_deleted" query:"is_deleted" validate:"omitempty"` RoleIDs []string `json:"role_ids" query:"role_ids" validate:"omitempty,dive,uuid"` - AuthProvider string `json:"auth_provider" query:"auth_provider" validate:"omitempty"` + AuthProvider string `json:"auth_provider" query:"auth_provider" validate:"omitempty,oneof=local google facebook github"` CreatedFrom *time.Time `json:"created_from" query:"created_from" validate:"omitempty"` CreatedTo *time.Time `json:"created_to" query:"created_to" validate:"omitempty"` } diff --git a/internal/services/mediaService.go b/internal/services/mediaService.go index 9863461..f32736e 100644 --- a/internal/services/mediaService.go +++ b/internal/services/mediaService.go @@ -153,6 +153,9 @@ func (m *mediaService) SearchMedia(ctx context.Context, dto *request.SearchMedia if dto.Page < 1 { dto.Page = 1 } + if dto.Limit == 0 { + dto.Limit = 20 + } offset := (dto.Page - 1) * dto.Limit arg := sqlc.SearchMediasParams{ diff --git a/internal/services/userService.go b/internal/services/userService.go index f0a0a86..5c2cf75 100644 --- a/internal/services/userService.go +++ b/internal/services/userService.go @@ -254,6 +254,9 @@ func (u *userService) SearchUser(ctx context.Context, dto *request.SearchUserDto if dto.Page < 1 { dto.Page = 1 } + if dto.Limit == 0 { + dto.Limit = 20 + } offset := (dto.Page - 1) * dto.Limit arg := sqlc.SearchUsersParams{ @@ -276,12 +279,12 @@ func (u *userService) SearchUser(ctx context.Context, dto *request.SearchUserDto g.Go(func() error { countArg := sqlc.CountUsersParams{ - RoleIds: arg.RoleIds, - AuthProvider: arg.AuthProvider, - CreatedFrom: arg.CreatedFrom, + RoleIds: arg.RoleIds, + AuthProvider: arg.AuthProvider, + CreatedFrom: arg.CreatedFrom, CreatedTo: arg.CreatedTo, IsDeleted: arg.IsDeleted, - SearchText: arg.SearchText, + SearchText: arg.SearchText, } var err error totalRecords, err = u.userRepo.Count(gCtx, countArg)