Refactor code structure for improved readability and maintainability
This commit is contained in:
@@ -1,10 +1,10 @@
|
||||
using AutoMapper;
|
||||
using AutoMapper;
|
||||
using Microsoft.AspNetCore.Mvc;
|
||||
using Microsoft.SelfService.Portal.Core.API.Dto.Service.Get;
|
||||
using Microsoft.SelfService.Portal.Core.API.Dto.Template.Add;
|
||||
using Microsoft.SelfService.Portal.Core.API.Dto.Template.Edit;
|
||||
using Microsoft.SelfService.Portal.Core.API.Dto.Template.Get;
|
||||
using Microsoft.SelfService.Portal.Core.API.Interfaces;
|
||||
using Microsoft.SelfService.Portal.Core.API.Models;
|
||||
using System.Reflection;
|
||||
|
||||
namespace Microsoft.SelfService.Portal.Core.API.Controllers
|
||||
{
|
||||
@@ -13,11 +13,16 @@ namespace Microsoft.SelfService.Portal.Core.API.Controllers
|
||||
public class TemplateController : Controller
|
||||
{
|
||||
private readonly ITemplateInterface _templateInterface;
|
||||
private readonly IQueueJobService _queueJobService;
|
||||
private readonly IMapper _mapper;
|
||||
|
||||
public TemplateController(ITemplateInterface templateInterface, IMapper mapper)
|
||||
public TemplateController(
|
||||
ITemplateInterface templateInterface,
|
||||
IQueueJobService queueJobService,
|
||||
IMapper mapper)
|
||||
{
|
||||
_templateInterface = templateInterface;
|
||||
_queueJobService = queueJobService;
|
||||
_mapper = mapper;
|
||||
}
|
||||
|
||||
@@ -35,6 +40,7 @@ namespace Microsoft.SelfService.Portal.Core.API.Controllers
|
||||
|
||||
[HttpGet("{Id}")]
|
||||
[ProducesResponseType(200, Type = typeof(TemplateModel))]
|
||||
[ProducesResponseType(404)]
|
||||
public IActionResult GetTemplateById(Guid Id)
|
||||
{
|
||||
if (!_templateInterface.CheckTemplateById(Id))
|
||||
@@ -47,5 +53,90 @@ namespace Microsoft.SelfService.Portal.Core.API.Controllers
|
||||
|
||||
return Ok(template);
|
||||
}
|
||||
|
||||
[HttpPost]
|
||||
[ProducesResponseType(200)]
|
||||
[ProducesResponseType(400)]
|
||||
public IActionResult AddTemplateById([FromBody] AddTemplateDto template)
|
||||
{
|
||||
if (template == null)
|
||||
return BadRequest(ModelState);
|
||||
|
||||
if (_templateInterface.CheckTemplateByName(template.Name))
|
||||
{
|
||||
ModelState.AddModelError("", "Template already exists");
|
||||
return StatusCode(422, ModelState);
|
||||
}
|
||||
|
||||
if (!ModelState.IsValid)
|
||||
return BadRequest(ModelState);
|
||||
|
||||
var templateMap = _mapper.Map<TemplateModel>(template);
|
||||
|
||||
if (!_templateInterface.AddTemplateById(templateMap))
|
||||
{
|
||||
ModelState.AddModelError("", "Something went wrong while saving");
|
||||
return StatusCode(500, ModelState);
|
||||
}
|
||||
|
||||
return Ok(templateMap.Id);
|
||||
}
|
||||
|
||||
[HttpPut("{Id}")]
|
||||
[ProducesResponseType(204)]
|
||||
[ProducesResponseType(400)]
|
||||
[ProducesResponseType(404)]
|
||||
public IActionResult EditTemplateById(Guid Id, [FromBody] EditTemplateDto template)
|
||||
{
|
||||
if (template == null)
|
||||
return BadRequest(ModelState);
|
||||
|
||||
if (!_templateInterface.CheckTemplateById(Id))
|
||||
return NotFound();
|
||||
|
||||
var existingTemplate = _templateInterface.GetTemplateById(Id);
|
||||
|
||||
if (!ModelState.IsValid)
|
||||
return BadRequest(ModelState);
|
||||
|
||||
var templateMap = _mapper.Map<TemplateModel>(template);
|
||||
templateMap.Id = Id;
|
||||
|
||||
if (!_templateInterface.EditTemplateById(templateMap))
|
||||
{
|
||||
ModelState.AddModelError("", "Something went wrong");
|
||||
return StatusCode(500, ModelState);
|
||||
}
|
||||
|
||||
if (!string.Equals(existingTemplate.JSONData, template.JSONData, StringComparison.Ordinal))
|
||||
{
|
||||
_queueJobService.EnqueueTemplateJsonChanged(Id, existingTemplate.JSONData, template.JSONData);
|
||||
}
|
||||
|
||||
return NoContent();
|
||||
}
|
||||
|
||||
[HttpDelete("{Id}")]
|
||||
[ProducesResponseType(204)]
|
||||
[ProducesResponseType(400)]
|
||||
[ProducesResponseType(404)]
|
||||
public IActionResult DeleteTemplateById(Guid Id)
|
||||
{
|
||||
if (!_templateInterface.CheckTemplateById(Id))
|
||||
return NotFound();
|
||||
|
||||
if (!ModelState.IsValid)
|
||||
return BadRequest(ModelState);
|
||||
|
||||
var template = _templateInterface.GetTemplateById(Id);
|
||||
|
||||
if (!_templateInterface.DeleteTemplateById(template))
|
||||
{
|
||||
ModelState.AddModelError("", "Something went wrong while deleting");
|
||||
return StatusCode(500, ModelState);
|
||||
}
|
||||
|
||||
return NoContent();
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user