ApiFileController.cs 11 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231
  1. using AipGateway.AIP;
  2. using AipGateway.API.Application.Modules;
  3. using AipGateway.API.Domain.IRepositories.IGenericRepositories;
  4. using AipGateway.API.Domain.Models;
  5. using AipGateway.API.Domain.Models.Request;
  6. using AipGateway.API.Domain.Models.Response;
  7. using AipGateway.API.Extensions;
  8. using AipGateway.API.Services;
  9. using Microsoft.AspNetCore.Mvc;
  10. using Swashbuckle.AspNetCore.Annotations;
  11. namespace AipGateway.API.Controllers
  12. {
  13. [ApiController]
  14. [Route("v1/aip-api/file")]
  15. [Produces("application/json")]
  16. public class ApiFileController : BaseModule
  17. {
  18. private readonly ILogger<ApiFileController> _log;
  19. private readonly IApiFileService _apiFileService;
  20. public ApiFileController(
  21. ILogger<ApiFileController> logger,
  22. IUnitOfWork unitOfWork,
  23. IWebHostEnvironment webHostEnvironment,
  24. IApiFileService apiFileService)
  25. : base(unitOfWork, webHostEnvironment)
  26. {
  27. _log = logger;
  28. _apiFileService = apiFileService;
  29. _log.LogError("ooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooo: ApiFileController");
  30. }
  31. [HttpPost("info")]
  32. [SwaggerResponse(200, type: typeof(SuccessResponseModel<ResponseInfo>))]
  33. public async Task<IResult> GetInfo([FromBody] RequestFile req)
  34. {
  35. GlobalConstants.SetAuthorization(HttpContext, GlobalConstants.API_FILE_INFO, req.apiKey);
  36. req.apiGuid = GlobalConstants.GetApiGuid(HttpContext);
  37. HttpContext.Items[GlobalConstants.API_REQUEST] = (RequestBase)req;
  38. return await CreateResponseAsync(async () =>
  39. {
  40. int authError = ContainerService.ValidationApiAuthorization(HttpContext, req.apiKey);
  41. if (authError != 0)
  42. {
  43. throw ContainerService.CreateValidationApiAuthorizationAsync(HttpContext, authError);
  44. }
  45. var response = await _apiFileService.GetInfo(req);
  46. var data = new SuccessResponseModel<ResponseInfo>()
  47. {
  48. Message = GlobalConstants.API_RESULT_SUCCESS,
  49. Result = response,
  50. StatusCode = System.Net.HttpStatusCode.OK,
  51. Success = true
  52. };
  53. var result = Results.Ok(data);
  54. HttpContext.Items.Add(GlobalConstants.API_RESULT, (ResponseBase)data.Result);
  55. return result;
  56. });
  57. }
  58. [HttpPost("set-label")]
  59. [SwaggerResponse(200, type: typeof(SuccessResponseModel<ResponseFile>))]
  60. public async Task<IResult> SetLabel([FromBody] RequestFileSet req)
  61. {
  62. GlobalConstants.SetAuthorization(HttpContext, GlobalConstants.API_FILE_SET_LABEL, req.apiKey);
  63. req.apiGuid = GlobalConstants.GetApiGuid(HttpContext);
  64. HttpContext.Items[GlobalConstants.API_REQUEST] = (RequestBase)req;
  65. return await CreateResponseAsync(async () =>
  66. {
  67. int authError = ContainerService.ValidationApiAuthorization(HttpContext, req.apiKey);
  68. if (authError != 0)
  69. {
  70. throw ContainerService.CreateValidationApiAuthorizationAsync(HttpContext, authError);
  71. }
  72. var response = await _apiFileService.SetLabel(req);
  73. var data = new SuccessResponseModel<ResponseFile>()
  74. {
  75. Message = GlobalConstants.API_RESULT_SUCCESS,
  76. Result = response,
  77. StatusCode = System.Net.HttpStatusCode.OK,
  78. Success = true
  79. };
  80. var result = Results.Ok(data);
  81. HttpContext.Items.Add(GlobalConstants.API_RESULT, (ResponseBase)data.Result);
  82. return result;
  83. });
  84. }
  85. [HttpPost("delete-label")]
  86. [SwaggerResponse(200, type: typeof(SuccessResponseModel<ResponseFile>))]
  87. public async Task<IResult> DelLabel([FromBody] RequestFileDel req)
  88. {
  89. GlobalConstants.SetAuthorization(HttpContext, GlobalConstants.API_FILE_DELETE_LABEL, req.apiKey);
  90. req.apiGuid = GlobalConstants.GetApiGuid(HttpContext);
  91. HttpContext.Items[GlobalConstants.API_REQUEST] = (RequestBase)req;
  92. return await CreateResponseAsync(async () =>
  93. {
  94. int authError = ContainerService.ValidationApiAuthorization(HttpContext, req.apiKey);
  95. if (authError != 0)
  96. {
  97. throw ContainerService.CreateValidationApiAuthorizationAsync(HttpContext, authError);
  98. }
  99. var response = await _apiFileService.DelLabel(req);
  100. var data = new SuccessResponseModel<ResponseFile>()
  101. {
  102. Message = GlobalConstants.API_RESULT_SUCCESS,
  103. Result = response,
  104. StatusCode = System.Net.HttpStatusCode.OK,
  105. Success = true
  106. };
  107. var result = Results.Ok(data);
  108. HttpContext.Items.Add(GlobalConstants.API_RESULT, (ResponseBase)data.Result);
  109. return result;
  110. });
  111. }
  112. [HttpPost("set-protection")]
  113. [SwaggerResponse(200, type: typeof(SuccessResponseModel<ResponseFile>))]
  114. public async Task<IResult> SetProtection([FromBody] RequestFileSet req)
  115. {
  116. GlobalConstants.SetAuthorization(HttpContext, GlobalConstants.API_FILE_SET_PROTECTION, req.apiKey);
  117. req.apiGuid = GlobalConstants.GetApiGuid(HttpContext);
  118. HttpContext.Items[GlobalConstants.API_REQUEST] = (RequestBase)req;
  119. return await CreateResponseAsync(async () =>
  120. {
  121. int authError = ContainerService.ValidationApiAuthorization(HttpContext, req.apiKey);
  122. if (authError != 0)
  123. {
  124. throw ContainerService.CreateValidationApiAuthorizationAsync(HttpContext, authError);
  125. }
  126. var response = await _apiFileService.SetProtection(req);
  127. var data = new SuccessResponseModel<ResponseFile>()
  128. {
  129. Message = GlobalConstants.API_RESULT_SUCCESS,
  130. Result = response,
  131. StatusCode = System.Net.HttpStatusCode.OK,
  132. Success = true
  133. };
  134. var result = Results.Ok(data);
  135. HttpContext.Items.Add(GlobalConstants.API_RESULT, (ResponseBase)data.Result);
  136. return result;
  137. });
  138. }
  139. [HttpPost("delete-protection")]
  140. [SwaggerResponse(200, type: typeof(SuccessResponseModel<ResponseFile>))]
  141. public async Task<IResult> DelProtection([FromBody] RequestFileDel req)
  142. {
  143. GlobalConstants.SetAuthorization(HttpContext, GlobalConstants.API_FILE_DELETE_PROTECTIN, req.apiKey);
  144. req.apiGuid = GlobalConstants.GetApiGuid(HttpContext);
  145. HttpContext.Items[GlobalConstants.API_REQUEST] = (RequestBase)req;
  146. return await CreateResponseAsync(async () =>
  147. {
  148. int authError = ContainerService.ValidationApiAuthorization(HttpContext, req.apiKey);
  149. if (authError != 0)
  150. {
  151. throw ContainerService.CreateValidationApiAuthorizationAsync(HttpContext, authError);
  152. }
  153. var response = await _apiFileService.DelProtection(req);
  154. var data = new SuccessResponseModel<ResponseFile>()
  155. {
  156. Message = GlobalConstants.API_RESULT_SUCCESS,
  157. Result = response,
  158. StatusCode = System.Net.HttpStatusCode.OK,
  159. Success = true
  160. };
  161. var result = Results.Ok(data);
  162. HttpContext.Items.Add(GlobalConstants.API_RESULT, (ResponseBase)data.Result);
  163. return result;
  164. });
  165. }
  166. [HttpPost("set-label-protection")]
  167. [SwaggerResponse(200, type: typeof(SuccessResponseModel<ResponseFile>))]
  168. public async Task<IResult> SetLabelProtection([FromBody] RequestFileAllSet req)
  169. {
  170. GlobalConstants.SetAuthorization(HttpContext, GlobalConstants.API_FILE_SET_LABEL_PROTECTION, req.apiKey);
  171. req.apiGuid = GlobalConstants.GetApiGuid(HttpContext);
  172. HttpContext.Items[GlobalConstants.API_REQUEST] = (RequestBase)req;
  173. return await CreateResponseAsync(async () =>
  174. {
  175. int authError = ContainerService.ValidationApiAuthorization(HttpContext, req.apiKey);
  176. if (authError != 0)
  177. {
  178. throw ContainerService.CreateValidationApiAuthorizationAsync(HttpContext, authError);
  179. }
  180. var response = await _apiFileService.SetLabelProtection(req);
  181. var data = new SuccessResponseModel<ResponseFile>()
  182. {
  183. Message = GlobalConstants.API_RESULT_SUCCESS,
  184. Result = response,
  185. StatusCode = System.Net.HttpStatusCode.OK,
  186. Success = true
  187. };
  188. var result = Results.Ok(data);
  189. HttpContext.Items.Add(GlobalConstants.API_RESULT, (ResponseBase)data.Result);
  190. return result;
  191. });
  192. }
  193. [HttpPost("delete-label-protection")]
  194. [SwaggerResponse(200, type: typeof(SuccessResponseModel<ResponseFile>))]
  195. public async Task<IResult> DelLabelProtection([FromBody] RequestFileDel req)
  196. {
  197. GlobalConstants.SetAuthorization(HttpContext, GlobalConstants.API_FILE_DELETE_LABEL_PROTECTION, req.apiKey);
  198. req.apiGuid = GlobalConstants.GetApiGuid(HttpContext);
  199. HttpContext.Items[GlobalConstants.API_REQUEST] = (RequestBase)req;
  200. return await CreateResponseAsync(async () =>
  201. {
  202. int authError = ContainerService.ValidationApiAuthorization(HttpContext, req.apiKey);
  203. if (authError != 0)
  204. {
  205. throw ContainerService.CreateValidationApiAuthorizationAsync(HttpContext, authError);
  206. }
  207. var response = await _apiFileService.DelLabelProtection(req);
  208. var data = new SuccessResponseModel<ResponseFile>()
  209. {
  210. Message = GlobalConstants.API_RESULT_SUCCESS,
  211. Result = response,
  212. StatusCode = System.Net.HttpStatusCode.OK,
  213. Success = true
  214. };
  215. var result = Results.Ok(data);
  216. HttpContext.Items.Add(GlobalConstants.API_RESULT, (ResponseBase)data.Result);
  217. return result;
  218. });
  219. }
  220. }
  221. }