diff --git a/PARR.API/Contracts/V1/Requests/Queries/RobinQuery.cs b/PARR.API/Contracts/V1/Requests/Queries/RobinQuery.cs new file mode 100644 index 00000000..11d92eb0 --- /dev/null +++ b/PARR.API/Contracts/V1/Requests/Queries/RobinQuery.cs @@ -0,0 +1,10 @@ +namespace PARR.API.Contracts.V1.Requests.Queries +{ + public class RobinQuery + { + /// + /// Вернуть все значения string. Json в один уровень для Robin. + /// + public bool? String { get; set; } + } +} diff --git a/PARR.API/Contracts/V1/Responses/TemplateResponse.cs b/PARR.API/Contracts/V1/Responses/TemplateResponse.cs index 8b8f5813..7ee850ac 100644 --- a/PARR.API/Contracts/V1/Responses/TemplateResponse.cs +++ b/PARR.API/Contracts/V1/Responses/TemplateResponse.cs @@ -24,4 +24,29 @@ public Guid ParrTemplateId { get; set; } public int StatusCode { get; set; } } + + public class TemplateStringResponse + { + public required string Name { get; set; } + public required string IsActive { get; set; } + public required string Assignment { get; set; } + public required string Title { get; set; } + public required string Category { get; set; } + public required string Branch { get; set; } + public required string SlaInterval { get; set; } + public required string ConfigurationItem { get; set; } + public required string ContactName { get; set; } + public required string Description { get; set; } + public required string ResolutionCode { get; set; } + public required string Resolution { get; set; } + public required string RzdMTNKprocess { get; set; } + public required string RzdMTNKsubprocess { get; set; } + public required string RzdMTNKtnk { get; set; } + public required string RzdMTNKjob { get; set; } + public required string Assignee { get; set; } + + + public required string ParrTemplateId { get; set; } + public required string StatusCode { get; set; } + } } diff --git a/PARR.API/Controllers/V1/TemplateController.cs b/PARR.API/Controllers/V1/TemplateController.cs index e1abd2cc..459d6ff9 100644 --- a/PARR.API/Controllers/V1/TemplateController.cs +++ b/PARR.API/Controllers/V1/TemplateController.cs @@ -95,7 +95,7 @@ namespace PARR.API.Controllers.V1 /// /// [HttpGet(ApiRoutes.Template.GetByStatusCode)] - public async Task GetByStatus([FromRoute] int statusCode) + public async Task GetByStatus([FromRoute] int statusCode, [FromQuery] RobinQuery query) { var template = await templateService.Get().FirstOrDefaultAsync(t => t.StatusCode == statusCode); @@ -104,6 +104,12 @@ namespace PARR.API.Controllers.V1 var response = mapper.Map(template); + if (query.String == true) + { + var stringResponse = mapper.Map(response); + return Ok(stringResponse); + } + return Ok(new Response(response, true)); } diff --git a/PARR.API/MappingProfiles/DomainToResponseProfile.cs b/PARR.API/MappingProfiles/DomainToResponseProfile.cs index 16528321..63ec5231 100644 --- a/PARR.API/MappingProfiles/DomainToResponseProfile.cs +++ b/PARR.API/MappingProfiles/DomainToResponseProfile.cs @@ -43,6 +43,8 @@ namespace PARR.API.MappingProfiles .ForMember(d => d.RzdMTNKjob, o => o.MapFrom(s => s.Work)) .ForMember(d => d.Assignee, o => o.MapFrom(s => s.Worker)); + CreateMap(); + CreateMap(); }