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 Query query = new Query(queryString);
23 QueryResult queryResult = twitter.search(query);
24 List<Status> statusList = queryResult.getTweets();
25 return parseTweets(statusList);
28 private List<Tweet> parseTweets(List<Status> statusList) {
29 return statusList.stream()
30 .map(this::parseTweet)
31 .collect(Collectors.toList());
34 private Tweet parseTweet(Status status) {
35 return Tweet.builder()
37 .createdAt(status.getCreatedAt())
38 .text(status.getText())
39 .user(parseUser(status.getUser()))
43 private User parseUser(twitter4j.User twitterUser) {
45 .id(twitterUser.getId())
46 .name(twitterUser.getName())