SetCowHealthJob.java

  1. package edu.ucsb.cs156.happiercows.jobs;


  2. import edu.ucsb.cs156.happiercows.entities.Commons;
  3. import edu.ucsb.cs156.happiercows.entities.User;
  4. import edu.ucsb.cs156.happiercows.entities.UserCommons;
  5. import edu.ucsb.cs156.happiercows.repositories.CommonsRepository;
  6. import edu.ucsb.cs156.happiercows.repositories.UserCommonsRepository;
  7. import edu.ucsb.cs156.happiercows.repositories.UserRepository;
  8. import edu.ucsb.cs156.happiercows.services.jobs.JobContext;
  9. import edu.ucsb.cs156.happiercows.services.jobs.JobContextConsumer;
  10. import lombok.AllArgsConstructor;
  11. import lombok.Getter;

  12. import java.util.Optional;

  13. @AllArgsConstructor
  14. public class SetCowHealthJob implements JobContextConsumer {

  15.     private long commonsID;
  16.     private double newCowHealth;

  17.     @Getter
  18.     private CommonsRepository commonsRepository;
  19.     @Getter
  20.     private UserCommonsRepository userCommonsRepository;
  21.     @Getter
  22.     private UserRepository userRepository;

  23.     @Override
  24.     public void accept(JobContext ctx) throws Exception {
  25.         ctx.log("Setting cow health...");

  26.         Optional<Commons> commons = commonsRepository.findById(commonsID);


  27.         if (commons.isPresent()) {
  28.             ctx.log("Commons " + commons.get().getName());

  29.             Iterable<UserCommons> allUserCommons = userCommonsRepository.findByCommonsId(commons.get().getId());

  30.             for (UserCommons userCommons : allUserCommons) {
  31.                 User user = userCommons.getUser();
  32.                 ctx.log("User: " + user.getFullName() + ", numCows: " + userCommons.getNumOfCows() + ", cowHealth: " + userCommons.getCowHealth());
  33.                 ctx.log(" old cow health: " + userCommons.getCowHealth() + ", new cow health: " + newCowHealth);
  34.                 userCommons.setCowHealth(newCowHealth);
  35.                 userCommonsRepository.save(userCommons);
  36.             }

  37.             ctx.log("Cow health has been set!");
  38.         } else {
  39.             ctx.log(String.format("No commons found for id %d", commonsID));
  40.         }

  41.     }
  42. }