using Microsoft.AspNetCore.Authorization;
using Microsoft.AspNetCore.Mvc;
using MilliSim.Common.Dtos;
using MilliSim.Common.Models;
using MilliSim.Services;
namespace MilliSim.Controllers;
[ApiController]
[Route("api/categories")]
public class CategoriesController : ControllerBase
{
private readonly IProjectService _projectService;
public CategoriesController(IProjectService projectService)
{
_projectService = projectService;
}
///
/// 分类列表
///
[HttpGet]
public async Task>> GetCategories()
{
return await _projectService.GetCategoriesAsync();
}
///
/// 创建分类
///
[HttpPost]
[Authorize(Policy = "Admin")]
public async Task> CreateCategory([FromBody] CreateCategoryRequest request)
{
return await _projectService.CreateCategoryAsync(request);
}
///
/// 更新分类
///
[HttpPost("{id:long}")]
[Authorize(Policy = "Admin")]
public async Task> UpdateCategory(long id, [FromBody] CreateCategoryRequest request)
{
return await _projectService.UpdateCategoryAsync(id, request);
}
///
/// 删除分类
///
[HttpPost("{id:long}/delete")]
[Authorize(Policy = "Admin")]
public async Task DeleteCategory(long id)
{
return await _projectService.DeleteCategoryAsync(id);
}
}