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
// @Router /menus [get]
func (m *menuController) GetMenus(ctx *gin.Context) {
_ = ctx.MustGet("client_id").(string)
var filter = &query.MenuFilter{
// ClientID: clientId,
ClientID: ctx.Query("client_id"),
Name: ctx.Query("name"),
ParentID: ctx.Query("parent_id"),
Includes: ctx.QueryArray("includes"),

View File

@ -4,6 +4,7 @@ import (
"github.com/Caknoooo/go-gin-clean-starter/database/entities"
"github.com/Caknoooo/go-pagination"
"github.com/google/uuid"
"github.com/sirupsen/logrus"
"gorm.io/gorm"
)
@ -35,10 +36,11 @@ func (f *MenuFilter) ApplyFilters(q *gorm.DB) *gorm.DB {
if f.ParentID != "" {
q = q.Where("parent_id = ?", f.ParentID)
}
logrus.Info("MenuFilter ClientID: ", 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 {
return db.Select("m_menus.id", "m_menus.name")
})