From 80ece823caa9a899031a882a1df036f23ef9f23e Mon Sep 17 00:00:00 2001 From: Mikhail Trubnikov Date: Fri, 19 Dec 2025 14:06:44 +1000 Subject: [PATCH] =?UTF-8?q?feat(api):=20SyncTaskController,=20=D0=BE=D0=B1?= =?UTF-8?q?=D0=BD=D0=BE=D0=B2=D0=BB=D0=B5=D0=BD=20=D0=BC=D0=B5=D1=82=D0=BE?= =?UTF-8?q?=D0=B4=20=D0=B4=D0=BB=D1=8F=20=D0=BE=D1=82=D0=BF=D1=80=D0=B0?= =?UTF-8?q?=D0=B2=D0=BA=D0=B8=20=D0=B7=D0=B0=D0=B4=D0=B0=D0=BD=D0=B8=D1=8F?= =?UTF-8?q?=20=D0=B2=20matcher.=20=D0=A2=D0=B5=D0=BF=D0=B5=D1=80=D1=8C=20?= =?UTF-8?q?=D0=BC=D0=B5=D1=82=D0=BE=D0=B4=20=D1=83=D0=BD=D0=B8=D0=B2=D0=B5?= =?UTF-8?q?=D1=80=D1=81=D0=B0=D0=BB=D1=8C=D0=BD=D1=8B=D0=B9.?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- PARR.API/Contracts/V1/ApiRoutes.cs | 10 ++++++--- .../Requests/MatchTemplatesForJobRequest.cs | 9 -------- .../V1/Requests/MatchTemplatesRequest.cs | 13 ++++++++++++ PARR.API/Controllers/V1/SyncTaskController.cs | 21 +++++++++++-------- 4 files changed, 32 insertions(+), 21 deletions(-) delete mode 100644 PARR.API/Contracts/V1/Requests/MatchTemplatesForJobRequest.cs create mode 100644 PARR.API/Contracts/V1/Requests/MatchTemplatesRequest.cs diff --git a/PARR.API/Contracts/V1/ApiRoutes.cs b/PARR.API/Contracts/V1/ApiRoutes.cs index dc64907f..da7957e3 100644 --- a/PARR.API/Contracts/V1/ApiRoutes.cs +++ b/PARR.API/Contracts/V1/ApiRoutes.cs @@ -492,12 +492,16 @@ #endregion #region SyncTask + public static class SyncTask { - public const string MatchTemplatesForJob = Base + "/sync-tasks/jobs/{jobId}/match-templates"; - public const string MatchTemplatesForJobGroup = Base + "/sync-tasks/job-groups/{jobGroupId}/match-templates"; - public const string MatchTemplatesForTemplate = Base + "/sync-tasks/templates/{templateId}/match-templates"; + public const string MatchTemplates = Base + "/sync-tasks/match-templates"; + + //public const string MatchTemplatesForJob = Base + "/sync-tasks/jobs/{jobId}/match-templates"; + //public const string MatchTemplatesForJobGroup = Base + "/sync-tasks/job-groups/{jobGroupId}/match-templates"; + //public const string MatchTemplatesForTemplate = Base + "/sync-tasks/templates/{templateId}/match-templates"; } + #endregion diff --git a/PARR.API/Contracts/V1/Requests/MatchTemplatesForJobRequest.cs b/PARR.API/Contracts/V1/Requests/MatchTemplatesForJobRequest.cs deleted file mode 100644 index 4623220d..00000000 --- a/PARR.API/Contracts/V1/Requests/MatchTemplatesForJobRequest.cs +++ /dev/null @@ -1,9 +0,0 @@ -using PARR.Constants; - -namespace PARR.API.Contracts.V1.Requests -{ - public class MatchTemplatesForJobRequest - { - public TemplateMatcherActionEnum Action { get; set; } - } -} diff --git a/PARR.API/Contracts/V1/Requests/MatchTemplatesRequest.cs b/PARR.API/Contracts/V1/Requests/MatchTemplatesRequest.cs new file mode 100644 index 00000000..b59cfd0c --- /dev/null +++ b/PARR.API/Contracts/V1/Requests/MatchTemplatesRequest.cs @@ -0,0 +1,13 @@ +using PARR.Constants; + +namespace PARR.API.Contracts.V1.Requests +{ + public class MatchTemplatesRequest + { + public Guid ObjectId { get; set; } + + public SyncTaskEntityTypeEnum EntityType { get; set; } + + public TemplateMatcherActionEnum Action { get; set; } + } +} diff --git a/PARR.API/Controllers/V1/SyncTaskController.cs b/PARR.API/Controllers/V1/SyncTaskController.cs index beaaa3d3..f5718a63 100644 --- a/PARR.API/Controllers/V1/SyncTaskController.cs +++ b/PARR.API/Controllers/V1/SyncTaskController.cs @@ -3,7 +3,6 @@ using PARR.API.Contracts.V1; using PARR.API.Contracts.V1.Requests; using PARR.API.Contracts.V1.Responses.Base; using PARR.API.Controllers.V1.Base; -using PARR.API.Services.Implementations; using PARR.API.Services.Interfaces; using PARR.API.Settings; using PARR.BLL.Domain.Mq; @@ -38,22 +37,26 @@ namespace PARR.API.Controllers.V1 } /// - /// Сопоставить текущие шаблоны для Job, создать недостущие шаблоны + /// Отправить задание в Matcher /// - [HttpPost(ApiRoutes.SyncTask.MatchTemplatesForJob)] - public async Task MatchTemplatesForJob([FromRoute] Guid jobId, [FromBody] MatchTemplatesForJobRequest request) + [HttpPost(ApiRoutes.SyncTask.MatchTemplates)] + public async Task MatchTemplatesForJob([FromBody] MatchTemplatesRequest request) { + //todo: Валидатор! Валидатор то забыли!!! + + //24b3529a-dd43-444a-b10e-ac54fefd046a var matchTemplateTask = new TemplateMatcherMq { - Id = jobId, - EntityType = Constants.SyncTaskEntityTypeEnum.Job, + Id = request.ObjectId, + // EntityType = Constants.SyncTaskEntityTypeEnum.Job, + EntityType = request.EntityType, Action = request.Action, Initiator = new HistoryInitiator { InitiatorIp = clientService.GetClientIp()?.ToString(), InitiatorParrComponentId = ParrComponentsEnum.Api, - InitiatorComment = $"Отправлен запрос из GUI, action: {request.Action.ToString()}" + InitiatorComment = $"Отправлен запрос из GUI, action: {request.Action.ToString()}, entityType: {request.EntityType.ToString()}" } }; @@ -66,9 +69,9 @@ namespace PARR.API.Controllers.V1 if (!result.IsSuccess) return BadRequest(new Response(false, new List { new ErrorModel { Message = "Ошибка отправки сообщения в очередь" } })); - var createdUri = uriService.GetAllUri(ApiRoutes.SyncTask.MatchTemplatesForJob); + //var createdUri = uriService.GetAllUri(ApiRoutes.SyncTask.MatchTemplatesForJob); - return Created(createdUri, new Response(null, true, new List(), "Отправлен запрос на сопоставление шаблонов и Job")); + return Created("", new Response(null, true, new List(), "Отправлен запрос на сопоставление шаблонов")); } } }