Skip to content

Commit b4e8042

Browse files
Piotr Kubickimichalluzyna
authored andcommitted
fix: spotless apply
1 parent 5eb43df commit b4e8042

File tree

16 files changed

+506
-568
lines changed

16 files changed

+506
-568
lines changed

src/main/java/com/capgemini/training/appointmentbooking/dataaccess/config/DataaccessConfiguration.java

Lines changed: 3 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -5,7 +5,6 @@
55
import org.springframework.data.jpa.repository.config.EnableJpaRepositories;
66

77
@Configuration
8-
@EnableJpaRepositories(
9-
repositoryBaseClass = BaseJpaRepositoryImpl.class,
10-
basePackages = "com.capgemini.training.appointmentbooking.dataaccess.repository")
11-
public class DataaccessConfiguration {}
8+
@EnableJpaRepositories(repositoryBaseClass = BaseJpaRepositoryImpl.class, basePackages = "com.capgemini.training.appointmentbooking.dataaccess.repository")
9+
public class DataaccessConfiguration {
10+
}

src/main/java/com/capgemini/training/appointmentbooking/dataaccess/repository/AppointmentRepository.java

Lines changed: 63 additions & 61 deletions
Original file line numberDiff line numberDiff line change
@@ -16,69 +16,71 @@
1616
import java.util.List;
1717
import java.util.Objects;
1818

