AdoS8DimensionController.cs 1.6 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546
  1. using Admin.NET.Plugin.AiDOP.Infrastructure.S8;
  2. using Admin.NET.Plugin.AiDOP.Const.S8;
  3. using Admin.NET.Plugin.AiDOP.Infrastructure;
  4. using Admin.NET.Plugin.AiDOP.Service.S8;
  5. namespace Admin.NET.Plugin.AiDOP.Controllers.S8;
  6. [ApiController]
  7. [Route("api/aidop/s8/config")]
  8. [NonUnify]
  9. public class AdoS8DimensionController : ControllerBase
  10. {
  11. private readonly S8DimensionService _svc;
  12. private readonly S8TrustedScopeResolver _scope;
  13. public AdoS8DimensionController(S8DimensionService svc, S8TrustedScopeResolver scope)
  14. {
  15. _svc = svc;
  16. _scope = scope;
  17. }
  18. [HttpGet("dimensions")]
  19. [S8Permission(S8PermissionCatalog.ConfigRead)]
  20. public async Task<IActionResult> GetDimensionsAsync(
  21. [FromQuery] long tenantId = 1,
  22. [FromQuery] long factoryId = 1)
  23. {
  24. // Compatibility-only. Security scope is resolved server-side.
  25. _ = tenantId; _ = factoryId;
  26. var scope = await _scope.ResolveAsync();
  27. return Ok(await _svc.GetDimensionsAsync(scope.TenantId, scope.FactoryId));
  28. }
  29. [HttpGet("dimension-nodes")]
  30. [S8Permission(S8PermissionCatalog.ConfigRead)]
  31. public async Task<IActionResult> GetDimensionNodesAsync(
  32. [FromQuery] long tenantId = 1,
  33. [FromQuery] long factoryId = 1,
  34. [FromQuery] string? dimensionCode = null)
  35. {
  36. // Compatibility-only. Security scope is resolved server-side.
  37. _ = tenantId; _ = factoryId;
  38. var scope = await _scope.ResolveAsync();
  39. return Ok(await _svc.GetDimensionNodesAsync(scope.TenantId, scope.FactoryId, dimensionCode));
  40. }
  41. }