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(BannerLoadReq request)
{
return await contentBusiness.BannerLoad(HttpContext.Request, request);
}
///
/// Load customer reviews
/// POST /apis/content/review
///
[HttpPost]
[Route(ApiUrlConstant.CustomerReviewLoadUrl)]
public async Task CustomerReviewLoad(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(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(FaqCategoryLoadReq request)
{
return await contentBusiness.FaqCategoryLoad(HttpContext.Request, request);
}
///
/// Load FAQs
/// POST /apis/content/faq
///
[HttpPost]
[Route(ApiUrlConstant.FaqLoadUrl)]
public async Task FaqLoad(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(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);
}
}
}