19-
2019
@Repository
2120
public interface AppointmentRepository extends BaseJpaRepository<AppointmentEntity, Long> {
2221

23-
default List<AppointmentEntity> findByCriteria(AppointmentCriteria criteria) {
24-
Objects.requireNonNull(criteria, "criteria must not be null");
25-
26-
CriteriaBuilder cb = getEntityManager().getCriteriaBuilder();
27-
CriteriaQuery<AppointmentEntity> cq = cb.createQuery(AppointmentEntity.class);
28-
Root<AppointmentEntity> root = cq.from(AppointmentEntity.class);
29-
List<Predicate> predicates = new ArrayList<>();
30-
31-
if (criteria.treatmentName() != null && !criteria.treatmentName().trim().isEmpty()) {
32-
Join<AppointmentEntity, TreatmentEntity> treatmentJoin = root.join("treatment", JoinType.LEFT);
33-
predicates.add(cb.like(cb.lower(treatmentJoin.get("name")), "%" + criteria.treatmentName().trim().toLowerCase() + "%"));
34-
}
35-
36-
if (criteria.startDate() != null) {
37-
predicates.add(cb.greaterThanOrEqualTo(root.get("dateTime"), criteria.startDate()));
38-
}
39-
40-
if (criteria.endDate() != null) {
41-
predicates.add(cb.lessThanOrEqualTo(root.get("dateTime"), criteria.endDate()));
42-
}
43-
44-
if (criteria.status() != null) {
45-
predicates.add(cb.equal(root.get("status"), criteria.status()));
46-
}
47-
48-
if (criteria.clientId() != null) {
49-
Join<AppointmentEntity, ClientEntity> clientJoin = root.join("client", JoinType.LEFT);
50-
predicates.add(cb.equal(clientJoin.get("id"), criteria.clientId()));
51-
}
52-
53-
if (criteria.specialistId() != null) {
54-
Join<AppointmentEntity, TreatmentEntity> treatmentJoin = root.join("treatment", JoinType.LEFT);
55-
Join<TreatmentEntity, SpecialistEntity> specialistJoin = treatmentJoin.join("specialist", JoinType.LEFT);
56-
predicates.add(cb.equal(specialistJoin.get("id"), criteria.specialistId()));
57-
}
58-
59-
cq.where(predicates.toArray(new Predicate[0]));
60-
return getEntityManager().createQuery(cq).getResultList();
61-
}
62-
63-
List<AppointmentEntity> findByDateTimeBetweenAndStatus(Instant start, Instant end, AppointmentStatus status);
64-
65-
@Query("""
66-
SELECT a FROM AppointmentEntity a
67-
JOIN a.treatment t
68-
WHERE t.specialist.id = :specialistId
69-
AND a.dateTime < :date
70-
ORDER BY a.dateTime DESC
71-
""")
72-
List<AppointmentEntity> findAppointmentsBySpecialistIdBeforeDate(@Param("specialistId") Long specialistId, @Param("date") Instant date);
73-
74-
@Query("""
75-
SELECT CASE WHEN COUNT(a) > 0 THEN TRUE ELSE FALSE END
76-
FROM AppointmentEntity a
77-
JOIN a.treatment t
78-
WHERE t.specialist.id = :specialistId
79-
AND a.dateTime = :date
80-
AND a.status <> com.capgemini.training.appointmentbooking.common.datatype.AppointmentStatus.CANCELLED
81-
""")
82-
boolean hasConflictingAppointmentBySpecialistIdAndDateTime(@Param("specialistId") Long specialistId, @Param("date") Instant date);
22+
default List<AppointmentEntity> findByCriteria(AppointmentCriteria criteria) {
23+
Objects.requireNonNull(criteria, "criteria must not be null");
24+
25+
CriteriaBuilder cb = getEntityManager().getCriteriaBuilder();
26+
CriteriaQuery<AppointmentEntity> cq = cb.createQuery(AppointmentEntity.class);
27+
Root<AppointmentEntity> root = cq.from(AppointmentEntity.class);
28+
List<Predicate> predicates = new ArrayList<>();
29+
30+
if (criteria.treatmentName() != null && !criteria.treatmentName().trim().isEmpty()) {
31+
Join<AppointmentEntity, TreatmentEntity> treatmentJoin = root.join("treatment", JoinType.LEFT);
32+
predicates.add(cb.like(cb.lower(treatmentJoin.get("name")),
33+
"%" + criteria.treatmentName().trim().toLowerCase() + "%"));
34+
}
35+
36+
if (criteria.startDate() != null) {
37+
predicates.add(cb.greaterThanOrEqualTo(root.get("dateTime"), criteria.startDate()));
38+
}
39+
40+
if (criteria.endDate() != null) {
41+
predicates.add(cb.lessThanOrEqualTo(root.get("dateTime"), criteria.endDate()));
42+
}
43+
44+
if (criteria.status() != null) {
45+
predicates.add(cb.equal(root.get("status"), criteria.status()));
46+
}
47+
48+
if (criteria.clientId() != null) {
49+
Join<AppointmentEntity, ClientEntity> clientJoin = root.join("client", JoinType.LEFT);
50+
predicates.add(cb.equal(clientJoin.get("id"), criteria.clientId()));
51+
}
52+
53+
if (criteria.specialistId() != null) {
54+
Join<AppointmentEntity, TreatmentEntity> treatmentJoin = root.join("treatment", JoinType.LEFT);
55+
Join<TreatmentEntity, SpecialistEntity> specialistJoin = treatmentJoin.join("specialist", JoinType.LEFT);
56+
predicates.add(cb.equal(specialistJoin.get("id"), criteria.specialistId()));
57+
}
58+
59+
cq.where(predicates.toArray(new Predicate[0]));
60+
return getEntityManager().createQuery(cq).getResultList();
61+
}
62+
63+
List<AppointmentEntity> findByDateTimeBetweenAndStatus(Instant start, Instant end, AppointmentStatus status);
64+
65+
@Query("""
66+
SELECT a FROM AppointmentEntity a
67+
JOIN a.treatment t
68+
WHERE t.specialist.id = :specialistId
69+
AND a.dateTime < :date
70+
ORDER BY a.dateTime DESC
71+
""")
72+
List<AppointmentEntity> findAppointmentsBySpecialistIdBeforeDate(@Param("specialistId") Long specialistId,
73+
@Param("date") Instant date);
74+
75+
@Query("""
76+
SELECT CASE WHEN COUNT(a) > 0 THEN TRUE ELSE FALSE END
77+
FROM AppointmentEntity a
78+
JOIN a.treatment t
79+
WHERE t.specialist.id = :specialistId
80+
AND a.dateTime = :date
81+
AND a.status <> com.capgemini.training.appointmentbooking.common.datatype.AppointmentStatus.CANCELLED
82+
""")
83+
boolean hasConflictingAppointmentBySpecialistIdAndDateTime(@Param("specialistId") Long specialistId,
84+
@Param("date") Instant date);
8385

8486
}

