1 package at.aic18.g6t4.servicetwitter.service;
3 import at.aic18.g6t4.servicetwitter.model.Tweet;
4 import at.aic18.g6t4.servicetwitter.model.User;
5 import org.springframework.stereotype.Service;
9 import java.util.stream.Collectors;
12 public class TwitterService {
14 private final Twitter twitter;
16 public TwitterService(Twitter twitter) {
17 this.twitter = twitter;
20 public List<Tweet> searchTweets(String queryString) throws TwitterException {
21 String excludeRetweets = " exclude:retweets";
22 Query query = new Query(queryString + excludeRetweets);
24 QueryResult queryResult = twitter.search(query);
25 List<Status> statusList = queryResult.getTweets();
26 return parseTweets(statusList);
29 private List<Tweet> parseTweets(List<Status> statusList) {
30 return statusList.stream()
31 .map(this::parseTweet)
32 .collect(Collectors.toList());
35 private Tweet parseTweet(Status status) {
36 return Tweet.builder()
38 .createdAt(status.getCreatedAt())
39 .text(status.getText())
40 .user(parseUser(status.getUser()))
44 private User parseUser(twitter4j.User twitterUser) {
46 .id(twitterUser.getId())
47 .name(twitterUser.getName())