feat: implemented most of the backend api for administrator
This commit is contained in:
@ -1,4 +1,76 @@
|
||||
package enseirb.myinpulse.service.database;
|
||||
|
||||
import enseirb.myinpulse.model.User;
|
||||
import enseirb.myinpulse.repository.UserRepository;
|
||||
|
||||
import org.springframework.beans.factory.annotation.Autowired;
|
||||
import org.springframework.http.HttpStatus;
|
||||
import org.springframework.stereotype.Service;
|
||||
import org.springframework.web.bind.annotation.PathVariable;
|
||||
import org.springframework.web.bind.annotation.RequestBody;
|
||||
import org.springframework.web.server.ResponseStatusException;
|
||||
|
||||
import java.util.Optional;
|
||||
|
||||
@Service
|
||||
public class UserService {
|
||||
private final UserRepository userRepository;
|
||||
|
||||
@Autowired
|
||||
UserService(UserRepository userRepository) {
|
||||
this.userRepository = userRepository;
|
||||
}
|
||||
|
||||
public Iterable<User> getAllUsers() {
|
||||
return this.userRepository.findAll();
|
||||
}
|
||||
|
||||
// TODO
|
||||
public long getIdUserByEmail(String email) {
|
||||
Optional<User> opt_user = this.userRepository.findByPrimaryMail(email);
|
||||
|
||||
if (opt_user.isEmpty()) {
|
||||
System.err.println("Couldn't find user with email " + email);
|
||||
throw new ResponseStatusException(HttpStatus.NOT_FOUND);
|
||||
}
|
||||
User user = opt_user.get();
|
||||
return user.getIdUser();
|
||||
}
|
||||
|
||||
public Iterable<User> allUsers() {
|
||||
return this.userRepository.findAll();
|
||||
}
|
||||
|
||||
public User addUser(@RequestBody User user) {
|
||||
return this.userRepository.save(user);
|
||||
}
|
||||
|
||||
public User updateUser(
|
||||
@PathVariable Long id,
|
||||
String userSurname,
|
||||
String userName,
|
||||
String mainMail,
|
||||
String secondaryMail,
|
||||
String phoneNumber) {
|
||||
Optional<User> user = userRepository.findById(id);
|
||||
if (user.isEmpty()) {
|
||||
throw new ResponseStatusException(HttpStatus.NOT_FOUND, "Cet utilisateur n'existe pas");
|
||||
}
|
||||
if (userName != null) {
|
||||
user.get().setUserName(userName);
|
||||
}
|
||||
if (userSurname != null) {
|
||||
user.get().setUserSurname(userSurname);
|
||||
}
|
||||
if (mainMail != null) {
|
||||
user.get().setPrimaryMail(mainMail);
|
||||
}
|
||||
if (secondaryMail != null) {
|
||||
user.get().setSecondaryMail(secondaryMail);
|
||||
}
|
||||
if (phoneNumber != null) {
|
||||
user.get().setPhoneNumber(phoneNumber);
|
||||
}
|
||||
return this.userRepository.save(user.get());
|
||||
}
|
||||
}
|
||||
|
Reference in New Issue
Block a user