Skip to content

Commit

Permalink
�fix: JSON 매핑이 안되어 공공데이터 저장 안되는 문제 해결
Browse files Browse the repository at this point in the history
  • Loading branch information
Hanjaemo authored Sep 15, 2024
1 parent 62501d0 commit 7d593d3
Showing 1 changed file with 22 additions and 10 deletions.
Original file line number Diff line number Diff line change
Expand Up @@ -5,27 +5,39 @@
import lombok.NoArgsConstructor;
import org.json.JSONObject;

import static contest.collectingbox.module.publicdata.AddressInfoDto.*;

@NoArgsConstructor(access = AccessLevel.PRIVATE)
public class AddressInfoMapper {
public static AddressInfoDto jsonObjectToAddressInfoDto(JSONObject document, Tag tag) {
JSONObject address = document.getJSONObject("address");
JSONObject roadAddress = document.getJSONObject("road_address");
return AddressInfoDto.builder()

AddressInfoDtoBuilder builder = builder()
.longitude(document.getDouble("x"))
.latitude(document.getDouble("y"))
.tag(tag);

return buildWithRoadAddress(buildWithAddress(builder, address), roadAddress, tag).build();
}

private static AddressInfoDtoBuilder buildWithAddress(AddressInfoDtoBuilder builder, JSONObject address) {
if (address.isEmpty()) {
return builder;
}
return builder
.sido(address.getString("region_1depth_name"))
.sigungu(address.getString("region_2depth_name"))
.dong(address.getString("region_3depth_h_name"))
.roadName(roadAddress.getString("address_name"))
.streetNum(address.getString("address_name"))
.name(getDetailName(tag, roadAddress.getString("building_name")))
.tag(tag)
.build();
.streetNum(address.getString("address_name"));
}

private static String getDetailName(Tag tag, String buildingName) {
return buildingName.isEmpty() ?
(tag.name().equals("TRASH") ? tag.getLabel() : tag.getLabel() + " 수거함")
: buildingName + " 근처 수거함";
private static AddressInfoDtoBuilder buildWithRoadAddress(AddressInfoDtoBuilder builder, JSONObject roadAddress, Tag tag) {
if (roadAddress.isEmpty()) {
return builder.name(tag.name().equals("TRASH") ? tag.getLabel() : tag.getLabel() + " 수거함");
}
return builder
.roadName(roadAddress.getString("address_name"))
.name(roadAddress.getString("building_name") + " 근처 수거함");
}
}

0 comments on commit 7d593d3

Please sign in to comment.