Browse Source

Temp

pull/1/head
Sebastian Stehle 9 years ago
parent
commit
c254243b98
  1. 2
      src/PinkParrot/Modules/Api/EntityCreatedDto.cs
  2. 22
      src/PinkParrot/Modules/Api/ErrorDto.cs
  3. 5
      src/PinkParrot/Modules/Api/Schemas/SchemasController.cs
  4. 24
      src/pinkparrot_core/PinkParrot.Core/Schema/Json/FieldDto.cs
  5. 10
      src/pinkparrot_core/PinkParrot.Core/Schema/Json/SchemaDto.cs

2
src/PinkParrot/Modules/Api/EntityCreated.cs → src/PinkParrot/Modules/Api/EntityCreatedDto.cs

@ -11,7 +11,7 @@ using System.ComponentModel.DataAnnotations;
namespace PinkParrot.Modules.Api
{
public class EntityCreated
public class EntityCreatedDto
{
[Required]
public Guid Id { get; set; }

22
src/PinkParrot/Modules/Api/ErrorDto.cs

@ -0,0 +1,22 @@
// ==========================================================================
// ErrorDto.cs
// PinkParrot Headless CMS
// ==========================================================================
// Copyright (c) PinkParrot Group
// All rights reserved.
// ==========================================================================
using System.ComponentModel.DataAnnotations;
namespace PinkParrot.Modules.Api
{
public sealed class ErrorDto
{
[Required]
public string Message { get; set; }
public string[] Details { get; set; }
public int? StatusCode { get; set; }
}
}

5
src/PinkParrot/Modules/Api/Schemas/SchemasController.cs

@ -51,7 +51,6 @@ namespace PinkParrot.Modules.Api.Schemas
/// Gets the schema with the specified name.
/// </summary>
/// <param name="name">The name of the schema.</param>
/// <response code="200">Schema returned</response>
/// <response code="404">Schema not found</response>
[HttpGet]
[Route("schemas/{name}/")]
@ -81,14 +80,14 @@ namespace PinkParrot.Modules.Api.Schemas
[HttpPost]
[Route("schemas/")]
[SwaggerOperation(Tags = new[] { "Schemas" })]
[ProducesResponseType(typeof(EntityCreated), 201)]
[ProducesResponseType(typeof(EntityCreatedDto), 201)]
public async Task<ActionResult> Create([FromBody] ModelSchemaProperties schema)
{
var command = new CreateModelSchema { AggregateId = Guid.NewGuid(), Properties = schema };
await CommandBus.PublishAsync(command);
return CreatedAtAction("Query", new EntityCreated { Id = command.AggregateId });
return CreatedAtAction("Query", new EntityCreatedDto { Id = command.AggregateId });
}
/// <summary>

24
src/pinkparrot_core/PinkParrot.Core/Schema/Json/FieldDto.cs

@ -0,0 +1,24 @@
// ==========================================================================
// FieldDto.cs
// PinkParrot Headless CMS
// ==========================================================================
// Copyright (c) PinkParrot Group
// All rights reserved.
// ==========================================================================
namespace PinkParrot.Core.Schema.Json
{
public class FieldDto
{
public long Id { get; }
public ModelFieldProperties Properties { get; }
public FieldDto(long id, ModelFieldProperties properties)
{
Id = id;
Properties = properties;
}
}
}

10
src/pinkparrot_core/PinkParrot.Core/Schema/Json/SchemaDto.cs

@ -18,10 +18,10 @@ namespace PinkParrot.Core.Schema.Json
public class SchemaDto
{
private readonly ModelSchemaProperties properties;
private readonly ImmutableDictionary<long, ModelFieldProperties> fields;
private readonly ImmutableList<FieldDto> fields;
[Required]
public ImmutableDictionary<long, ModelFieldProperties> Fields
public ImmutableList<FieldDto> Fields
{
get { return fields; }
}
@ -32,7 +32,7 @@ namespace PinkParrot.Core.Schema.Json
get { return properties; }
}
public SchemaDto(ModelSchemaProperties properties, ImmutableDictionary<long, ModelFieldProperties> fields)
public SchemaDto(ModelSchemaProperties properties, ImmutableList<FieldDto> fields)
{
Guard.NotNull(fields, nameof(fields));
Guard.NotNull(properties, nameof(properties));
@ -46,7 +46,7 @@ namespace PinkParrot.Core.Schema.Json
{
Guard.NotNull(schema, nameof(schema));
var fields = schema.Fields.ToDictionary(t => t.Key, t => t.Value.RawProperties).ToImmutableDictionary();
var fields = schema.Fields.Select(kvp => new FieldDto(kvp.Key, kvp.Value.RawProperties)).ToImmutableList();
return new SchemaDto(schema.Properties, fields);
}
@ -59,7 +59,7 @@ namespace PinkParrot.Core.Schema.Json
foreach (var field in fields)
{
schema = schema.AddField(field.Key, field.Value, factory);
schema = schema.AddField(field.Id, field.Properties, factory);
}
return schema;

Loading…
Cancel
Save