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; ...@@ -6,8 +6,11 @@ import com.github.javafaker.Faker;
import org.springframework.beans.factory.annotation.Autowired; import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.context.event.ContextRefreshedEvent; import org.springframework.context.event.ContextRefreshedEvent;
import org.springframework.context.event.EventListener; import org.springframework.context.event.EventListener;
import org.springframework.core.env.Environment;
import org.springframework.core.env.Profiles;
import org.springframework.stereotype.Component; import org.springframework.stereotype.Component;
import java.util.Arrays;
import java.util.stream.IntStream; import java.util.stream.IntStream;
@Component @Component
...@@ -15,29 +18,43 @@ public class ManagerSeeder { ...@@ -15,29 +18,43 @@ public class ManagerSeeder {
@Autowired @Autowired
ManagerRepository managerRepository; ManagerRepository managerRepository;
static private final Faker FAKER = new Faker(); @Autowired
Faker faker;
@Autowired
Environment env;
static private final int SEED_COUNT = 1; // Verify that the current environment is NOT production or test
boolean isEnvDevelopment() {
return env.acceptsProfiles(Profiles.of("default", "dev", "development", "local"));
}
// Number of seed documents generated
static private final int SEED_COUNT = 10;
// Create manager seeds as soon as app is up and running
@EventListener @EventListener
public void seedManager(ContextRefreshedEvent event) { public void seedManagers(ContextRefreshedEvent event) {
// Only generate seeds if in development environment
if (isEnvDevelopment()) {
managerRepository managerRepository
.deleteAll() .deleteAll()
.subscribe(); .subscribe();
IntStream.range(0, SEED_COUNT).forEach(n -> { IntStream.range(0, SEED_COUNT + 1).forEach(n -> {
managerRepository managerRepository
.insert(generateManager()) .insert(generateManager())
.subscribe(); .subscribe();
}); });
} }
}
private Manager generateManager(){ private Manager generateManager(){
Manager manager = new Manager(); Manager manager = new Manager();
manager.setFirstName(FAKER.name().firstName()); manager.setFirstName(faker.name().firstName());
manager.setLastName(FAKER.name().lastName()); manager.setLastName(faker.name().lastName());
manager.setEmail(FAKER.internet().emailAddress()); manager.setEmail(faker.internet().emailAddress());
manager.setGoogleId(FAKER.number().digits(21)); manager.setGoogleId(faker.number().digits(21));
manager.setImageUrl(FAKER.internet().url()); manager.setImageUrl("https://picsum.photos/200/200");
return manager; 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