Commit f8dbe011 authored by Alex Segers's avatar Alex Segers

[AFP-91] 🌱 Modify 'Manager' seeder to only run in development environment,...

[AFP-91] 🌱 Modify 'Manager' seeder to only run in development environment, utilize dependency injection, & add comments (@asegers)
parent e0309675
......@@ -6,8 +6,11 @@ import com.github.javafaker.Faker;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.context.event.ContextRefreshedEvent;
import org.springframework.context.event.EventListener;
import org.springframework.core.env.Environment;
import org.springframework.core.env.Profiles;
import org.springframework.stereotype.Component;
import java.util.Arrays;
import java.util.stream.IntStream;
@Component
......@@ -15,29 +18,43 @@ public class ManagerSeeder {
@Autowired
ManagerRepository managerRepository;
static private final Faker FAKER = new Faker();
@Autowired
Faker faker;
@Autowired
Environment env;
// Verify that the current environment is NOT production or test
boolean isEnvDevelopment() {
return env.acceptsProfiles(Profiles.of("default", "dev", "development", "local"));
}
static private final int SEED_COUNT = 1;
// Number of seed documents generated
static private final int SEED_COUNT = 10;
// Create manager seeds as soon as app is up and running
@EventListener
public void seedManager(ContextRefreshedEvent event) {
managerRepository
.deleteAll()
.subscribe();
IntStream.range(0, SEED_COUNT).forEach(n -> {
public void seedManagers(ContextRefreshedEvent event) {
// Only generate seeds if in development environment
if (isEnvDevelopment()) {
managerRepository
.insert(generateManager())
.deleteAll()
.subscribe();
});
IntStream.range(0, SEED_COUNT + 1).forEach(n -> {
managerRepository
.insert(generateManager())
.subscribe();
});
}
}
private Manager generateManager(){
Manager manager = new Manager();
manager.setFirstName(FAKER.name().firstName());
manager.setLastName(FAKER.name().lastName());
manager.setEmail(FAKER.internet().emailAddress());
manager.setGoogleId(FAKER.number().digits(21));
manager.setImageUrl(FAKER.internet().url());
manager.setFirstName(faker.name().firstName());
manager.setLastName(faker.name().lastName());
manager.setEmail(faker.internet().emailAddress());
manager.setGoogleId(faker.number().digits(21));
manager.setImageUrl("https://picsum.photos/200/200");
return manager;
}
}
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment