43 lines
1.0 KiB
Go
43 lines
1.0 KiB
Go
package routesrepo
|
|
|
|
import (
|
|
"git.ma-al.com/goc_daniel/b2b/app/db"
|
|
"git.ma-al.com/goc_daniel/b2b/app/model"
|
|
"git.ma-al.com/goc_daniel/b2b/app/utils/nullable"
|
|
)
|
|
|
|
type UIRoutesRepo interface {
|
|
GetRoutes(langId uint) ([]model.Route, error)
|
|
GetTopMenu(id uint, roleId uint) ([]model.B2BTopMenu, error)
|
|
}
|
|
|
|
type RoutesRepo struct{}
|
|
|
|
func New() UIRoutesRepo {
|
|
return &RoutesRepo{}
|
|
}
|
|
|
|
func (p *RoutesRepo) GetRoutes(langId uint) ([]model.Route, error) {
|
|
routes := []model.Route{}
|
|
err := db.DB.Find(&routes, model.Route{Active: nullable.GetNil(true)}).Error
|
|
if err != nil {
|
|
return nil, err
|
|
}
|
|
return routes, nil
|
|
}
|
|
|
|
func (p *RoutesRepo) GetTopMenu(langId uint, roleId uint) ([]model.B2BTopMenu, error) {
|
|
var menus []model.B2BTopMenu
|
|
|
|
err := db.
|
|
Get().
|
|
Model(model.B2BTopMenu{}).
|
|
Joins("JOIN b2b_top_menu_roles tmr ON tmr.top_menu_id = b2b_top_menu.menu_id").
|
|
Where(model.B2BTopMenu{Active: 1}).
|
|
Where("tmr.role_id = ?", roleId).
|
|
Order("b2b_top_menu.parent_id ASC, b2b_top_menu.position ASC").
|
|
Find(&menus).Error
|
|
|
|
return menus, err
|
|
}
|