diff --git a/prototype/src/main/java/org/hso/ecommerce/components/AdminInitializer.java b/prototype/src/main/java/org/hso/ecommerce/components/AdminInitializer.java new file mode 100644 index 0000000..7b473c0 --- /dev/null +++ b/prototype/src/main/java/org/hso/ecommerce/components/AdminInitializer.java @@ -0,0 +1,37 @@ +package org.hso.ecommerce.components; + +import org.hso.ecommerce.entities.booking.PaymentMethod; +import org.hso.ecommerce.entities.user.User; +import org.hso.ecommerce.repos.user.UserRepository; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.stereotype.Component; + +import java.sql.Timestamp; +import java.util.Optional; + +import javax.annotation.PostConstruct; + +@Component +public class AdminInitializer { + + @Autowired + private final UserRepository userRepository = null; + + @PostConstruct + public void init() { + Optional numberOfEmployees = userRepository.numberOfEmployees(); + if (numberOfEmployees.orElse(0) == 0) { + // create first admin user + User firstAdmin = new User(); + firstAdmin.created = new Timestamp(System.currentTimeMillis()); + firstAdmin.name = "admin"; + firstAdmin.defaultPayment = new PaymentMethod(); + firstAdmin.defaultPayment.creditCardNumber = ""; //set empty number + firstAdmin.email = "admin"; + firstAdmin.isActive = true; + firstAdmin.isEmployee = true; + firstAdmin.setPassword("admin"); + userRepository.save(firstAdmin); //save to DB + } + } +} diff --git a/prototype/src/main/java/org/hso/ecommerce/components/SlotInitializer.java b/prototype/src/main/java/org/hso/ecommerce/components/SlotInitializer.java index ce8c39b..72c4f8a 100644 --- a/prototype/src/main/java/org/hso/ecommerce/components/SlotInitializer.java +++ b/prototype/src/main/java/org/hso/ecommerce/components/SlotInitializer.java @@ -10,23 +10,21 @@ import javax.annotation.PostConstruct; @Component public class SlotInitializer { - @Autowired - private final SlotRepository slotRepository = null; + @Autowired + private final SlotRepository slotRepository = null; - // TODO: use values form cfg. - private final int NUM_SLOTS = 50; - - @PostConstruct - public void init() { - for (int i = 1; i <= NUM_SLOTS; i++) { - if (!slotRepository.findBySlotNum(i).isPresent()) { - Slot slotAdded = new Slot(); - slotAdded.slotNum = i; - slotRepository.save(slotAdded); - - System.out.println("Added Slot " + i + " to DB"); - } - } - } + // TODO: use values form cfg. + private final int NUM_SLOTS = 50; + @PostConstruct + public void init() { + for (int i = 1; i <= NUM_SLOTS; i++) { + if (!slotRepository.findBySlotNum(i).isPresent()) { + Slot slotAdded = new Slot(); + slotAdded.slotNum = i; + slotRepository.save(slotAdded); + System.out.println("Added Slot " + i + " to DB"); + } + } + } } diff --git a/prototype/src/main/java/org/hso/ecommerce/repos/user/UserRepository.java b/prototype/src/main/java/org/hso/ecommerce/repos/user/UserRepository.java index 9477763..abfbc9e 100644 --- a/prototype/src/main/java/org/hso/ecommerce/repos/user/UserRepository.java +++ b/prototype/src/main/java/org/hso/ecommerce/repos/user/UserRepository.java @@ -12,7 +12,15 @@ public interface UserRepository extends JpaRepository { @Query("SELECT c FROM User c WHERE c.email = :email") Optional findByEmail(String email); + + /*SELECT count(*) FROM users WHERE is_employee == 1; + */ + + @Query("SELECT count(*) FROM User WHERE isEmployee = true") + Optional numberOfEmployees(); + + }