diff --git a/src/main/java/group/goforward/battlbuilder/controllers/api/v1/BrandController.java b/src/main/java/group/goforward/battlbuilder/controllers/api/v1/BrandController.java index c49d8b5..783523a 100644 --- a/src/main/java/group/goforward/battlbuilder/controllers/api/v1/BrandController.java +++ b/src/main/java/group/goforward/battlbuilder/controllers/api/v1/BrandController.java @@ -1,8 +1,10 @@ package group.goforward.battlbuilder.controllers.api.v1; +import group.goforward.battlbuilder.mapper.BrandMapper; import group.goforward.battlbuilder.model.Brand; import group.goforward.battlbuilder.repos.build.BrandRepository; import group.goforward.battlbuilder.services.BrandService; +import group.goforward.battlbuilder.web.dto.brand.BrandDto; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.http.HttpStatus; import org.springframework.http.ResponseEntity; diff --git a/src/main/java/group/goforward/battlbuilder/controllers/api/v1/BuildController.java b/src/main/java/group/goforward/battlbuilder/controllers/api/v1/BuildController.java index a06107c..cfba54d 100644 --- a/src/main/java/group/goforward/battlbuilder/controllers/api/v1/BuildController.java +++ b/src/main/java/group/goforward/battlbuilder/controllers/api/v1/BuildController.java @@ -1,35 +1,35 @@ package group.goforward.battlbuilder.controllers.api.v1; +import group.goforward.battlbuilder.mapper.BuildMapper; import group.goforward.battlbuilder.model.Build; import group.goforward.battlbuilder.repos.build.BuildRepository; import group.goforward.battlbuilder.web.dto.build.BuildDto; import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.cache.annotation.Cacheable; import org.springframework.http.ResponseEntity; import org.springframework.web.bind.annotation.*; import java.util.List; - @RestController -@RequestMapping("/api/builds") +@RequestMapping({"/api/builds", "/api/v1fix/builds"}) public class BuildController { @Autowired private BuildRepository repo; - @Autowired - // private BuildsService service; -//@Cacheable(value="getAllStates") + // @Autowired + // private BuildsService service; + @Cacheable(value="getAllBuilds") @GetMapping("/all") - public ResponseEntity> getAll() { + public ResponseEntity> getAll() { List builds = repo.findAll(); - return ResponseEntity.ok(builds); + return ResponseEntity.ok(BuildMapper.toDtoList(builds)); } @GetMapping("/{id}") - public ResponseEntity getAllBuildsById(@PathVariable Integer id) { + public ResponseEntity getAllBuildsById(@PathVariable Integer id) { return repo.findById(id) - .map(ResponseEntity::ok) + .map(build -> ResponseEntity.ok(BuildMapper.toDto(build))) .orElse(ResponseEntity.notFound().build()); } - } diff --git a/src/main/java/group/goforward/battlbuilder/controllers/api/v1/StateController.java b/src/main/java/group/goforward/battlbuilder/controllers/api/v1/StateController.java index 53ff7c0..7e748de 100644 --- a/src/main/java/group/goforward/battlbuilder/controllers/api/v1/StateController.java +++ b/src/main/java/group/goforward/battlbuilder/controllers/api/v1/StateController.java @@ -1,5 +1,7 @@ package group.goforward.battlbuilder.controllers.api.v1; +import group.goforward.battlbuilder.dto.StateDto; +import group.goforward.battlbuilder.mapper.StateMapper; import group.goforward.battlbuilder.model.State; import group.goforward.battlbuilder.repos.StateRepository; import group.goforward.battlbuilder.services.admin.StatesService; @@ -20,27 +22,34 @@ public class StateController { private StatesService statesService; //@Cacheable(value="getAllStates") @GetMapping("/all") - public ResponseEntity> getAllStates() { - List state = repo.findAll(); - return ResponseEntity.ok(state); + public ResponseEntity> getAllStates() { + List states = repo.findAll(); + List result = states.stream() + .map(StateMapper::toDto) + .toList(); + return ResponseEntity.ok(result); } @GetMapping("/{id}") - public ResponseEntity getAllStatesById(@PathVariable Integer id) { + public ResponseEntity getAllStatesById(@PathVariable Integer id) { return repo.findById(id) + .map(StateMapper::toDto) .map(ResponseEntity::ok) .orElse(ResponseEntity.notFound().build()); } @GetMapping("/byAbbrev/{abbreviation}") - public ResponseEntity getAllStatesByAbbreviation(@PathVariable String abbreviation) { + public ResponseEntity getAllStatesByAbbreviation(@PathVariable String abbreviation) { return repo.findByAbbreviation(abbreviation) + .map(StateMapper::toDto) .map(ResponseEntity::ok) .orElse(ResponseEntity.notFound().build()); } @PostMapping("/addState") - public ResponseEntity createState(@RequestBody State item) { - State created = statesService.save(item); - return ResponseEntity.status(HttpStatus.CREATED).body(created); + public ResponseEntity createState(@RequestBody StateDto item) { + State toSave = StateMapper.fromDto(item); + State created = statesService.save(toSave); + StateDto createdDto = StateMapper.toDto(created); + return ResponseEntity.status(HttpStatus.CREATED).body(createdDto); } @DeleteMapping("/deleteState/{id}") diff --git a/src/main/java/group/goforward/battlbuilder/dto/StateDto.java b/src/main/java/group/goforward/battlbuilder/dto/StateDto.java new file mode 100644 index 0000000..eefcbed --- /dev/null +++ b/src/main/java/group/goforward/battlbuilder/dto/StateDto.java @@ -0,0 +1,32 @@ +package group.goforward.battlbuilder.dto; + +public class StateDto { + + private Integer id; + private String state; + private String abbreviation; + + public Integer getId() { + return id; + } + + public void setId(Integer id) { + this.id = id; + } + + public String getState() { + return state; + } + + public void setState(String state) { + this.state = state; + } + + public String getAbbreviation() { + return abbreviation; + } + + public void setAbbreviation(String abbreviation) { + this.abbreviation = abbreviation; + } +} diff --git a/src/main/java/group/goforward/battlbuilder/mapper/StateMapper.java b/src/main/java/group/goforward/battlbuilder/mapper/StateMapper.java new file mode 100644 index 0000000..790d9e0 --- /dev/null +++ b/src/main/java/group/goforward/battlbuilder/mapper/StateMapper.java @@ -0,0 +1,34 @@ +package group.goforward.battlbuilder.mapper; + +import group.goforward.battlbuilder.dto.StateDto; +import group.goforward.battlbuilder.model.State; + + +public final class StateMapper { + + private StateMapper() { + // utility class + } + + public static StateDto toDto(State state) { + if (state == null) { + return null; + } + StateDto dto = new StateDto(); + dto.setId(state.getId()); + dto.setState(state.getState()); + dto.setAbbreviation(state.getAbbreviation()); + return dto; + } + + public static State fromDto(StateDto dto) { + if (dto == null) { + return null; + } + State state = new State(); + state.setId(dto.getId()); + state.setState(dto.getState()); + state.setAbbreviation(dto.getAbbreviation()); + return state; + } +}