feat(user): Add GroupID filter to user queries for enhanced filtering capabilities
Deploy Application / deploy (push) Successful in 20s Details

This commit is contained in:
Habib Fatkhul Rohman 2025-11-05 15:15:43 +07:00
parent 5d27d4f3bd
commit d8756b6f76
2 changed files with 8 additions and 0 deletions

View File

@ -114,6 +114,7 @@ func (c *userController) GetAllUser(ctx *gin.Context) {
var filter = &query.UserFilter{
ClientID: ctx.Query("client_id"),
Name: ctx.Query("name"),
GroupID: ctx.Query("group_id"),
Includes: []string{"Roles"},
}
filter.BindPagination(ctx)

View File

@ -26,6 +26,7 @@ type UserFilter struct {
pagination.BaseFilter
Name string `form:"name"` // tambahkan ini
ClientID string `form:"client_id"` // tambahkan ini
GroupID string `form:"group_id"` // tambahkan ini
Includes []string `form:"includes"` // tambahkan ini
}
@ -38,6 +39,12 @@ func (f *UserFilter) ApplyFilters(query *gorm.DB) *gorm.DB {
query = query.Where("client_id = ?", f.ClientID)
}
if f.GroupID != "" {
query = query.Joins("JOIN m_maintenance_group_role_users ON m_maintenance_group_role_users.user_id = m_users.id").
Joins("JOIN m_maintenance_group_roles ON m_maintenance_group_roles.id = m_maintenance_group_role_users.maintenance_group_role_id").
Where("m_maintenance_group_roles.maintenance_group_id = ?", f.GroupID)
}
// add preload clients
query = query.Model(&M_User{}).Preload("Client", func(db *gorm.DB) *gorm.DB {
return db.Select("id", "name")