cubetiq-fusion/src/main/java/com/cubetiqs/fusion/data/generator/DataGenerator.java
2021-07-25 10:44:30 +00:00

57 lines
2.2 KiB
Java

package com.cubetiqs.fusion.data.generator;
import com.vaadin.flow.spring.annotation.SpringComponent;
import com.cubetiqs.fusion.data.service.UserRepository;
import com.cubetiqs.fusion.data.entity.User;
import java.util.Collections;
import org.springframework.security.crypto.password.PasswordEncoder;
import com.cubetiqs.fusion.data.Role;
import java.time.LocalDateTime;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.springframework.boot.CommandLineRunner;
import org.springframework.context.annotation.Bean;
import org.vaadin.artur.exampledata.DataType;
import org.vaadin.artur.exampledata.ExampleDataGenerator;
@SpringComponent
public class DataGenerator {
@Bean
public CommandLineRunner loadData(PasswordEncoder passwordEncoder, UserRepository userRepository) {
return args -> {
Logger logger = LoggerFactory.getLogger(getClass());
if (userRepository.count() != 0L) {
logger.info("Using existing database");
return;
}
int seed = 123;
logger.info("Generating demo data");
logger.info("... generating 2 User entities...");
User user = new User();
user.setName("John Normal");
user.setUsername("user");
user.setHashedPassword(passwordEncoder.encode("user"));
user.setProfilePictureUrl(
"https://images.unsplash.com/photo-1535713875002-d1d0cf377fde?ixid=MnwxMjA3fDB8MHxwaG90by1wYWdlfHx8fGVufDB8fHx8&ixlib=rb-1.2.1&auto=format&fit=crop&w=128&h=128&q=80");
user.setRoles(Collections.singleton(Role.USER));
userRepository.save(user);
User admin = new User();
admin.setName("John Normal");
admin.setUsername("admin");
admin.setHashedPassword(passwordEncoder.encode("admin"));
admin.setProfilePictureUrl(
"https://images.unsplash.com/photo-1607746882042-944635dfe10e?ixid=MnwxMjA3fDB8MHxwaG90by1wYWdlfHx8fGVufDB8fHx8&ixlib=rb-1.2.1&auto=format&fit=crop&w=128&h=128&q=80");
admin.setRoles(Collections.singleton(Role.ADMIN));
userRepository.save(admin);
logger.info("Generated demo data");
};
}
}