feat: migrate direct tenant content and learning endpoints

This commit is contained in:
xiong
2026-07-26 17:57:03 +08:00
parent 1d7e09b1f0
commit 91a4162908
18 changed files with 4079 additions and 0 deletions

View File

@@ -166,6 +166,45 @@ public sealed class TenantContentController(
cancellationToken));
}
[HttpGet("assets/access-events")]
[EndpointSummary("查询资产访问审计事件")]
[ProducesResponseType<CatalogList<ContentAssetAccessEventItem>>(StatusCodes.Status200OK)]
public async Task<ActionResult<CatalogList<ContentAssetAccessEventItem>>> GetAssetAccessEvents(
[FromQuery] AssetEventQueryDto query,
CancellationToken cancellationToken)
{
return Ok(await assetManagementService.GetAccessEventsAsync(
ResolveActor(),
query.ToFilter(),
cancellationToken));
}
[HttpGet("assets/security-scan-events")]
[EndpointSummary("查询资产安全扫描事件")]
[ProducesResponseType<CatalogList<ContentAssetSecurityScanEventItem>>(StatusCodes.Status200OK)]
public async Task<ActionResult<CatalogList<ContentAssetSecurityScanEventItem>>> GetAssetSecurityScanEvents(
[FromQuery] AssetEventQueryDto query,
CancellationToken cancellationToken)
{
return Ok(await assetManagementService.GetSecurityScanEventsAsync(
ResolveActor(),
query.ToFilter(),
cancellationToken));
}
[HttpPut("assets")]
[EndpointSummary("新增或更新内容资产")]
[ProducesResponseType<ContentManagementResult<ContentAssetManagementItem>>(StatusCodes.Status200OK)]
public async Task<ActionResult<ContentManagementResult<ContentAssetManagementItem>>> UpsertAsset(
UpsertAssetDto request,
CancellationToken cancellationToken)
{
return Ok(await assetManagementService.UpsertAssetAsync(
ResolveActor(),
request.ToCommand(),
cancellationToken));
}
[HttpPost("assets/uploads/sign")]
[EndpointSummary("创建资产上传签名")]
[ProducesResponseType<AssetUploadSignResult>(StatusCodes.Status200OK)]
@@ -196,6 +235,32 @@ public sealed class TenantContentController(
cancellationToken));
}
[HttpPost("assets/sign-download")]
[EndpointSummary("签发管理侧资产下载地址")]
[ProducesResponseType<AssetManagementSignedAccessResult>(StatusCodes.Status200OK)]
public async Task<ActionResult<AssetManagementSignedAccessResult>> SignAssetDownload(
AssetAccessSignDto request,
CancellationToken cancellationToken)
{
return Ok(await assetManagementService.SignDownloadAsync(
ResolveActor(),
request.ToCommand(),
cancellationToken));
}
[HttpPost("assets/sign-preview")]
[EndpointSummary("签发管理侧资产预览地址")]
[ProducesResponseType<AssetManagementSignedAccessResult>(StatusCodes.Status200OK)]
public async Task<ActionResult<AssetManagementSignedAccessResult>> SignAssetPreview(
AssetAccessSignDto request,
CancellationToken cancellationToken)
{
return Ok(await assetManagementService.SignPreviewAsync(
ResolveActor(),
request.ToCommand(),
cancellationToken));
}
[HttpGet("import-jobs")]
[EndpointSummary("查询内容导入任务")]
[ProducesResponseType<CatalogList<ContentImportJobItem>>(StatusCodes.Status200OK)]