Merge branch 'template-generator' into dev

This commit is contained in:
Mikhail Trubnikov
2023-09-20 11:59:54 +10:00
6 changed files with 96 additions and 6 deletions

View File

@@ -68,6 +68,11 @@
public const string GetAll = Base + "/template-statuses/";
}
public static class GeneratorTemplate
{
public const string Create = Base + "/generator-templates/";
}
//public static class Layer
//{

View File

@@ -0,0 +1,25 @@
namespace PARR.API.Contracts.V1.Requests
{
public class GeneratorTemplateRequest
{
/// <summary>
/// Id работы
/// </summary>
public Guid WorkId { get; set; }
/// <summary>
/// Id приложения
/// </summary>
public Guid ApplicationId { get; set; }
/// <summary>
/// Действие: create, deactivate
/// </summary>
public required string Action { get; set; }
/// <summary>
/// ЭК, принимает регулярное выражение. Например: *, ВРТ-*-ДВС
/// </summary>
public required string Ek { get; set; }
}
}

View File

@@ -0,0 +1,37 @@
using FluentValidation;
using Microsoft.AspNetCore.Mvc;
using PARR.API.Contracts.V1;
using PARR.API.Contracts.V1.Requests;
using PARR.API.Contracts.V1.Responses.Base;
using PARR.API.Controllers.V1.Base;
namespace PARR.API.Controllers.V1
{
public class GeneratorTemplateController : BaseApiController
{
private readonly IValidator<GeneratorTemplateRequest> validator;
public GeneratorTemplateController(
IValidator<GeneratorTemplateRequest> validator
)
{
this.validator = validator;
}
/// <summary>
/// Запрос на генерацию шаблонов
/// </summary>
/// <returns></returns>
[HttpPost(ApiRoutes.GeneratorTemplate.Create)]
public async Task<IActionResult> Create([FromBody] GeneratorTemplateRequest request)
{
var resultValidate = await validator.ValidateAsync(request);
if (!resultValidate.IsValid)
return BadRequest(new Response(resultValidate.Errors));
return Ok();
}
}
}

View File

@@ -1,6 +0,0 @@
namespace PARR.API.Validators
{
public class _
{
}
}

View File

@@ -0,0 +1,18 @@
using FluentValidation;
using PARR.API.Contracts.V1.Requests;
using PARR.BLL.Contracts;
namespace PARR.API.Validators
{
public class GeneratorTemplateRequestValidator : AbstractValidator<GeneratorTemplateRequest>
{
public GeneratorTemplateRequestValidator()
{
RuleFor(t => t.WorkId).NotEmpty();
RuleFor(t => t.ApplicationId).NotEmpty();
RuleFor(t => t.Ek).NotEmpty();
RuleFor(t => t.Action).Must(t => t.ToLower() == GenerateTemplateActionsEnum.create.ToString() || t.ToLower() == GenerateTemplateActionsEnum.deactivate.ToString())
.WithMessage($"Допустимые значения: {GenerateTemplateActionsEnum.create}, {GenerateTemplateActionsEnum.deactivate}");
}
}
}

View File

@@ -0,0 +1,11 @@
namespace PARR.BLL.Contracts
{
/// <summary>
/// Действия при генерации шаблонов
/// </summary>
public enum GenerateTemplateActionsEnum
{
create,
deactivate
}
}