feat(menu): Update GetMenus to use client_id from query and enhance filtering
Deploy Application / deploy (push) Successful in 31s Details

This commit is contained in:
Habib Fatkhul Rohman 2025-10-30 14:45:02 +07:00
parent 02dc2c71d8
commit 203857d116
2 changed files with 5 additions and 4 deletions

View File

@ -87,9 +87,8 @@ func (m *menuController) CreateMenu(ctx *gin.Context) {
// @Failure 400 {object} utils.Response // @Failure 400 {object} utils.Response
// @Router /menus [get] // @Router /menus [get]
func (m *menuController) GetMenus(ctx *gin.Context) { func (m *menuController) GetMenus(ctx *gin.Context) {
_ = ctx.MustGet("client_id").(string)
var filter = &query.MenuFilter{ var filter = &query.MenuFilter{
// ClientID: clientId, ClientID: ctx.Query("client_id"),
Name: ctx.Query("name"), Name: ctx.Query("name"),
ParentID: ctx.Query("parent_id"), ParentID: ctx.Query("parent_id"),
Includes: ctx.QueryArray("includes"), Includes: ctx.QueryArray("includes"),

View File

@ -4,6 +4,7 @@ import (
"github.com/Caknoooo/go-gin-clean-starter/database/entities" "github.com/Caknoooo/go-gin-clean-starter/database/entities"
"github.com/Caknoooo/go-pagination" "github.com/Caknoooo/go-pagination"
"github.com/google/uuid" "github.com/google/uuid"
"github.com/sirupsen/logrus"
"gorm.io/gorm" "gorm.io/gorm"
) )
@ -35,10 +36,11 @@ func (f *MenuFilter) ApplyFilters(q *gorm.DB) *gorm.DB {
if f.ParentID != "" { if f.ParentID != "" {
q = q.Where("parent_id = ?", f.ParentID) q = q.Where("parent_id = ?", f.ParentID)
} }
logrus.Info("MenuFilter ClientID: ", f.ClientID)
if f.ClientID != "" { if f.ClientID != "" {
q = q.Where("client_id = ?", f.ClientID) q = q.Joins("JOIN m_menu_clients ON m_menu_clients.menu_id = m_menus.id").
Where("m_menu_clients.client_id = ?", f.ClientID)
} }
q = q.Model(entities.M_Menu{}).Preload("Parent", func(db *gorm.DB) *gorm.DB { q = q.Model(entities.M_Menu{}).Preload("Parent", func(db *gorm.DB) *gorm.DB {
return db.Select("m_menus.id", "m_menus.name") return db.Select("m_menus.id", "m_menus.name")
}) })