LingAdmin/Backend/LingAdmin.API/Controllers/MenusController.cs

46 lines
1.2 KiB
C#
Raw Normal View History

2026-04-16 18:13:06 +08:00
using Microsoft.AspNetCore.Mvc;
using Microsoft.EntityFrameworkCore;
using LingAdmin.API.Data;
using LingAdmin.API.Models;
using LingAdmin.API.DTOs;
namespace LingAdmin.API.Controllers;
[ApiController]
[Route("api/[controller]")]
public class MenusController : ControllerBase
{
private readonly AppDbContext _context;
private readonly ILogger<MenusController> _logger;
public MenusController(AppDbContext context, ILogger<MenusController> logger)
{
_context = context;
_logger = logger;
}
[HttpGet]
public async Task<ActionResult<ApiResponse<List<object>>>> GetMenus()
{
try
{
var menus = await _context.MenuItems
.OrderBy(m => m.Order)
.Select(m => new
{
name = m.Name,
path = m.Path,
icon = m.Icon
})
.ToListAsync();
return Ok(ApiResponse<List<object>>.Success(menus.Cast<object>().ToList()));
}
catch (Exception ex)
{
_logger.LogError(ex, "Error retrieving menus");
return StatusCode(500, ApiResponse<List<object>>.Error("Internal server error", 500));
}
}
}