diff --git a/src/main/java/com/ALGo/ALGo_server/message/controller/MessageController.java b/src/main/java/com/ALGo/ALGo_server/message/controller/MessageController.java index bea7743..863589b 100644 --- a/src/main/java/com/ALGo/ALGo_server/message/controller/MessageController.java +++ b/src/main/java/com/ALGo/ALGo_server/message/controller/MessageController.java @@ -11,6 +11,7 @@ import org.springframework.web.bind.annotation.RestController; import java.io.IOException; +import java.util.List; @RestController @RequestMapping("/disaster") @@ -24,7 +25,7 @@ public MessageController(MessageService messageService) { } @GetMapping("/message") - public MessageResponse getMessage(@AuthenticationPrincipal User user) throws IOException, ParseException { + public List getMessage(@AuthenticationPrincipal User user) throws IOException, ParseException { return messageService.message(user); } diff --git a/src/main/java/com/ALGo/ALGo_server/message/service/MessageService.java b/src/main/java/com/ALGo/ALGo_server/message/service/MessageService.java index a24dc16..ed62dbd 100644 --- a/src/main/java/com/ALGo/ALGo_server/message/service/MessageService.java +++ b/src/main/java/com/ALGo/ALGo_server/message/service/MessageService.java @@ -17,6 +17,7 @@ import java.net.HttpURLConnection; import java.net.URL; import java.net.URLEncoder; +import java.util.ArrayList; import java.util.Arrays; import java.util.List; @@ -29,14 +30,14 @@ public class MessageService { private final NaverTransService naverTransService; - public MessageResponse message(User user) throws IOException, ParseException { + public List message(User user) throws IOException, ParseException { StringBuilder urlBuilder = new StringBuilder("https://www.safetydata.go.kr/openApi"); urlBuilder.append("/" + URLEncoder.encode("행정안전부_긴급재난문자","UTF-8")); urlBuilder.append("?serviceKey=" + secretKey); urlBuilder.append("&returnType=json"); urlBuilder.append("&pageNum=1"); - urlBuilder.append("&numRowsPerPage=1"); + urlBuilder.append("&numRowsPerPage=4"); URL url = new URL(urlBuilder.toString()); HttpURLConnection conn = (HttpURLConnection) url.openConnection(); @@ -69,9 +70,41 @@ public MessageResponse message(User user) throws IOException, ParseException { JSONObject jsonObject = (JSONObject) jsonParser.parse(responseBody); JSONObject responseData = (JSONObject) jsonObject.get("responseData"); - JSONArray data = (JSONArray) responseData.get("data"); + JSONArray dataArr = (JSONArray) responseData.get("data"); - JSONObject dataObject = (JSONObject) data.get(0); + List msgResArr = new ArrayList<>(); + + for(int i=0; i areaIdArr = Arrays.stream(RCV_AREA_ID.split(",")).toList(); + for(int j=0;j areaNmArr = Arrays.stream(RCV_AREA_NM.split(",")).toList(); + for(int j=0;j { + + List findAll(); + + List findByRegion(String region); +} diff --git a/src/main/java/com/ALGo/ALGo_server/shelter/controller/ShelterController.java b/src/main/java/com/ALGo/ALGo_server/shelter/controller/ShelterController.java new file mode 100644 index 0000000..218b0ad --- /dev/null +++ b/src/main/java/com/ALGo/ALGo_server/shelter/controller/ShelterController.java @@ -0,0 +1,32 @@ +package com.ALGo.ALGo_server.shelter.controller; + +import com.ALGo.ALGo_server.entity.Shelter; +import com.ALGo.ALGo_server.repository.ShelterRepository; +import com.ALGo.ALGo_server.shelter.dto.ShelterResponse; +import com.ALGo.ALGo_server.shelter.service.ShelterService; +import org.springframework.web.bind.annotation.*; + +import java.util.List; + +@RestController +@RequestMapping("/shelter") +public class ShelterController { + + private final ShelterRepository shelterRepository; + private final ShelterService shelterService; + + public ShelterController(ShelterRepository shelterRepository, ShelterService shelterService) { + this.shelterRepository = shelterRepository; + this.shelterService = shelterService; + } + + @GetMapping + public List getAllShelters() { + return shelterRepository.findAll(); + } + + @PostMapping("/search/{region}") + public List searchSheltersByRegion(@PathVariable String region) { + return shelterService.searchSheltersByRegion(region); + } +} diff --git a/src/main/java/com/ALGo/ALGo_server/shelter/dto/ShelterResponse.java b/src/main/java/com/ALGo/ALGo_server/shelter/dto/ShelterResponse.java new file mode 100644 index 0000000..b6bb73b --- /dev/null +++ b/src/main/java/com/ALGo/ALGo_server/shelter/dto/ShelterResponse.java @@ -0,0 +1,22 @@ +package com.ALGo.ALGo_server.shelter.dto; + +import jakarta.persistence.Column; +import lombok.Data; + +import java.util.List; + +@Data +public class ShelterResponse { + private Long shelter_id; + private String region; + private String address; + private String description; + + public ShelterResponse(Long shelter_id, String region, String address, String description){ + this.shelter_id = shelter_id; + this.region = region; + this.address = address; + this.description = description; + } + +} diff --git a/src/main/java/com/ALGo/ALGo_server/shelter/service/ShelterService.java b/src/main/java/com/ALGo/ALGo_server/shelter/service/ShelterService.java new file mode 100644 index 0000000..e219491 --- /dev/null +++ b/src/main/java/com/ALGo/ALGo_server/shelter/service/ShelterService.java @@ -0,0 +1,42 @@ +package com.ALGo.ALGo_server.shelter.service; + +import com.ALGo.ALGo_server.entity.Shelter; +import com.ALGo.ALGo_server.repository.ShelterRepository; +import com.ALGo.ALGo_server.shelter.dto.ShelterResponse; +import lombok.RequiredArgsConstructor; +import lombok.extern.slf4j.Slf4j; +import org.springframework.stereotype.Service; +import org.springframework.transaction.annotation.Transactional; + +import java.util.ArrayList; +import java.util.List; + +@Service +@Transactional +@RequiredArgsConstructor +@Slf4j +public class ShelterService { + + private final ShelterRepository shelterRepository; + + public List searchSheltersByRegion(String region) { + List shelters = shelterRepository.findByRegion(region); + return convertToShelterResponseList(shelters); + } + + private List convertToShelterResponseList(List shelters) { + List shelterResponses = new ArrayList<>(); + for (Shelter shelter : shelters) { + ShelterResponse shelterResponse = new ShelterResponse( + shelter.getShelter_id(), + shelter.getRegion(), + shelter.getAddress(), + shelter.getDescription() + ); + shelterResponses.add(shelterResponse); + } + return shelterResponses; + } + + +}