using System; using Common; using Common.Constant; using Common.Http; using Esim.Apis.Business; using Esim.Apis.DTO.Content; using Database.Database; using Microsoft.AspNetCore.Mvc; namespace RevoSystem.Apis.Controllers { [ApiController] public class ContentController : Controller { private static readonly log4net.ILog log = log4net.LogManager.GetLogger( typeof(ContentController) ); IContentBusiness contentBusiness; public ContentController(IContentBusiness contentBusiness) { this.contentBusiness = contentBusiness; } /// /// Load banners /// POST /apis/content/banner /// [HttpPost] [Route(ApiUrlConstant.BannerLoadUrl)] public async Task BannerLoad([FromBody] BannerLoadReq request) { return await contentBusiness.BannerLoad(HttpContext.Request, request); } /// /// Load customer reviews /// POST /apis/content/review /// [HttpPost] [Route(ApiUrlConstant.CustomerReviewLoadUrl)] public async Task CustomerReviewLoad([FromBody] CustomerReviewLoadReq request) { return await contentBusiness.CustomerReviewLoad(HttpContext.Request, request); } /// /// Create customer review /// POST /apis/content/review/create /// [HttpPost] [Route(ApiUrlConstant.CustomerReviewCreateUrl)] public async Task CustomerReviewCreate([FromBody] CustomerReviewCreateReq request) { return await contentBusiness.CustomerReviewCreate(HttpContext.Request, request); } /// /// Load FAQ categories /// POST /apis/content/faq-category /// [HttpPost] [Route(ApiUrlConstant.FaqCategoryLoadUrl)] public async Task FaqCategoryLoad([FromBody] FaqCategoryLoadReq request) { return await contentBusiness.FaqCategoryLoad(HttpContext.Request, request); } /// /// Load FAQs /// POST /apis/content/faq /// [HttpPost] [Route(ApiUrlConstant.FaqLoadUrl)] public async Task FaqLoad([FromBody] FaqLoadReq request) { return await contentBusiness.FaqLoad(HttpContext.Request, request); } /// /// Load device eSIM compatibility list /// POST /apis/content/device-compatibility /// [HttpPost] [Route(ApiUrlConstant.DeviceCompatibilityLoadUrl)] public async Task DeviceCompatibilityLoad([FromBody] DeviceCompatibilityReq request) { return await contentBusiness.DeviceCompatibilityLoad(HttpContext.Request, request); } /// /// Get device brands and categories list (for filters) /// GET /apis/content/device-metadata /// [HttpGet] [Route(ApiUrlConstant.DeviceMetadataUrl)] public async Task GetDeviceBrandsAndCategories() { return await contentBusiness.GetDeviceBrandsAndCategories(HttpContext.Request); } } }