Browse Source

Assets.

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

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

@ -68,7 +68,7 @@ namespace Squidex.Areas.Api.Controllers.Assets.Models
/// </summary> /// </summary>
public long Version { get; set; } 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 var response = new AssetCreatedDto
{ {

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

@ -8,7 +8,9 @@
using System; using System;
using System.ComponentModel.DataAnnotations; using System.ComponentModel.DataAnnotations;
using NodaTime; using NodaTime;
using Squidex.Domain.Apps.Entities.Assets;
using Squidex.Infrastructure; using Squidex.Infrastructure;
using Squidex.Infrastructure.Reflection;
namespace Squidex.Areas.Api.Controllers.Assets.Models namespace Squidex.Areas.Api.Controllers.Assets.Models
{ {
@ -88,5 +90,10 @@ namespace Squidex.Areas.Api.Controllers.Assets.Models
/// The version of the asset. /// The version of the asset.
/// </summary> /// </summary>
public long Version { get; set; } 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. // All rights reserved. Licensed under the MIT license.
// ========================================================================== // ==========================================================================
using System;
using System.ComponentModel.DataAnnotations; using System.ComponentModel.DataAnnotations;
using Squidex.Domain.Apps.Entities.Assets.Commands;
using Squidex.Infrastructure.Reflection;
namespace Squidex.Areas.Api.Controllers.Assets.Models namespace Squidex.Areas.Api.Controllers.Assets.Models
{ {
@ -16,5 +19,10 @@ namespace Squidex.Areas.Api.Controllers.Assets.Models
/// </summary> /// </summary>
[Required] [Required]
public string FileName { get; set; } 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. // 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 namespace Squidex.Areas.Api.Controllers.Assets.Models
{ {
public sealed class AssetsDto public sealed class AssetsDto
{ {
/// <summary> /// <summary>
/// The total number of assets. /// The assets.
/// </summary> /// </summary>
public long Total { get; set; } [Required]
public AssetDto[] Items { get; set; }
/// <summary> /// <summary>
/// The assets. /// The total number of assets.
/// </summary> /// </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