using Apimanager_backend.Dtos; using Apimanager_backend.Exceptions; using Apimanager_backend.Models; using Apimanager_backend.Services; using Microsoft.AspNetCore.Authorization; using Microsoft.AspNetCore.Http; using Microsoft.AspNetCore.Mvc; namespace Apimanager_backend.Controllers { [Route("api/[controller]/[action]")] [ApiController] public class SystemConfigController : ControllerBase { private readonly ISystemConfigService systemConfigService; private readonly ILogger logger; public SystemConfigController(ISystemConfigService systemConfigService, ILogger logger) { this.systemConfigService = systemConfigService; this.logger = logger; } [HttpPost] [Authorize(Roles = "Admin")] public async Task>> UpdateSystemConfig([FromBody]UpdateSystemConfigDto updateSystemConfigDto) { try { var configInfo = await systemConfigService.UpdateSystemConfig(updateSystemConfigDto.ConfigName, updateSystemConfigDto.ConfigBody); var res = new ResponseBase(configInfo); return Ok(res); }catch(BaseException e) { var res = new ResponseBase( code:e.code, message:e.message, data:null ); return NotFound(res); } } [HttpGet] public async Task>> GetSystemConfig(string configName) { try { var configInfo = await systemConfigService.GetSystemConfig(configName); var res = new ResponseBase(configInfo); return Ok(res); } catch (BaseException e) { var res = new ResponseBase( code: e.code, message: e.message, data: null ); return NotFound(res); } } } }