ApiAipController.cs 5.3 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127
  1. using Aip.Service.Aip.Models;
  2. using Aip.Service.Models.Response;
  3. using Aip.Service.Repositories;
  4. using Aip.Service.Services.Interfaces;
  5. using Microsoft.AspNetCore.Mvc;
  6. using Swashbuckle.AspNetCore.Annotations;
  7. using System.ComponentModel.DataAnnotations;
  8. namespace Aip.Service.Controllers;
  9. [ApiController]
  10. [Route("/api/v1/aip")]
  11. [Produces("application/json")]
  12. public class ApiAipController : BaseController
  13. {
  14. private readonly ILogger<ApiAipController> _log;
  15. private readonly IApiAipService _service;
  16. private readonly IApiAuthService _authService;
  17. public ApiAipController(ILogger<ApiAipController> log, IApiAuthService authService, IApiAipService apiAipService)
  18. {
  19. _log = log;
  20. _authService = authService;
  21. _service = apiAipService;
  22. }
  23. [HttpPost("download")]
  24. [SwaggerResponse(200, type: typeof(ApiResponseModel<GeneralResponse>))]
  25. public async Task<IResult> DownloadAipInfo([Required] string apiKey)
  26. {
  27. return await CreateResponseAsync(async () =>
  28. {
  29. GlobalConstants.SetAuthorization(HttpContext, GlobalConstants.API_AIP_DOWNLOAD, apiKey, null);
  30. int authError = _authService.CheckApiKeyValidation(HttpContext, apiKey, GlobalConstants.API_AIP_DOWNLOAD);
  31. if (authError != 0)
  32. {
  33. throw ResponseApiKeyValidationError(HttpContext, authError);
  34. }
  35. var response = await _service.DownloadAipInfo();
  36. var result = Results.Ok(ResponseSuccess(HttpContext, response));
  37. HttpContext.Items[GlobalConstants.API_RESULT] = result;
  38. return result;
  39. });
  40. }
  41. [HttpGet("labels")]
  42. [SwaggerResponse(200, type: typeof(ApiResponseModel<List<AipLabel>>))]
  43. public async Task<IResult> GetAipLabels([Required] string apiKey)
  44. {
  45. return await CreateResponseAsync(async () =>
  46. {
  47. GlobalConstants.SetAuthorization(HttpContext, GlobalConstants.API_AIP_LABELS, apiKey, null);
  48. int authError = _authService.CheckApiKeyValidation(HttpContext, apiKey, GlobalConstants.API_AIP_LABELS);
  49. if (authError != 0)
  50. {
  51. throw ResponseApiKeyValidationError(HttpContext, authError);
  52. }
  53. var response = await _service.GetLabels();
  54. var result = Results.Ok(new ApiResponseModel<List<AipLabel>>()
  55. {
  56. success = true,
  57. errorCode = 0,
  58. errorMessage = GlobalConstants.API_RESULT_SUCCESS,
  59. result = response,
  60. });
  61. HttpContext.Items[GlobalConstants.API_RESULT_CODE] = GlobalConstants.API_RESULT_SUCCESS_CODE;
  62. HttpContext.Items[GlobalConstants.API_RESULT_MESSAGE] = GlobalConstants.API_RESULT_SUCCESS;
  63. HttpContext.Items[GlobalConstants.API_RESULT] = response;
  64. return result;
  65. });
  66. }
  67. [HttpGet("policies")]
  68. [SwaggerResponse(200, type: typeof(ApiResponseModel<List<AipLabel>>))]
  69. public async Task<IResult> GetAipPolicies([Required] string apiKey)
  70. {
  71. return await CreateResponseAsync(async () =>
  72. {
  73. GlobalConstants.SetAuthorization(HttpContext, GlobalConstants.API_AIP_POLICIES, apiKey, null);
  74. int authError = _authService.CheckApiKeyValidation(HttpContext, apiKey, GlobalConstants.API_AIP_POLICIES);
  75. if (authError != 0)
  76. {
  77. throw ResponseApiKeyValidationError(HttpContext, authError);
  78. }
  79. var response = await _service.GetPolicies();
  80. var result = Results.Ok(new ApiResponseModel<List<AipLabel>>()
  81. {
  82. success = true,
  83. errorCode = 0,
  84. errorMessage = GlobalConstants.API_RESULT_SUCCESS,
  85. result = response,
  86. });
  87. HttpContext.Items[GlobalConstants.API_RESULT_CODE] = GlobalConstants.API_RESULT_SUCCESS_CODE;
  88. HttpContext.Items[GlobalConstants.API_RESULT_MESSAGE] = GlobalConstants.API_RESULT_SUCCESS;
  89. HttpContext.Items[GlobalConstants.API_RESULT] = result;
  90. return result;
  91. });
  92. }
  93. [HttpGet("protections")]
  94. [SwaggerResponse(200, type: typeof(ApiResponseModel<List<AipTemplate>>))]
  95. public async Task<IResult> GetAipProtections([Required] string apiKey)
  96. {
  97. return await CreateResponseAsync(async () =>
  98. {
  99. GlobalConstants.SetAuthorization(HttpContext, GlobalConstants.API_AIP_PROTECTIONS, apiKey, null);
  100. int authError = _authService.CheckApiKeyValidation(HttpContext, apiKey, GlobalConstants.API_AIP_PROTECTIONS);
  101. if (authError != 0)
  102. {
  103. throw ResponseApiKeyValidationError(HttpContext, authError);
  104. }
  105. var response = await _service.GetProtections();
  106. var result = Results.Ok(new ApiResponseModel<List<AipTemplate>>()
  107. {
  108. success = true,
  109. errorCode = 0,
  110. errorMessage = GlobalConstants.API_RESULT_SUCCESS,
  111. result = response,
  112. });
  113. HttpContext.Items[GlobalConstants.API_RESULT_CODE] = GlobalConstants.API_RESULT_SUCCESS_CODE;
  114. HttpContext.Items[GlobalConstants.API_RESULT_MESSAGE] = GlobalConstants.API_RESULT_SUCCESS;
  115. HttpContext.Items[GlobalConstants.API_RESULT] = result;
  116. return result;
  117. });
  118. }
  119. }