ContentController.cs 3.3 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104
  1. using System;
  2. using Common;
  3. using Common.Constant;
  4. using Common.Http;
  5. using Esim.Apis.Business;
  6. using Esim.Apis.DTO.Content;
  7. using Database.Database;
  8. using Microsoft.AspNetCore.Mvc;
  9. namespace RevoSystem.Apis.Controllers
  10. {
  11. [ApiController]
  12. public class ContentController : Controller
  13. {
  14. private static readonly log4net.ILog log = log4net.LogManager.GetLogger(
  15. typeof(ContentController)
  16. );
  17. IContentBusiness contentBusiness;
  18. public ContentController(IContentBusiness contentBusiness)
  19. {
  20. this.contentBusiness = contentBusiness;
  21. }
  22. /// <summary>
  23. /// Load banners
  24. /// POST /apis/content/banner
  25. /// </summary>
  26. [HttpPost]
  27. [Route(ApiUrlConstant.BannerLoadUrl)]
  28. public async Task<IActionResult> BannerLoad([FromBody] BannerLoadReq request)
  29. {
  30. return await contentBusiness.BannerLoad(HttpContext.Request, request);
  31. }
  32. /// <summary>
  33. /// Load customer reviews
  34. /// POST /apis/content/review
  35. /// </summary>
  36. [HttpPost]
  37. [Route(ApiUrlConstant.CustomerReviewLoadUrl)]
  38. public async Task<IActionResult> CustomerReviewLoad([FromBody] CustomerReviewLoadReq request)
  39. {
  40. return await contentBusiness.CustomerReviewLoad(HttpContext.Request, request);
  41. }
  42. /// <summary>
  43. /// Create customer review
  44. /// POST /apis/content/review/create
  45. /// </summary>
  46. [HttpPost]
  47. [Route(ApiUrlConstant.CustomerReviewCreateUrl)]
  48. public async Task<IActionResult> CustomerReviewCreate([FromBody] CustomerReviewCreateReq request)
  49. {
  50. return await contentBusiness.CustomerReviewCreate(HttpContext.Request, request);
  51. }
  52. /// <summary>
  53. /// Load FAQ categories
  54. /// POST /apis/content/faq-category
  55. /// </summary>
  56. [HttpPost]
  57. [Route(ApiUrlConstant.FaqCategoryLoadUrl)]
  58. public async Task<IActionResult> FaqCategoryLoad([FromBody] FaqCategoryLoadReq request)
  59. {
  60. return await contentBusiness.FaqCategoryLoad(HttpContext.Request, request);
  61. }
  62. /// <summary>
  63. /// Load FAQs
  64. /// POST /apis/content/faq
  65. /// </summary>
  66. [HttpPost]
  67. [Route(ApiUrlConstant.FaqLoadUrl)]
  68. public async Task<IActionResult> FaqLoad([FromBody] FaqLoadReq request)
  69. {
  70. return await contentBusiness.FaqLoad(HttpContext.Request, request);
  71. }
  72. /// <summary>
  73. /// Load device eSIM compatibility list
  74. /// POST /apis/content/device-compatibility
  75. /// </summary>
  76. [HttpPost]
  77. [Route(ApiUrlConstant.DeviceCompatibilityLoadUrl)]
  78. public async Task<IActionResult> DeviceCompatibilityLoad([FromBody] DeviceCompatibilityReq request)
  79. {
  80. return await contentBusiness.DeviceCompatibilityLoad(HttpContext.Request, request);
  81. }
  82. /// <summary>
  83. /// Get device brands and categories list (for filters)
  84. /// GET /apis/content/device-metadata
  85. /// </summary>
  86. [HttpGet]
  87. [Route(ApiUrlConstant.DeviceMetadataUrl)]
  88. public async Task<IActionResult> GetDeviceBrandsAndCategories()
  89. {
  90. return await contentBusiness.GetDeviceBrandsAndCategories(HttpContext.Request);
  91. }
  92. }
  93. }