@@ -97,7 +97,14 @@ public SnsEventResponseDTO.CreateSnsEventResponse createSnsEvent(
9797 List <Participant > filteredCommentList = new ArrayList <>();
9898 Set <String > filteredCommentSet = new HashSet <>();
9999 List <Winner > winnerList = new ArrayList <>();
100+ int cnt = 0 ;
100101 for (SnsEventResponseDTO .Media media : instagramMediaResponse .getData ()) {
102+ System .out .println ("리스트 Instagram Media shortCode: " + media .getShortcode ());
103+ System .out .println ("리스트 Instagram Media id: " + media .getId ()); // 응답이 null이거나 게시물이 아예 없으면 예외 발생
104+ }
105+ for (SnsEventResponseDTO .Media media : instagramMediaResponse .getData ()) {
106+ System .out .println ("리스트 중 하나 Instagram Media shortCode: " + media .getShortcode ());
107+ System .out .println ("리스트 중 하나 Instagram Media id: " + media .getId ());
101108 if (requestShortCode .equals (media .getShortcode ())) {
102109 System .out .println ("Instagram Media shortCode: " + media .getShortcode ());
103110 System .out .println ("Instagram Media id: " + media .getId ());
@@ -113,7 +120,15 @@ public SnsEventResponseDTO.CreateSnsEventResponse createSnsEvent(
113120 }
114121 // 조건 2: 키워드 필터
115122 if (pass && request .getSnsCondition ().getIsKeyword ()) {
116- if (comment .getText () == null || !comment .getText ().contains (request .getSnsCondition ().getKeyword ())) {
123+ Boolean hasKeyword = false ;
124+ String [] keywords = request .getSnsCondition ().getKeyword ().trim ().split (" " );
125+ for (String keyword : keywords ) {
126+ System .out .println ("키워드: " + keyword );
127+ if (comment .getText () == null || !comment .getText ().contains (keyword )) {
128+ hasKeyword = true ;
129+ }
130+ }
131+ if (!hasKeyword ) {
117132 pass = false ;
118133 }
119134 }
@@ -131,7 +146,9 @@ public SnsEventResponseDTO.CreateSnsEventResponse createSnsEvent(
131146 break ;
132147 }
133148 // 마지막까지 돌았는데 shortcode파싱해둔것과 일치하는게 없다면 error처리해야됨.
134- throw new SnsEventHandler (SNS_EVENT_LINK_NOT_FOUND );
149+ if (cnt == instagramMediaResponse .getData ().size () - 1 ) {
150+ throw new SnsEventHandler (SNS_EVENT_LINK_NOT_FOUND );
151+ }
135152 }
136153 // 참여자 저장
137154 for (String nickname : filteredCommentSet ) {
@@ -414,7 +431,6 @@ private SnsEventResponseDTO.InstagramMediaResponse fetchInstagramMedia(
414431 // 가져오는 값 없거나 error뜨면 error처리해야됨.
415432 try {
416433 SnsEventResponseDTO .InstagramMediaResponse response = restTemplate .getForObject (url , SnsEventResponseDTO .InstagramMediaResponse .class );
417- // 응답이 null이거나 게시물이 아예 없으면 예외 발생
418434 if (response == null || response .getData () == null || response .getData ().isEmpty ()) {
419435 throw new SnsEventHandler (SNS_EVENT_INSTAGRAM_API_NO_MEDIA );
420436 }
@@ -439,6 +455,7 @@ private List<SnsEventResponseDTO.Comment> getComments(
439455 String url = UriComponentsBuilder
440456 .fromHttpUrl (baseUrl )
441457 .queryParam ("fields" , "from,text,timestamp" )
458+ .queryParam ("limit" , 50 )
442459 .queryParam ("access_token" , accessToken )
443460 .toUriString ();
444461
@@ -447,6 +464,7 @@ private List<SnsEventResponseDTO.Comment> getComments(
447464 SnsEventResponseDTO .InstagramCommentResponse response = restTemplate .getForObject (url , SnsEventResponseDTO .InstagramCommentResponse .class );
448465
449466 if (response == null || response .getData () == null || response .getData ().isEmpty ()) {
467+ System .out .println ("게시물에 댓글이 없습니다." );
450468 throw new SnsEventHandler (SNS_EVENT_INSTAGRAM_API_NO_COMMENT );
451469 }
452470 return response .getData ();
0 commit comments