using ApiGw_Base.Enums; using Microsoft.AspNetCore.Mvc; using System; using System.IO; using System.Text; namespace ApiGw_Base.Controllers { [Route("[controller]")] [ApiController] public class ConfigurationController : ControllerBase { [HttpGet("mobile/marketing")] public IActionResult MobileMarketing() => ReadConfigurationFile(ConfigurationType.Mobile, ConfigurationBffType.Marketing); [HttpGet("mobile/shopping")] public IActionResult MobileShopping() => ReadConfigurationFile(ConfigurationType.Mobile, ConfigurationBffType.Shopping); [HttpGet("web/marketing")] public IActionResult WebMarketing() => ReadConfigurationFile(ConfigurationType.Web, ConfigurationBffType.Marketing); [HttpGet("web/shopping")] public IActionResult WebShopping() => ReadConfigurationFile(ConfigurationType.Web, ConfigurationBffType.Shopping); private IActionResult ReadConfigurationFile(ConfigurationType configurationType, ConfigurationBffType configurationBffType) { var path = $"{AppDomain.CurrentDomain.BaseDirectory}/Configurations/configuration.{configurationType}.Bff.{configurationBffType}.json"; using (var streamReader = new StreamReader(path, Encoding.UTF8)) { var jsonString = streamReader.ReadToEnd(); if (string.IsNullOrWhiteSpace(jsonString)) { return BadRequest($"Configuration file 'configuration.{configurationType}.Bff.{configurationBffType}.json' not found"); } return Ok(jsonString); } } } }