Browse Source

Assets.

pull/282/head
Sebastian Stehle 8 years ago
parent
commit
5d8dfaa634
  1. 15
      src/Squidex/Areas/Api/Controllers/Assets/AssetsController.cs
  2. 2
      src/Squidex/Areas/Api/Controllers/Assets/Models/AssetCreatedDto.cs
  3. 7
      src/Squidex/Areas/Api/Controllers/Assets/Models/AssetDto.cs
  4. 8
      src/Squidex/Areas/Api/Controllers/Assets/Models/AssetUpdateDto.cs
  5. 19
      src/Squidex/Areas/Api/Controllers/Assets/Models/AssetsDto.cs

15
src/Squidex/Areas/Api/Controllers/Assets/AssetsController.cs

@ -21,7 +21,6 @@ using Squidex.Domain.Apps.Entities.Assets.Repositories;
using Squidex.Infrastructure;
using Squidex.Infrastructure.Assets;
using Squidex.Infrastructure.Commands;
using Squidex.Infrastructure.Reflection;
using Squidex.Pipeline;
namespace Squidex.Areas.Api.Controllers.Assets
@ -93,11 +92,7 @@ namespace Squidex.Areas.Api.Controllers.Assets
await assetRepository.QueryAsync(App.Id, idsList) :
await assetRepository.QueryAsync(App.Id, Request.QueryString.ToString());
var response = new AssetsDto
{
Total = assets.Total,
Items = assets.Select(x => SimpleMapper.Map(x, new AssetDto { FileType = x.FileName.FileType() })).ToArray()
};
var response = AssetsDto.FromAssets(assets);
Response.Headers["Surrogate-Key"] = string.Join(" ", response.Items.Select(x => x.Id));
@ -127,7 +122,7 @@ namespace Squidex.Areas.Api.Controllers.Assets
return NotFound();
}
var response = SimpleMapper.Map(entity, new AssetDto { FileType = entity.FileName.FileType() });
var response = AssetDto.FromAsset(entity);
Response.Headers["ETag"] = entity.Version.ToString();
Response.Headers["Surrogate-Key"] = entity.Id.ToString();
@ -161,7 +156,7 @@ namespace Squidex.Areas.Api.Controllers.Assets
var context = await CommandBus.PublishAsync(command);
var result = context.Result<EntityCreatedResult<Guid>>();
var response = AssetCreatedDto.Create(command, result);
var response = AssetCreatedDto.FromCommand(command, result);
return StatusCode(201, response);
}
@ -217,9 +212,7 @@ namespace Squidex.Areas.Api.Controllers.Assets
[ApiCosts(1)]
public async Task<IActionResult> PutAsset(string app, Guid id, [FromBody] AssetUpdateDto request)
{
var command = SimpleMapper.Map(request, new RenameAsset { AssetId = id });
await CommandBus.PublishAsync(command);
await CommandBus.PublishAsync(request.ToCommand(id));
return NoContent();
}

2
src/Squidex/Areas/Api/Controllers/Assets/Models/AssetCreatedDto.cs

@ -68,7 +68,7 @@ namespace Squidex.Areas.Api.Controllers.Assets.Models
/// </summary>
public long Version { get; set; }
public static AssetCreatedDto Create(CreateAsset command, EntityCreatedResult<Guid> result)
public static AssetCreatedDto FromCommand(CreateAsset command, EntityCreatedResult<Guid> result)
{
var response = new AssetCreatedDto
{

7
src/Squidex/Areas/Api/Controllers/Assets/Models/AssetDto.cs

@ -8,7 +8,9 @@
using System;
using System.ComponentModel.DataAnnotations;
using NodaTime;
using Squidex.Domain.Apps.Entities.Assets;
using Squidex.Infrastructure;
using Squidex.Infrastructure.Reflection;
namespace Squidex.Areas.Api.Controllers.Assets.Models
{
@ -88,5 +90,10 @@ namespace Squidex.Areas.Api.Controllers.Assets.Models
/// The version of the asset.
/// </summary>
public long Version { get; set; }
public static AssetDto FromAsset(IAssetEntity asset)
{
return SimpleMapper.Map(asset, new AssetDto { FileType = asset.FileName.FileType() });
}
}
}

8
src/Squidex/Areas/Api/Controllers/Assets/Models/AssetUpdateDto.cs

@ -5,7 +5,10 @@
// All rights reserved. Licensed under the MIT license.
// ==========================================================================
using System;
using System.ComponentModel.DataAnnotations;
using Squidex.Domain.Apps.Entities.Assets.Commands;
using Squidex.Infrastructure.Reflection;
namespace Squidex.Areas.Api.Controllers.Assets.Models
{
@ -16,5 +19,10 @@ namespace Squidex.Areas.Api.Controllers.Assets.Models
/// </summary>
[Required]
public string FileName { get; set; }
public RenameAsset ToCommand(Guid id)
{
return SimpleMapper.Map(this, new RenameAsset { AssetId = id });
}
}
}

19
src/Squidex/Areas/Api/Controllers/Assets/Models/AssetsDto.cs

@ -5,18 +5,29 @@
// All rights reserved. Licensed under the MIT license.
// ==========================================================================
using System.ComponentModel.DataAnnotations;
using System.Linq;
using Squidex.Domain.Apps.Entities.Assets;
using Squidex.Infrastructure;
namespace Squidex.Areas.Api.Controllers.Assets.Models
{
public sealed class AssetsDto
{
/// <summary>
/// The total number of assets.
/// The assets.
/// </summary>
public long Total { get; set; }
[Required]
public AssetDto[] Items { get; set; }
/// <summary>
/// The assets.
/// The total number of assets.
/// </summary>
public AssetDto[] Items { get; set; }
public long Total { get; set; }
public static AssetsDto FromAssets(IResultList<IAssetEntity> assets)
{
return new AssetsDto { Total = assets.Total, Items = assets.Select(AssetDto.FromAsset).ToArray() };
}
}
}

Loading…
Cancel
Save