UserServiceImpl.java 2.39 KB
package fr.plil.sio.web.mvc;

import org.springframework.security.crypto.password.PasswordEncoder;
import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Transactional;

import javax.annotation.Resource;
import java.util.HashSet;
import java.util.List;
import java.util.Set;

@Service("userService")
public class UserServiceImpl implements UserService {

    @Resource
    private UserRepository userRepository;

    @Resource
    private RoleRepository roleRepository;

    @Resource
    private PasswordEncoder passwordEncoder;

    @Resource
    private SecurityService securityService;

    @Override
    @Transactional
    public User createUser(String username, String password) {
        User user = new User();
        user.setUsername(username);
        user.setPassword(passwordEncoder.encode(password));
        Set<Role> roles = new HashSet<>();
        roles.add(roleRepository.findByName("ROLE_USER"));
        user.setRoles(roles);
        userRepository.save(user);
        return user;
    }

    @Override
    @Transactional(readOnly = true)
    public User findByUsername(String username) {
        return userRepository.findByUsername(username);
    }

    @Override
    @Transactional(readOnly = true)
    public List<Dette> findDettes() {
        String username = securityService.findLoggedInUsername();
        List<Dette> dettes = userRepository.findByUsername(username).getDettes();
        return dettes;
    }

    @Override
    @Transactional(readOnly = true)
    public List<User> findAll() {
        return userRepository.findAll();
    }

    @Override
    @Transactional
    public Dette addDette(String username, String sommeDette) {
        //Get the holder of debt
//        User user = userRepository.findByUsername(username);
//
//        //Get connected user
//        // Authentication auth = SecurityContextHolder.getContext().getAuthentication();
//        String connectedUsername = securityService.findLoggedInUsername();
//        User connectedUser = userRepository.findByUsername(connectedUsername);
//        //Set dette        
//        List<Dette> newDettes = user.getDettes();
//        Dette d = new Dette();
//        Double dSomme = Double.parseDouble(sommeDette);
//        d.setSommeDette(dSomme);
//        d.setHolderOfDebt(connectedUser);
//        d.setDueToUser(user);
//        newDettes.add(d);
        
        return new Dette();
    }

}