src/main/java/com/capgemini/training/appointmentbooking/dataaccess/repository/BaseJpaRepository.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -7,6 +7,6 @@
77
@NoRepositoryBean
88
public interface BaseJpaRepository<T, ID> extends JpaRepository<T, ID> {
99

10-
EntityManager getEntityManager();
10+
EntityManager getEntityManager();
1111

1212
}

src/main/java/com/capgemini/training/appointmentbooking/dataaccess/repository/ClientRepository.java

Lines changed: 7 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -11,18 +11,14 @@
1111
@Repository
1212
public interface ClientRepository extends BaseJpaRepository<ClientEntity, Long> {
1313

14-
default List<ClientEntity> findByName(String firstName, String lastName) {
15-
JPAQueryFactory queryFactory = new JPAQueryFactory(getEntityManager());
14+
default List<ClientEntity> findByName(String firstName, String lastName) {
15+
JPAQueryFactory queryFactory = new JPAQueryFactory(getEntityManager());
1616

17-
QClientEntity client = QClientEntity.clientEntity;
18-
QUserEntity user = QUserEntity.userEntity;
17+
QClientEntity client = QClientEntity.clientEntity;
18+
QUserEntity user = QUserEntity.userEntity;
1919

20-
return queryFactory
21-
.selectFrom(client)
22-
.leftJoin(client.user, user)
23-
.where(user.firstname.eq(firstName)
24-
.and(user.lastname.eq(lastName)))
25-
.fetch();
26-
}
20+
return queryFactory.selectFrom(client).leftJoin(client.user, user)
21+
.where(user.firstname.eq(firstName).and(user.lastname.eq(lastName))).fetch();
22+
}
2723

2824
}

src/main/java/com/capgemini/training/appointmentbooking/dataaccess/repository/SpecialistRepository.java

Lines changed: 12 additions & 13 deletions
Original file line numberDiff line numberDiff line change
@@ -11,22 +11,21 @@
1111
import java.util.List;
1212

