Вы не можете выбрать более 25 тем Темы должны начинаться с буквы или цифры, могут содержать дефисы(-) и должны содержать не более 35 символов.

65 строки
1.9KB

  1. using Microsoft.AspNetCore.Mvc;
  2. using Campaign_Tracker.Server.Models;
  3. using Campaign_Tracker.Server.Services;
  4. namespace Campaign_Tracker.Server.Controllers;
  5. [ApiController]
  6. [Route(api/[controller])]
  7. public class MunicipalityAddressesController : ControllerBase
  8. {
  9. private readonly IMunicipalityAddressService _addressService;
  10. public MunicipalityAddressesController(IMunicipalityAddressService addressService)
  11. {
  12. _addressService = addressService;
  13. }
  14. [HttpGet({municipalityId})]
  15. public async Task<ActionResult<IEnumerable<MunicipalityAddress>>> GetAddresses(int municipalityId)
  16. {
  17. var addresses = await _addressService.GetAddressesAsync(municipalityId);
  18. return Ok(addresses);
  19. }
  20. [HttpGet({id})]
  21. public async Task<ActionResult<MunicipalityAddress>> GetAddress(int id)
  22. {
  23. var address = await _addressService.GetAddressAsync(id);
  24. if (address == null)
  25. return NotFound();
  26. return Ok(address);
  27. }
  28. [HttpPost]
  29. public async Task<ActionResult<MunicipalityAddress>> CreateAddress(MunicipalityAddress address)
  30. {
  31. var createdAddress = await _addressService.CreateAddressAsync(address);
  32. return CreatedAtAction(nameof(GetAddress), new { id = createdAddress.Id }, createdAddress);
  33. }
  34. [HttpPut({id})]
  35. public async Task<IActionResult> UpdateAddress(int id, MunicipalityAddress address)
  36. {
  37. if (id != address.Id)
  38. return BadRequest();
  39. var updatedAddress = await _addressService.UpdateAddressAsync(id, address);
  40. if (updatedAddress == null)
  41. return NotFound();
  42. return Ok(updatedAddress);
  43. }
  44. [HttpDelete({id})]
  45. public async Task<IActionResult> DeleteAddress(int id)
  46. {
  47. var result = await _addressService.DeleteAddressAsync(id);
  48. if (!result)
  49. return NotFound();
  50. return NoContent();
  51. }
  52. }

Powered by TurnKey Linux.