Browse Source

1) Boolean FIeld

2) Publishing
pull/1/head
Sebastian Stehle 9 years ago
parent
commit
dd00d5119b
  1. 38
      src/Squidex/Controllers/Api/Schemas/Models/BooleanFieldPropertiesDto.cs
  2. 11
      src/Squidex/Controllers/Api/Schemas/Models/Converters/SchemaConverter.cs
  3. 5
      src/Squidex/Controllers/Api/Schemas/Models/SchemaDetailsDto.cs
  4. 5
      src/Squidex/Controllers/Api/Schemas/Models/SchemaDto.cs
  5. 36
      src/Squidex/Controllers/Api/Schemas/SchemasController.cs

38
src/Squidex/Controllers/Api/Schemas/Models/BooleanFieldPropertiesDto.cs

@ -0,0 +1,38 @@
// ==========================================================================
// BooleanFieldPropertiesDto.cs
// Squidex Headless CMS
// ==========================================================================
// Copyright (c) Squidex Group
// All rights reserved.
// ==========================================================================
using Newtonsoft.Json;
using Newtonsoft.Json.Converters;
using NJsonSchema.Annotations;
using Squidex.Core.Schemas;
using Squidex.Infrastructure.Reflection;
namespace Squidex.Controllers.Api.Schemas.Models
{
[JsonSchema("boolean")]
public sealed class BooleanFieldPropertiesDto : FieldPropertiesDto
{
/// <summary>
/// The default value for the field value.
/// </summary>
public bool? DefaultValue { get; set; }
/// <summary>
/// The editor that is used to manage this field.
/// </summary>
[JsonConverter(typeof(StringEnumConverter))]
public BooleanFieldEditor Editor { get; set; }
public override FieldProperties ToProperties()
{
var result = SimpleMapper.Map(this, new BooleanFieldProperties());
return result;
}
}
}

11
src/Squidex/Controllers/Api/Schemas/Models/Converters/SchemaConverter.cs

@ -26,6 +26,10 @@ namespace Squidex.Controllers.Api.Schemas.Models.Converters
{
typeof(StringFieldProperties),
p => Convert((StringFieldProperties)p)
},
{
typeof(BooleanFieldProperties),
p => Convert((BooleanFieldProperties)p)
}
};
@ -52,6 +56,13 @@ namespace Squidex.Controllers.Api.Schemas.Models.Converters
return dto;
}
private static FieldPropertiesDto Convert(BooleanFieldProperties source)
{
var result = SimpleMapper.Map(source, new BooleanFieldPropertiesDto());
return result;
}
private static FieldPropertiesDto Convert(StringFieldProperties source)
{
var result = SimpleMapper.Map(source, new StringFieldPropertiesDto());

5
src/Squidex/Controllers/Api/Schemas/Models/SchemaDetailsDto.cs

@ -27,6 +27,11 @@ namespace Squidex.Controllers.Api.Schemas.Models
[RegularExpression("^[a-z0-9]+(\\-[a-z0-9]+)*$")]
public string Name { get; set; }
/// <summary>
/// Indicates if the schema is published.
/// </summary>
public bool IsPublished { get; set; }
/// <summary>
/// The list of fields.
/// </summary>

5
src/Squidex/Controllers/Api/Schemas/Models/SchemaDto.cs

@ -26,6 +26,11 @@ namespace Squidex.Controllers.Api.Schemas.Models
[RegularExpression("^[a-z0-9]+(\\-[a-z0-9]+)*$")]
public string Name { get; set; }
/// <summary>
/// Indicates if the schema is published.
/// </summary>
public bool IsPublished { get; set; }
/// <summary>
/// The user that has created the schema.
/// </summary>

36
src/Squidex/Controllers/Api/Schemas/SchemasController.cs

@ -126,6 +126,42 @@ namespace Squidex.Controllers.Api.Schemas
return NoContent();
}
/// <summary>
/// Publishs a schema.
/// </summary>
/// <param name="app">The app where the schema is a part of.</param>
/// <param name="name">The name of the schema to publish.</param>
/// <returns>
/// 400 => Schema is already published.
/// 204 => Schema has been deleted.
/// </returns>
[HttpPut]
[Route("apps/{app}/schemas/{name}/publish")]
public async Task<IActionResult> PublishSchema(string app, string name)
{
await CommandBus.PublishAsync(new PublishSchema());
return NoContent();
}
/// <summary>
/// Unpublishs a schema.
/// </summary>
/// <param name="app">The app where the schema is a part of.</param>
/// <param name="name">The name of the schema to unpublish.</param>
/// <returns>
/// 400 => Schema is not published.
/// 204 => Schema has been deleted.
/// </returns>
[HttpPut]
[Route("apps/{app}/schemas/{name}/publish")]
public async Task<IActionResult> UnpublishSchema(string app, string name)
{
await CommandBus.PublishAsync(new UnpublishSchema());
return NoContent();
}
/// <summary>
/// Delete a schema.
/// </summary>

Loading…
Cancel
Save