1313
@Repository
14-
public interface SpecialistRepository extends BaseJpaRepository<SpecialistEntity, Long>, QuerydslPredicateExecutor<SpecialistEntity> {
14+
public interface SpecialistRepository
15+
extends
16+
BaseJpaRepository<SpecialistEntity, Long>,
17+
QuerydslPredicateExecutor<SpecialistEntity> {
1518

16-
List<SpecialistEntity> findBySpecialization(Specialization specialization);
19+
List<SpecialistEntity> findBySpecialization(Specialization specialization);
1720

18-
default List<SpecialistEntity> findSpecialistByName(String firstName, String lastName) {
19-
JPAQueryFactory queryFactory = new JPAQueryFactory(getEntityManager());
21+
default List<SpecialistEntity> findSpecialistByName(String firstName, String lastName) {
22+
JPAQueryFactory queryFactory = new JPAQueryFactory(getEntityManager());
2023

21-
QSpecialistEntity specialist = QSpecialistEntity.specialistEntity;
22-
QUserEntity user = QUserEntity.userEntity;
24+
QSpecialistEntity specialist = QSpecialistEntity.specialistEntity;
25+
QUserEntity user = QUserEntity.userEntity;
2326

24-
return queryFactory
25-
.selectFrom(specialist)
26-
.leftJoin(specialist.user, user)
27-
.where(user.firstname.eq(firstName)
28-
.and(user.lastname.eq(lastName)))
29-
.fetch();
30-
}
27+
return queryFactory.selectFrom(specialist).leftJoin(specialist.user, user)
28+
.where(user.firstname.eq(firstName).and(user.lastname.eq(lastName))).fetch();
29+
}
3130

3231
}

src/main/java/com/capgemini/training/appointmentbooking/dataaccess/repository/TreatmentRepository.java

Lines changed: 18 additions & 20 deletions
Original file line numberDiff line numberDiff line change
@@ -14,32 +14,30 @@
1414
@Repository
1515
public interface TreatmentRepository extends BaseJpaRepository<TreatmentEntity, Long> {
1616

17-
List<TreatmentEntity> findAllByNameStartingWithIgnoringCase(String name);
17+
List<TreatmentEntity> findAllByNameStartingWithIgnoringCase(String name);
1818

19-
List<TreatmentEntity> findByNameNamedQuery(String name);
19+
List<TreatmentEntity> findByNameNamedQuery(String name);
2020

21-
default List<TreatmentEntity> findByCriteria(TreatmentCriteria treatmentCriteria) {
22-
Objects.requireNonNull(treatmentCriteria, "treatmentCriteria cannot be null");
21+
default List<TreatmentEntity> findByCriteria(TreatmentCriteria treatmentCriteria) {
22+
Objects.requireNonNull(treatmentCriteria, "treatmentCriteria cannot be null");
2323

24-
QTreatmentEntity treatment = QTreatmentEntity.treatmentEntity;
25-
QSpecialistEntity specialist = QSpecialistEntity.specialistEntity;
24+
QTreatmentEntity treatment = QTreatmentEntity.treatmentEntity;
25+
QSpecialistEntity specialist = QSpecialistEntity.specialistEntity;
2626

27-
JPAQuery<TreatmentEntity> query = new JPAQuery<>(getEntityManager());
28-
BooleanExpression predicate = treatment.isNotNull();
27+
JPAQuery<TreatmentEntity> query = new JPAQuery<>(getEntityManager());
28+
BooleanExpression predicate = treatment.isNotNull();
2929

30-
if (treatmentCriteria.name() != null) {
31-
predicate = predicate.and(treatment.name.like(treatmentCriteria.name()));
32-
}
30+
if (treatmentCriteria.name() != null) {
31+
predicate = predicate.and(treatment.name.like(treatmentCriteria.name()));
32+
}
3333

34-
if (treatmentCriteria.specialization() != null) {
35-
predicate = predicate.and(specialist.specialization.eq(treatmentCriteria.specialization()));
36-
}
34+
if (treatmentCriteria.specialization() != null) {
35+
predicate = predicate.and(specialist.specialization.eq(treatmentCriteria.specialization()));
36+
}
3737

38-
return query.select(treatment)
39-
.from(treatment)
40-
.leftJoin(treatment.specialist, specialist) // Join with specialist
41-
.where(predicate)
42-
.fetch();
43-
}
38+
return query.select(treatment).from(treatment).leftJoin(treatment.specialist, specialist) // Join with
39+
// specialist
40+
.where(predicate).fetch();
41+
}
4442

4543
}

src/main/java/com/capgemini/training/appointmentbooking/dataaccess/repository/UserRepository.java

Lines changed: 24 additions & 25 deletions
Original file line numberDiff line numberDiff line change
@@ -15,30 +15,29 @@
1515

1616
@Repository
1717
public interface UserRepository extends BaseJpaRepository<UserEntity, Long> {
18-
default List<UserEntity> findByCriteria(UserCriteria criteria) {
19-
Objects.requireNonNull(criteria, "criteria must not be null");
20-
21-
EntityManager entityManager = getEntityManager();
22-
CriteriaBuilder cb = entityManager.getCriteriaBuilder();
23-
CriteriaQuery<UserEntity> cq = cb.createQuery(UserEntity.class);
24-
Root<UserEntity> root = cq.from(UserEntity.class);
25-
List<Predicate> predicates = new ArrayList<>();
26-
27-
if (criteria.firstName() != null) {
28-
predicates.add(cb.like(root.get("firstname"), criteria.firstName()));
29-
}
30-
31-
if (criteria.lastName() != null) {
32-
predicates.add(cb.like(root.get("lastname"), criteria.lastName()));
33-
}
34-
35-
if (criteria.email() != null) {
36-
predicates.add(cb.like(root.get("email"), criteria.email()));
37-
}
38-
39-
cq.where(predicates.toArray(new Predicate[0]));
40-
return entityManager.createQuery(cq).getResultList();
41-
}
42-
18+
default List<UserEntity> findByCriteria(UserCriteria criteria) {
19+
Objects.requireNonNull(criteria, "criteria must not be null");
20+
21+
EntityManager entityManager = getEntityManager();
22+
CriteriaBuilder cb = entityManager.getCriteriaBuilder();
23+
CriteriaQuery<UserEntity> cq = cb.createQuery(UserEntity.class);
24+
Root<UserEntity> root = cq.from(UserEntity.class);
25+
List<Predicate> predicates = new ArrayList<>();
26+
27+
if (criteria.firstName() != null) {
28+
predicates.add(cb.like(root.get("firstname"), criteria.firstName()));
29+
}
30+
31+
if (criteria.lastName() != null) {
32+
predicates.add(cb.like(root.get("lastname"), criteria.lastName()));
33+
}
34+
35+
if (criteria.email() != null) {
36+
predicates.add(cb.like(root.get("email"), criteria.email()));
37+
}
38+
39+
cq.where(predicates.toArray(new Predicate[0]));
40+
return entityManager.createQuery(cq).getResultList();
41+
}
4342

4443
}

src/main/java/com/capgemini/training/appointmentbooking/dataaccess/repository/criteria/AppointmentCriteria.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -7,5 +7,5 @@
77

88
@Builder
99
public record AppointmentCriteria(String treatmentName, Instant startDate, Instant endDate, AppointmentStatus status,
10-
Long clientId, Long specialistId) {
10+
Long clientId, Long specialistId) {
1111
}

src/main/java/com/capgemini/training/appointmentbooking/dataaccess/repository/impl/BaseJpaRepositoryImpl.java

Lines changed: 9 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -7,16 +7,16 @@
77

88
public class BaseJpaRepositoryImpl<T, ID> extends SimpleJpaRepository<T, ID> implements BaseJpaRepository<T, ID> {
99

10-
private final EntityManager entityManager;
10+
private final EntityManager entityManager;
1111

12-
BaseJpaRepositoryImpl(JpaEntityInformation<T, ?> entityInformation, EntityManager entityManager) {
13-
super(entityInformation, entityManager);
14-
this.entityManager = entityManager;
15-
}
12+
BaseJpaRepositoryImpl(JpaEntityInformation<T, ?> entityInformation, EntityManager entityManager) {
13+
super(entityInformation, entityManager);
14+
this.entityManager = entityManager;
15+
}
1616

17-
@Override
18-
public EntityManager getEntityManager() {
19-
return this.entityManager;
20-
}
17+
@Override
18+
public EntityManager getEntityManager() {
19+
return this.entityManager;
20+
}
2121

2222
}

src/test/java/com/capgemini/training/appointmentbooking/common/BaseDataJpaTest.java

Lines changed: 1 addition & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -3,9 +3,8 @@
33
import com.capgemini.training.appointmentbooking.dataaccess.config.DataaccessConfiguration;
44
import org.springframework.boot.test.autoconfigure.orm.jpa.DataJpaTest;
55
import org.springframework.context.annotation.Import;
6-
import org.springframework.transaction.annotation.Transactional;
76

87
@DataJpaTest
98
@Import(DataaccessConfiguration.class)
10-
public class BaseDataJpaTest extends BaseTest{
9+
public class BaseDataJpaTest extends BaseTest {
1110
}

0 commit comments

Comments
 (0)