diff --git a/modules/user/controller/user_controller.go b/modules/user/controller/user_controller.go index fe7ee21..6c2c45e 100644 --- a/modules/user/controller/user_controller.go +++ b/modules/user/controller/user_controller.go @@ -62,7 +62,11 @@ func (c *userController) Register(ctx *gin.Context) { } func (c *userController) GetAllUser(ctx *gin.Context) { - var filter = &query.UserFilter{} + tenantId := ctx.MustGet("tenant_id").(string) + var filter = &query.UserFilter{ + TenantID: tenantId, + Name: ctx.Query("name"), // ambil parameter name dari query string + } filter.BindPagination(ctx) ctx.ShouldBindQuery(filter) diff --git a/modules/user/query/user_query.go b/modules/user/query/user_query.go index 968418f..7911516 100644 --- a/modules/user/query/user_query.go +++ b/modules/user/query/user_query.go @@ -17,10 +17,18 @@ type User struct { type UserFilter struct { pagination.BaseFilter + Name string `form:"name"` // tambahkan ini + TenantID string `form:"tenant_id"` // tambahkan ini } func (f *UserFilter) ApplyFilters(query *gorm.DB) *gorm.DB { // Apply your filters here + if f.Name != "" { + query = query.Where("name ILIKE ?", "%"+f.Name+"%") + } + if f.TenantID != "" { + query = query.Where("tenant_id = ?", f.TenantID) + } return query } diff --git a/modules/user/routes.go b/modules/user/routes.go index b159d7e..7b38164 100644 --- a/modules/user/routes.go +++ b/modules/user/routes.go @@ -17,7 +17,7 @@ func RegisterRoutes(server *gin.Engine, injector *do.Injector) { { userRoutes.POST("", userController.Register) userRoutes.POST("/login", userController.Login) - userRoutes.GET("", userController.GetAllUser) + userRoutes.GET("", middlewares.Authenticate(jwtService), userController.GetAllUser) userRoutes.GET("/me", middlewares.Authenticate(jwtService), userController.Me) userRoutes.PUT("/:id", middlewares.Authenticate(jwtService), userController.Update) userRoutes.DELETE("/:id", middlewares.Authenticate(jwtService), userController.Delete)