You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
 
 
 
 
 
 

42 lines
1.6 KiB

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);
}
}
}
}