package fi.otavanopisto.muikku.users;
import java.util.List;
import javax.inject.Inject;
import fi.otavanopisto.muikku.model.base.SchoolDataSource;
import fi.otavanopisto.muikku.model.users.UserEntity;
import fi.otavanopisto.muikku.schooldata.SchoolDataIdentifier;
import fi.otavanopisto.muikku.schooldata.UserSchoolDataController;
import fi.otavanopisto.muikku.schooldata.entity.User;
import fi.otavanopisto.muikku.schooldata.entity.UserAddress;
import fi.otavanopisto.muikku.schooldata.entity.UserEmail;
import fi.otavanopisto.muikku.schooldata.entity.UserPhoneNumber;
public class UserController {
@Inject
private UserSchoolDataController userSchoolDataController;
public User createUser(SchoolDataSource schoolDataSource, String firstName, String lastName) {
return userSchoolDataController.createUser(schoolDataSource, firstName, lastName);
}
public User findUserByDataSourceAndIdentifier(String schoolDataSource, String userIdentifier) {
return userSchoolDataController.findUser(schoolDataSource, userIdentifier);
}
public User findUserByDataSourceAndIdentifier(SchoolDataSource schoolDataSource, String userIdentifier) {
return userSchoolDataController.findUser(schoolDataSource, userIdentifier);
}
public User findUserByIdentifier(SchoolDataIdentifier userIdentifier) {
if (userIdentifier == null) {
return null;
}
return findUserByDataSourceAndIdentifier(userIdentifier.getDataSource(), userIdentifier.getIdentifier());
}
public User findUserByUserEntityDefaults(UserEntity userEntity) {
return findUserByDataSourceAndIdentifier(userEntity.getDefaultSchoolDataSource(), userEntity.getDefaultIdentifier());
}
public List<User> listUsers() {
return userSchoolDataController.listUsers();
}
public List<UserAddress> listUserAddresses(User user) {
return listUserAddresses(new SchoolDataIdentifier(user.getIdentifier(), user.getSchoolDataSource()));
}
public List<UserAddress> listUserAddresses(SchoolDataIdentifier userIdentifier) {
return userSchoolDataController.listUserAddressses(userIdentifier);
}
public void updateUserAddress(
SchoolDataIdentifier studentIdentifier,
SchoolDataIdentifier addressIdentifier,
String street,
String postalCode,
String city,
String country
) {
userSchoolDataController.updateUserAddress(studentIdentifier, addressIdentifier, street, postalCode, city, country);
}
public void updateUser(User user) {
userSchoolDataController.updateUser(user);
}
public List<UserPhoneNumber> listUserPhoneNumbers(User user) {
return listUserPhoneNumbers(new SchoolDataIdentifier(user.getIdentifier(), user.getSchoolDataSource()));
}
public List<UserPhoneNumber> listUserPhoneNumbers(SchoolDataIdentifier userIdentifier) {
return userSchoolDataController.listUserPhoneNumbers(userIdentifier);
}
public List<UserEmail> listUserEmails(SchoolDataIdentifier userIdentifier) {
return userSchoolDataController.listUserEmails(userIdentifier);
}
}