/
Andreybtw
/
hotels-api
Обзор
Документация
Войти
/
Andreybtw
/
hotels-api
Код
Запросы
0
Задачи
Вики
Пакеты
0
Релизы
0
CI/CD
Аналитика
Безопасность
master
src/main/java/rest/AddressResource.java
83 строки
2 KB
Andrey Medvedev
up
17 июн 2025, 19:52
17 июн 2025, 19:52
4b703e5
Код
Авторство
О чём код?
package rest; import dto.AddressDto; import entities.Address; import jakarta.ejb.EJB; import mappers.AddressMapper; import jakarta.validation.Valid; import jakarta.ws.rs.*; import jakarta.ws.rs.core.*; import service.AddressService; import java.net.URI; import java.util.List; import java.util.Optional; @Path("/addresses") @Produces(MediaType.APPLICATION_JSON) @Consumes(MediaType.APPLICATION_JSON) public class AddressResource { @EJB private AddressService addressService; @POST public Response createAddress( @Valid AddressDto addressDto, @Context UriInfo uriInfo) { Address address = AddressMapper.toEntity(addressDto); addressService.create(address); URI uri = uriInfo.getAbsolutePathBuilder() .path(String.valueOf(address.getId())) .build(); return Response.created(uri).build(); } @GET @Path("/{id}") public Response getAddressById(@PathParam("id") Long id) { Optional<Address> address = addressService.findById(id); if (address.isEmpty()) { return Response.status(Response.Status.NOT_FOUND).build(); } return Response.ok(AddressMapper.toDto(address.get())).build(); } @GET public Response getAllAddresses() { List<AddressDto> result = addressService.findAll(); return Response.ok(result).build(); } @PUT @Path("/{id}") public Response updateAddress( @PathParam("id") Long id, @Valid AddressDto addressDto) { Optional<Address> existing = addressService.findById(id); if (existing.isEmpty()) { return Response.status(Response.Status.NOT_FOUND).build(); } Address address = AddressMapper.toEntity(addressDto); address.setId(id); addressService.update(address); return Response.noContent().build(); } @DELETE @Path("/{id}") public Response deleteAddress(@PathParam("id") Long id) { addressService.delete(id); return Response.noContent().build(); } }