diff --git a/src/main/java/no/ntnu/idi/stud/savingsapp/repository/PointRepository.java b/src/main/java/no/ntnu/idi/stud/savingsapp/repository/PointRepository.java new file mode 100644 index 0000000000000000000000000000000000000000..fe5c9e04c811705ed7940c046c0ce1ac3c48ab75 --- /dev/null +++ b/src/main/java/no/ntnu/idi/stud/savingsapp/repository/PointRepository.java @@ -0,0 +1,11 @@ +package no.ntnu.idi.stud.savingsapp.repository; + +import no.ntnu.idi.stud.savingsapp.model.user.Point; + +import org.springframework.data.jpa.repository.JpaRepository; +import org.springframework.stereotype.Repository; + +@Repository +public interface PointRepository extends JpaRepository<Point, Long>{ + +} diff --git a/src/main/java/no/ntnu/idi/stud/savingsapp/repository/StreakRepository.java b/src/main/java/no/ntnu/idi/stud/savingsapp/repository/StreakRepository.java new file mode 100644 index 0000000000000000000000000000000000000000..e77919001b591c59dcca0dfab0c63dc7f5b98a9f --- /dev/null +++ b/src/main/java/no/ntnu/idi/stud/savingsapp/repository/StreakRepository.java @@ -0,0 +1,11 @@ +package no.ntnu.idi.stud.savingsapp.repository; + +import no.ntnu.idi.stud.savingsapp.model.user.Streak; + +import org.springframework.data.jpa.repository.JpaRepository; +import org.springframework.stereotype.Repository; + +@Repository +public interface StreakRepository extends JpaRepository<Streak, Long>{ + +} diff --git a/src/main/java/no/ntnu/idi/stud/savingsapp/service/impl/UserServiceImpl.java b/src/main/java/no/ntnu/idi/stud/savingsapp/service/impl/UserServiceImpl.java index d80a464ab9b296b2ffcf73a968af4a2d38bbf6f3..75795298a2257cf74f5429a62a15e20cd3ba52f6 100644 --- a/src/main/java/no/ntnu/idi/stud/savingsapp/service/impl/UserServiceImpl.java +++ b/src/main/java/no/ntnu/idi/stud/savingsapp/service/impl/UserServiceImpl.java @@ -13,12 +13,16 @@ import no.ntnu.idi.stud.savingsapp.exception.user.UserNotFoundException; import no.ntnu.idi.stud.savingsapp.model.user.Feedback; import no.ntnu.idi.stud.savingsapp.model.user.Friend; import no.ntnu.idi.stud.savingsapp.model.user.PasswordResetToken; +import no.ntnu.idi.stud.savingsapp.model.user.Point; import no.ntnu.idi.stud.savingsapp.model.user.Role; import no.ntnu.idi.stud.savingsapp.model.user.SearchFilter; +import no.ntnu.idi.stud.savingsapp.model.user.Streak; import no.ntnu.idi.stud.savingsapp.model.user.SubscriptionLevel; import no.ntnu.idi.stud.savingsapp.model.user.User; import no.ntnu.idi.stud.savingsapp.repository.FeedbackRepository; import no.ntnu.idi.stud.savingsapp.repository.PasswordResetTokenRepository; +import no.ntnu.idi.stud.savingsapp.repository.PointRepository; +import no.ntnu.idi.stud.savingsapp.repository.StreakRepository; import no.ntnu.idi.stud.savingsapp.repository.UserRepository; import no.ntnu.idi.stud.savingsapp.service.FriendService; import no.ntnu.idi.stud.savingsapp.service.UserService; @@ -68,6 +72,12 @@ public class UserServiceImpl implements UserService { @Autowired private FriendService friendService; + @Autowired + private PointRepository pointRepository; + + @Autowired + private StreakRepository streakRepository; + @Autowired private PasswordResetTokenRepository tokenRepository; @@ -123,6 +133,25 @@ public class UserServiceImpl implements UserService { user.setPassword(encodedPassword); user.setRole(Role.USER); user.setCreatedAt(Timestamp.from(Instant.now())); + + // Create and save a new Point object + Point point = new Point(); + point.setCurrentPoints(0); + point.setTotalEarnedPoints(0); + point = pointRepository.save(point); + + user.setPoint(point); + + Streak streak = new Streak(); + streak.setCurrentStreak(0); + streak.setCurrentStreakCreatedAt(Timestamp.from(Instant.now())); + streak.setCurrentStreakUpdatedAt(Timestamp.from(Instant.now())); + streak.setHighestStreak(0); + streak.setHighestStreakCreatedAt(Timestamp.from(Instant.now())); + streak.setHighestStreakEndedAt(Timestamp.from(Instant.now())); + streak = streakRepository.save(streak); + + user.setStreak(streak); try { return userRepository.save(user); } catch (DataIntegrityViolationException e) {