You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

InsurersController.cs 2.8KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576
  1. namespace Diligent.WebAPI.Host.Controllers.V1
  2. {
  3. [ApiVersion("1.0")]
  4. [ApiController]
  5. [Route("v{version:apiVersion}/insurers")]
  6. public class InsurersController : ControllerBase
  7. {
  8. private readonly IInsurersService _insurersService;
  9. public InsurersController(IInsurersService insurers)
  10. {
  11. _insurersService = insurers;
  12. }
  13. /// <summary>
  14. /// Get list of all insusers
  15. /// </summary>
  16. [HttpGet]
  17. [ProducesResponseType(typeof(List<InsurerViewDto>), StatusCodes.Status200OK)]
  18. [ProducesResponseType(typeof(ErrorResponseDto), StatusCodes.Status400BadRequest)]
  19. public async Task<IActionResult> GetInsurers()
  20. {
  21. return Ok(await _insurersService.GetInsurers());
  22. }
  23. /// <summary>
  24. /// Get insurer by id
  25. /// </summary>
  26. [HttpGet("{id}")]
  27. [ProducesResponseType(typeof(InsurerViewDto), StatusCodes.Status200OK)]
  28. [ProducesResponseType(typeof(ErrorResponseDto), StatusCodes.Status400BadRequest)]
  29. [ProducesResponseType(StatusCodes.Status404NotFound)]
  30. public async Task<IActionResult> GetInsurer(long id)
  31. {
  32. return Ok(await _insurersService.GetInsurer(id));
  33. }
  34. /// <summary>
  35. /// Create insurer
  36. /// </summary>
  37. [HttpPost]
  38. [ProducesResponseType(StatusCodes.Status201Created)]
  39. [ProducesResponseType(typeof(ErrorResponseDto), StatusCodes.Status400BadRequest)]
  40. public async Task<IActionResult> CreateInsurer([FromBody] InsurerCreateDto insurerCreateDto)
  41. {
  42. await _insurersService.CreateInsurer(insurerCreateDto);
  43. return StatusCode((int)HttpStatusCode.Created);
  44. }
  45. /// <summary>
  46. /// Update insurer
  47. /// </summary>
  48. [HttpPut("{id}")]
  49. [ProducesResponseType(StatusCodes.Status200OK)]
  50. [ProducesResponseType(typeof(ErrorResponseDto), StatusCodes.Status400BadRequest)]
  51. [ProducesResponseType(StatusCodes.Status404NotFound)]
  52. public async Task<IActionResult> UpdateInsurer(long id, [FromBody] InsurerUpdateDto insurerUpdateDto)
  53. {
  54. await _insurersService.UpdateInsurer(id, insurerUpdateDto);
  55. return Ok();
  56. }
  57. /// <summary>
  58. /// Delete insurer
  59. /// </summary>
  60. [HttpDelete("{id}")]
  61. [ProducesResponseType(StatusCodes.Status204NoContent)]
  62. [ProducesResponseType(typeof(ErrorResponseDto), StatusCodes.Status400BadRequest)]
  63. [ProducesResponseType(StatusCodes.Status404NotFound)]
  64. public async Task<IActionResult> DeleteInsurer(long insurerId)
  65. {
  66. await _insurersService.DeleteInsurerAsync(insurerId);
  67. return NoContent();
  68. }
  69. }
  70. }