zeroframework/Services/DeviceCenter/ZeroFramework.DeviceCenter.API/Controllers/MonitoringFactorsController.cs
2023-12-05 17:22:48 +08:00

55 lines
2.7 KiB
C#

using Microsoft.AspNetCore.Authorization;
using Microsoft.AspNetCore.Mvc;
using ZeroFramework.DeviceCenter.Application.Models.Monitoring;
using ZeroFramework.DeviceCenter.Application.PermissionProviders;
using ZeroFramework.DeviceCenter.Application.Queries.Monitoring;
using ZeroFramework.DeviceCenter.Application.Services.Generics;
namespace ZeroFramework.DeviceCenter.API.Controllers
{
[Route("api/[controller]")]
[ApiController]
public class MonitoringFactorsController(IMonitoringFactorQueries monitoringFactorQueries, ICrudApplicationService<int, MonitoringFactorGetResponseModel, MonitoringFactorPagedRequestModel, MonitoringFactorGetResponseModel, MonitoringFactorCreateRequestModel, MonitoringFactorUpdateRequestModel> crudApplicationService) : ControllerBase
{
private readonly ICrudApplicationService<int, MonitoringFactorGetResponseModel, MonitoringFactorPagedRequestModel, MonitoringFactorGetResponseModel, MonitoringFactorCreateRequestModel, MonitoringFactorUpdateRequestModel> _crudApplicationService = crudApplicationService;
private readonly IMonitoringFactorQueries _monitoringFactorQueries = monitoringFactorQueries;
[HttpGet]
[Authorize(MonitoringFactorPermissions.MonitoringFactors.Default)]
public async Task<PagedResponseModel<MonitoringFactorGetResponseModel>> GetMonitoringFactors([FromQuery] MonitoringFactorPagedRequestModel model)
{
return await _monitoringFactorQueries.GetMonitoringFactorsAsync(model);
}
[HttpGet("{id:int}")]
[Authorize(MonitoringFactorPermissions.MonitoringFactors.Default)]
public async Task<MonitoringFactorGetResponseModel> GetMonitoringFactor(int id)
{
return await _monitoringFactorQueries.GetMonitoringFactorAsync(id);
}
[HttpPost]
[Authorize(MonitoringFactorPermissions.MonitoringFactors.Create)]
public async Task<MonitoringFactorGetResponseModel> PostMonitoringFactor([FromBody] MonitoringFactorCreateRequestModel model)
{
return await _crudApplicationService.CreateAsync(model);
}
[HttpPut("{id:int}")]
[Authorize(MonitoringFactorPermissions.MonitoringFactors.Edit)]
public async Task<MonitoringFactorGetResponseModel> PutMonitoringFactor(int id, [FromBody] MonitoringFactorUpdateRequestModel model)
{
model.Id = id;
return await _crudApplicationService.UpdateAsync(id, model);
}
[HttpDelete("{id:int}")]
[Authorize(MonitoringFactorPermissions.MonitoringFactors.Delete)]
public async Task DeleteMonitoringFactor(int id)
{
await _crudApplicationService.DeleteAsync(id);
}
}
}