From d92d580c3543ebb4ac0ef4ae390348812fdd4c09 Mon Sep 17 00:00:00 2001 From: Jinho622 Date: Sun, 24 Aug 2025 17:01:28 +0900 Subject: [PATCH] =?UTF-8?q?fix/#353:=20SNS=20=EC=9D=B4=EB=B2=A4=ED=8A=B8?= =?UTF-8?q?=20=EC=9D=B8=EC=8A=A4=ED=83=80=EA=B7=B8=EB=9E=A8=20API=20?= =?UTF-8?q?=EB=8C=93=EA=B8=80=20=EC=A0=9C=ED=95=9C=20=ED=95=B4=EC=A0=9C=20?= =?UTF-8?q?=EB=B0=8F=20SNS=20=EC=9D=B4=EB=B2=A4=ED=8A=B8=20=EC=83=9D?= =?UTF-8?q?=EC=84=B1=20=EC=8B=9C=20=EC=97=AC=EB=9F=AC=EA=B0=9C=20=ED=82=A4?= =?UTF-8?q?=EC=9B=8C=EB=93=9C=20=ED=8F=AC=ED=95=A8=ED=95=A0=20=EC=88=98=20?= =?UTF-8?q?=EC=9E=88=EB=8F=84=EB=A1=9D=20=EC=88=98=EC=A0=95?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../service/SnsEventCommandServiceImpl.java | 24 ++++++++++++++++--- 1 file changed, 21 insertions(+), 3 deletions(-) diff --git a/src/main/java/com/haru/api/domain/snsEvent/service/SnsEventCommandServiceImpl.java b/src/main/java/com/haru/api/domain/snsEvent/service/SnsEventCommandServiceImpl.java index f0afaef0..d248711d 100644 --- a/src/main/java/com/haru/api/domain/snsEvent/service/SnsEventCommandServiceImpl.java +++ b/src/main/java/com/haru/api/domain/snsEvent/service/SnsEventCommandServiceImpl.java @@ -97,7 +97,14 @@ public SnsEventResponseDTO.CreateSnsEventResponse createSnsEvent( List filteredCommentList = new ArrayList<>(); Set filteredCommentSet = new HashSet<>(); List winnerList = new ArrayList<>(); + int cnt = 0; for (SnsEventResponseDTO.Media media : instagramMediaResponse.getData()) { + System.out.println("리스트 Instagram Media shortCode: " + media.getShortcode()); + System.out.println("리스트 Instagram Media id: " + media.getId()); // 응답이 null이거나 게시물이 아예 없으면 예외 발생 + } + for (SnsEventResponseDTO.Media media : instagramMediaResponse.getData()) { + System.out.println("리스트 중 하나 Instagram Media shortCode: " + media.getShortcode()); + System.out.println("리스트 중 하나 Instagram Media id: " + media.getId()); if (requestShortCode.equals(media.getShortcode())) { System.out.println("Instagram Media shortCode: " + media.getShortcode()); System.out.println("Instagram Media id: " + media.getId()); @@ -113,7 +120,15 @@ public SnsEventResponseDTO.CreateSnsEventResponse createSnsEvent( } // 조건 2: 키워드 필터 if (pass && request.getSnsCondition().getIsKeyword()) { - if (comment.getText() == null || !comment.getText().contains(request.getSnsCondition().getKeyword())) { + Boolean hasKeyword = false; + String[] keywords = request.getSnsCondition().getKeyword().trim().split(" "); + for (String keyword : keywords) { + System.out.println("키워드: " + keyword); + if (comment.getText() == null || !comment.getText().contains(keyword)) { + hasKeyword = true; + } + } + if (!hasKeyword) { pass = false; } } @@ -131,7 +146,9 @@ public SnsEventResponseDTO.CreateSnsEventResponse createSnsEvent( break; } // 마지막까지 돌았는데 shortcode파싱해둔것과 일치하는게 없다면 error처리해야됨. - throw new SnsEventHandler(SNS_EVENT_LINK_NOT_FOUND); + if (cnt == instagramMediaResponse.getData().size() - 1) { + throw new SnsEventHandler(SNS_EVENT_LINK_NOT_FOUND); + } } // 참여자 저장 for (String nickname : filteredCommentSet) { @@ -414,7 +431,6 @@ private SnsEventResponseDTO.InstagramMediaResponse fetchInstagramMedia( // 가져오는 값 없거나 error뜨면 error처리해야됨. try { SnsEventResponseDTO.InstagramMediaResponse response = restTemplate.getForObject(url, SnsEventResponseDTO.InstagramMediaResponse.class); - // 응답이 null이거나 게시물이 아예 없으면 예외 발생 if (response == null || response.getData() == null || response.getData().isEmpty()) { throw new SnsEventHandler(SNS_EVENT_INSTAGRAM_API_NO_MEDIA); } @@ -439,6 +455,7 @@ private List getComments( String url = UriComponentsBuilder .fromHttpUrl(baseUrl) .queryParam("fields", "from,text,timestamp") + .queryParam("limit", 50) .queryParam("access_token", accessToken) .toUriString(); @@ -447,6 +464,7 @@ private List getComments( SnsEventResponseDTO.InstagramCommentResponse response = restTemplate.getForObject(url, SnsEventResponseDTO.InstagramCommentResponse.class); if (response == null || response.getData() == null || response.getData().isEmpty()) { + System.out.println("게시물에 댓글이 없습니다."); throw new SnsEventHandler(SNS_EVENT_INSTAGRAM_API_NO_COMMENT); } return response.getData();