package com.its.op.controller.database; import com.its.op.model.dto.database.RoadDto; import com.its.op.model.dto.database.RoadIfscRltnDto; import com.its.op.model.entity.database.Road; import com.its.op.model.entity.database.RoadIfscRltn; import com.its.op.service.database.TbRoadService; import io.swagger.annotations.Api; import io.swagger.annotations.ApiOperation; import lombok.RequiredArgsConstructor; import lombok.extern.slf4j.Slf4j; import org.springframework.http.HttpStatus; import org.springframework.http.ResponseEntity; import org.springframework.web.bind.annotation.*; import java.util.ArrayList; import java.util.List; @Slf4j @RequiredArgsConstructor @RestController @RequestMapping("/api/database/road") @Api(tags = "09.기초데이터관리-04.도로")//, description="도로") public class TbRoadController { private final TbRoadService service; @ApiOperation(value = "전체조회(TB_ROAD)", response = RoadDto.RoadInfo.class) @GetMapping(value = "", produces = {"application/json; charset=utf8"}) public ResponseEntity> findAll() { List data = this.service.findAll(); List result = new ArrayList<>(); for (Road obj: data) { result.add(new RoadDto.RoadInfo(obj)); } return new ResponseEntity<>(result, HttpStatus.OK); } @ApiOperation(value = "개별조회(TB_ROAD)", response = RoadDto.RoadInfo.class) @GetMapping(value = "/{id}", produces = {"application/json; charset=utf8"}) public ResponseEntity findById(@PathVariable final Long id) { Road obj = this.service.findById(id); if (obj != null) { return new ResponseEntity<>(new RoadDto.RoadInfo(obj), HttpStatus.OK); } return new ResponseEntity<>(null, HttpStatus.NOT_FOUND);//NO_CONTENT); } @ApiOperation(value = "구간명변경(TB_ROAD)", response = RoadDto.RoadInfo.class) @PutMapping(value = "/{id}", produces = {"application/json; charset=utf8"}) public ResponseEntity updateNameById(@PathVariable final Long id, @RequestBody final RoadDto.RoadNameUpdateReq req) { Road obj = this.service.updateNameById(id, req); if (obj != null) { return new ResponseEntity<>(new RoadDto.RoadInfo(obj), HttpStatus.OK); } return new ResponseEntity<>(null, HttpStatus.NOT_FOUND);//NO_CONTENT); } @ApiOperation(value = "개별구성정보조회(TB_ROAD_IFSC_RLTN)", response = RoadIfscRltnDto.RoadIfscRltnUpdateReq.class) @GetMapping(value = "/rltn/{id}", produces = {"application/json; charset=utf8"}) public ResponseEntity> findLinkRltnById(@PathVariable final Long id) { List objs = this.service.findLinkRltnById(id); if (objs != null) { List result = new ArrayList<>(); for (RoadIfscRltn obj : objs) { result.add(new RoadIfscRltnDto.RoadIfscRltnInfo(obj)); } return new ResponseEntity<>(result, HttpStatus.OK); } return new ResponseEntity<>(null, HttpStatus.NOT_FOUND);//NO_CONTENT); } @ApiOperation(value = "개별구성정보변경/생성(TB_ROAD_IFSC_RLTN)", response = RoadDto.RoadInfo.class) @PutMapping(value = "/rltn/{id}", produces = {"application/json; charset=utf8"}) public ResponseEntity> updateRltn( @PathVariable final Long id, @RequestBody final List req) { List obj = this.service.updateRltn(id, req); if (obj != null) { return new ResponseEntity<>(obj, HttpStatus.OK); } return new ResponseEntity<>(null, HttpStatus.NOT_FOUND);//NO_CONTENT); } }