diff --git a/server/application-server/src/main/java/de/tum/in/www1/hephaestus/activity/ActivityService.java b/server/application-server/src/main/java/de/tum/in/www1/hephaestus/activity/ActivityService.java index 2ab41950..dd7cf9f4 100644 --- a/server/application-server/src/main/java/de/tum/in/www1/hephaestus/activity/ActivityService.java +++ b/server/application-server/src/main/java/de/tum/in/www1/hephaestus/activity/ActivityService.java @@ -5,10 +5,8 @@ import de.tum.in.www1.hephaestus.gitprovider.issue.Issue; import de.tum.in.www1.hephaestus.gitprovider.pullrequest.PullRequest; import de.tum.in.www1.hephaestus.gitprovider.pullrequest.PullRequestRepository; -import de.tum.in.www1.hephaestus.gitprovider.user.User; import de.tum.in.www1.hephaestus.gitprovider.user.UserRepository; import jakarta.transaction.Transactional; -import java.time.OffsetDateTime; import java.util.List; import java.util.Map; import java.util.Set; @@ -80,17 +78,13 @@ public ActivityDTO getActivity(String login) { public List detectBadPractices(String login) { logger.info("Detecting bad practices for user with login: {}", login); - User user = userRepository.findByLogin(login).orElseThrow(() -> new IllegalArgumentException("User not found")); + userRepository.findByLogin(login).orElseThrow(() -> new IllegalArgumentException("User not found")); - List pullRequests = pullRequestRepository.findAssignedByLoginAndStatesAndUpdatedAtAfter( + List pullRequests = pullRequestRepository.findAssignedByLoginAndStates( login, - Set.of(Issue.State.OPEN), - user.getLastSyncBadPracticeAt() + Set.of(Issue.State.OPEN) ); - user.setLastSyncBadPracticeAt(OffsetDateTime.now()); - userRepository.save(user); - return pullRequests .stream() .map(pullRequestBadPracticeDetector::detectAndSyncBadPractices) diff --git a/server/application-server/src/main/java/de/tum/in/www1/hephaestus/activity/model/PullRequestBadPractice.java b/server/application-server/src/main/java/de/tum/in/www1/hephaestus/activity/model/PullRequestBadPractice.java index ea5cc864..5f895984 100644 --- a/server/application-server/src/main/java/de/tum/in/www1/hephaestus/activity/model/PullRequestBadPractice.java +++ b/server/application-server/src/main/java/de/tum/in/www1/hephaestus/activity/model/PullRequestBadPractice.java @@ -20,9 +20,9 @@ public class PullRequestBadPractice { @Id private Long id; - @ManyToOne - @JoinColumn(name = "rule_id") - private PullRequestBadPracticeRule rule; + private String title; + + private String description; @ManyToOne @JoinColumn(name = "pullrequest_id") diff --git a/server/application-server/src/main/java/de/tum/in/www1/hephaestus/activity/model/PullRequestBadPracticeDTO.java b/server/application-server/src/main/java/de/tum/in/www1/hephaestus/activity/model/PullRequestBadPracticeDTO.java index 0e3d4b68..89e3b0d5 100644 --- a/server/application-server/src/main/java/de/tum/in/www1/hephaestus/activity/model/PullRequestBadPracticeDTO.java +++ b/server/application-server/src/main/java/de/tum/in/www1/hephaestus/activity/model/PullRequestBadPracticeDTO.java @@ -3,8 +3,8 @@ public record PullRequestBadPracticeDTO(String title, String description, boolean resolved) { public static PullRequestBadPracticeDTO fromPullRequestBadPractice(PullRequestBadPractice badPractice) { return new PullRequestBadPracticeDTO( - badPractice.getRule().getTitle(), - badPractice.getRule().getDescription(), + badPractice.getTitle(), + badPractice.getDescription(), badPractice.isResolved() ); } diff --git a/server/application-server/src/main/java/de/tum/in/www1/hephaestus/activity/model/PullRequestBadPracticeRule.java b/server/application-server/src/main/java/de/tum/in/www1/hephaestus/activity/model/PullRequestBadPracticeRule.java deleted file mode 100644 index bfa8bfae..00000000 --- a/server/application-server/src/main/java/de/tum/in/www1/hephaestus/activity/model/PullRequestBadPracticeRule.java +++ /dev/null @@ -1,32 +0,0 @@ -package de.tum.in.www1.hephaestus.activity.model; - -import de.tum.in.www1.hephaestus.gitprovider.repository.Repository; -import jakarta.persistence.*; -import lombok.Getter; -import lombok.NoArgsConstructor; -import lombok.Setter; -import lombok.ToString; - -@Entity -@Setter -@Getter -@NoArgsConstructor -@ToString -public class PullRequestBadPracticeRule { - - @Id - @GeneratedValue - private Long id; - - private String title; - - private String description; - - private String conditions; - - @ManyToOne - @JoinColumn(name = "repository_id") - private Repository repository; - - private boolean active; -} diff --git a/server/application-server/src/main/java/de/tum/in/www1/hephaestus/gitprovider/pullrequest/PullRequestRepository.java b/server/application-server/src/main/java/de/tum/in/www1/hephaestus/gitprovider/pullrequest/PullRequestRepository.java index c6432e85..7131365a 100644 --- a/server/application-server/src/main/java/de/tum/in/www1/hephaestus/gitprovider/pullrequest/PullRequestRepository.java +++ b/server/application-server/src/main/java/de/tum/in/www1/hephaestus/gitprovider/pullrequest/PullRequestRepository.java @@ -81,24 +81,4 @@ WHERE Type(p) = PullRequest """ ) Set findAllSyncedPullRequestNumbers(@Param("repositoryId") long repositoryId); - - @Query( - """ - SELECT p - FROM PullRequest p - LEFT JOIN FETCH p.labels - JOIN FETCH p.author - LEFT JOIN FETCH p.assignees - LEFT JOIN FETCH p.repository - WHERE (p.author.login ILIKE :assigneeLogin OR LOWER(:assigneeLogin) IN (SELECT LOWER(u.login) FROM p.assignees u)) - AND p.state IN :states - AND p.updatedAt >= :updatedAt - ORDER BY p.createdAt DESC - """ - ) - List findAssignedByLoginAndStatesAndUpdatedAtAfter( - @Param("assigneeLogin") String assigneeLogin, - @Param("states") Set states, - @Param("updatedAt") OffsetDateTime updatedAt - ); } diff --git a/server/application-server/src/main/java/de/tum/in/www1/hephaestus/gitprovider/user/User.java b/server/application-server/src/main/java/de/tum/in/www1/hephaestus/gitprovider/user/User.java index 355f992b..679f430c 100644 --- a/server/application-server/src/main/java/de/tum/in/www1/hephaestus/gitprovider/user/User.java +++ b/server/application-server/src/main/java/de/tum/in/www1/hephaestus/gitprovider/user/User.java @@ -14,7 +14,6 @@ import jakarta.persistence.ManyToMany; import jakarta.persistence.OneToMany; import jakarta.persistence.Table; -import java.time.OffsetDateTime; import java.util.HashSet; import java.util.Set; import lombok.Getter; @@ -103,8 +102,6 @@ public class User extends BaseGitServiceEntity { // Current ranking points for the leaderboard leagues private int leaguePoints; - private OffsetDateTime lastSyncBadPracticeAt; - public enum Type { USER, ORGANIZATION,