|
- using Microsoft.AspNetCore.Mvc;
- using Campaign_Tracker.Server.Models;
- using Campaign_Tracker.Server.Services;
-
- namespace Campaign_Tracker.Server.Controllers;
-
- [ApiController]
- [Route(api/[controller])]
- public class MunicipalityAddressesController : ControllerBase
- {
- private readonly IMunicipalityAddressService _addressService;
-
- public MunicipalityAddressesController(IMunicipalityAddressService addressService)
- {
- _addressService = addressService;
- }
-
- [HttpGet({municipalityId})]
- public async Task<ActionResult<IEnumerable<MunicipalityAddress>>> GetAddresses(int municipalityId)
- {
- var addresses = await _addressService.GetAddressesAsync(municipalityId);
- return Ok(addresses);
- }
-
- [HttpGet({id})]
- public async Task<ActionResult<MunicipalityAddress>> GetAddress(int id)
- {
- var address = await _addressService.GetAddressAsync(id);
- if (address == null)
- return NotFound();
-
- return Ok(address);
- }
-
- [HttpPost]
- public async Task<ActionResult<MunicipalityAddress>> CreateAddress(MunicipalityAddress address)
- {
- var createdAddress = await _addressService.CreateAddressAsync(address);
- return CreatedAtAction(nameof(GetAddress), new { id = createdAddress.Id }, createdAddress);
- }
-
- [HttpPut({id})]
- public async Task<IActionResult> UpdateAddress(int id, MunicipalityAddress address)
- {
- if (id != address.Id)
- return BadRequest();
-
- var updatedAddress = await _addressService.UpdateAddressAsync(id, address);
- if (updatedAddress == null)
- return NotFound();
-
- return Ok(updatedAddress);
- }
-
- [HttpDelete({id})]
- public async Task<IActionResult> DeleteAddress(int id)
- {
- var result = await _addressService.DeleteAddressAsync(id);
- if (!result)
- return NotFound();
-
- return NoContent();
- }
- }
|