package com.minitwit.service.impl; import java.util.List; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Service; import com.minitwit.dao.MessageDao; import com.minitwit.dao.UserDao; import com.minitwit.model.LoginResult; import com.minitwit.model.Message; import com.minitwit.model.User; import com.minitwit.util.PasswordUtil; @Service public class MiniTwitService { @Autowired private UserDao userDao; @Autowired private MessageDao messageDao; public List<Message> getUserFullTimelineMessages(User user) { return messageDao.getUserFullTimelineMessages(user); } public List<Message> getUserTimelineMessages(User user) { return messageDao.getUserTimelineMessages(user); } public List<Message> getPublicTimelineMessages() { return messageDao.getPublicTimelineMessages(); } public User getUserbyUsername(String username) { return userDao.getUserbyUsername(username); } public void followUser(User follower, User followee) { userDao.insertFollower(follower, followee); } public void unfollowUser(User follower, User followee) { userDao.deleteFollower(follower, followee); } public boolean isUserFollower(User follower, User followee) { return userDao.isUserFollower(follower, followee); } public void addMessage(Message message) { messageDao.insertMessage(message); } public LoginResult checkUser(User user) { LoginResult result = new LoginResult(); User userFound = userDao.getUserbyUsername(user.getUsername()); if(userFound == null) { result.setError("Invalid username"); } else if(!PasswordUtil.verifyPassword(user.getPassword(), userFound.getPassword())) { result.setError("Invalid password"); } else { result.setUser(userFound); } return result; } public void registerUser(User user) { user.setPassword(PasswordUtil.hashPassword(user.getPassword())); userDao.registerUser(user); } public void setUserDao(UserDao userDao) { this.userDao = userDao; } public void setMessageDao(MessageDao messageDao) { this.messageDao = messageDao; } }