package com.bahadirakin.service;
import com.bahadirakin.dao.UserRepository;
import com.bahadirakin.model.User;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import java.util.List;
/**
* Created by bhdrkn on 08/02/15.
*/
@Service
public class UserServiceImpl implements UserService {
private final UserRepository userRepository;
@Autowired
public UserServiceImpl(UserRepository userRepository) {
this.userRepository = userRepository;
}
@Override
public User createUser(User user) {
return userRepository.save(user);
}
@Override
public User updateUser(String id, User user) {
final User dbUser = userRepository.findOne(id);
dbUser.setUsername(user.getUsername());
dbUser.setPassword(user.getPassword());
dbUser.setEmail(user.getEmail());
return userRepository.save(dbUser);
}
@Override
public User deleteUser(String id, User user) {
final User dbuser = this.authenticate(user.getUsername(), user.getPassword());
if(dbuser== null || dbuser.getId().equals(id) == false){
throw new RuntimeException("Wrong User");
}
userRepository.delete(user.getId());
return user;
}
@Override
public User findUserById(String id) {
return userRepository.findOne(id);
}
@Override
public List<User> getAllUsers() {
return userRepository.findAll();
}
@Override
public User authenticate(String username, String password) {
return userRepository.findByUsernameAndPassword(username, password);
}
@Override
public void sendForgottenUsernameAndPasswordEmail(String email) {
final User user = userRepository.findByEmail(email);
// Sends email etc.
}
}