Skip to content

Commit c2ca1ad

Browse files
committed
feat: add compliance control and query configuration tables with related DTOs and mappers
1 parent 3a27ff1 commit c2ca1ad

12 files changed

Lines changed: 157 additions & 40 deletions

backend/src/main/java/com/park/utmstack/domain/compliance/UtmComplianceQueryConfig.java

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -25,6 +25,11 @@ public class UtmComplianceQueryConfig implements Serializable {
2525
@GeneratedValue(generator = "CustomIdentityGenerator")
2626
private Long id;
2727

28+
@Column(name = "query_name",
29+
columnDefinition = "TEXT"
30+
)
31+
private String queryName;
32+
2833
@Column(name = "query_description",
2934
columnDefinition = "TEXT"
3035
)

backend/src/main/java/com/park/utmstack/domain/compliance/enums/ComplianceStrategy.java

Lines changed: 1 addition & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -2,6 +2,5 @@
22

33
public enum ComplianceStrategy {
44
ALL,
5-
ANY,
6-
MAJORITY
5+
ANY
76
}
Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -1,8 +1,8 @@
11
package com.park.utmstack.domain.compliance.enums;
22

33
public enum EvaluationRule {
4-
NO_HITS_ALLOWED,
5-
MIN_HITS_REQUIRED,
6-
THRESHOLD_MAX,
7-
MATCH_FIELD_VALUE
4+
NO_HITS_ALLOWED, // no results
5+
MIN_HITS_REQUIRED, // at least N results
6+
THRESHOLD_MAX, // a maximum of N results.
7+
MATCH_FIELD_VALUE // a specific value in a field
88
}

backend/src/main/java/com/park/utmstack/repository/compliance/UtmComplianceControlConfigRepository.java

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -2,15 +2,15 @@
22

33
import com.park.utmstack.domain.compliance.UtmComplianceControlConfig;
44
import org.springframework.data.jpa.repository.JpaRepository;
5+
import org.springframework.data.jpa.repository.JpaSpecificationExecutor;
56
import org.springframework.data.jpa.repository.Query;
67
import org.springframework.data.repository.query.Param;
78
import org.springframework.stereotype.Repository;
89

9-
import java.util.List;
1010
import java.util.Optional;
1111

1212
@Repository
13-
public interface UtmComplianceControlConfigRepository extends JpaRepository<UtmComplianceControlConfig, Long> {
13+
public interface UtmComplianceControlConfigRepository extends JpaRepository<UtmComplianceControlConfig, Long>, JpaSpecificationExecutor<UtmComplianceControlConfig> {
1414
@Query(" SELECT c FROM UtmComplianceControlConfig c LEFT JOIN FETCH c.queriesConfigs WHERE c.id = :id")
1515
Optional<UtmComplianceControlConfig> findByIdWithQueries(@Param("id") Long id);
1616
}
Lines changed: 65 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,65 @@
1+
package com.park.utmstack.service.compliance.config;
2+
3+
import com.park.utmstack.domain.compliance.*;
4+
import com.park.utmstack.repository.compliance.UtmComplianceControlConfigRepository;
5+
import com.park.utmstack.service.dto.compliance.UtmComplianceControlConfigCriteria;
6+
import com.park.utmstack.service.dto.compliance.UtmComplianceControlConfigDto;
7+
import com.park.utmstack.service.mapper.compliance.UtmComplianceControlConfigMapper;
8+
import org.springframework.data.domain.Page;
9+
import org.springframework.data.domain.Pageable;
10+
import org.springframework.data.jpa.domain.Specification;
11+
import org.springframework.stereotype.Service;
12+
import org.springframework.transaction.annotation.Transactional;
13+
import tech.jhipster.service.QueryService;
14+
15+
@Service
16+
@Transactional(readOnly = true)
17+
public class UtmComplianceControlConfigQueryService extends QueryService<UtmComplianceControlConfig> {
18+
19+
private final UtmComplianceControlConfigRepository complianceControlConfigRepository;
20+
private final UtmComplianceControlConfigMapper mapper;
21+
22+
public UtmComplianceControlConfigQueryService(UtmComplianceControlConfigRepository complianceControlConfigRepository,
23+
UtmComplianceControlConfigMapper mapper) {
24+
this.complianceControlConfigRepository = complianceControlConfigRepository;
25+
this.mapper = mapper;
26+
}
27+
28+
@Transactional(readOnly = true)
29+
public Page<UtmComplianceControlConfigDto> findByCriteria(UtmComplianceControlConfigCriteria criteria, Pageable page) {
30+
final Specification<UtmComplianceControlConfig> specification = createSpecification(criteria);
31+
return complianceControlConfigRepository.findAll(specification, page).map(mapper::toDto);
32+
}
33+
34+
private Specification<UtmComplianceControlConfig> createSpecification(UtmComplianceControlConfigCriteria criteria) {
35+
Specification<UtmComplianceControlConfig> specification = Specification.where(null);
36+
if (criteria != null) {
37+
if (criteria.getId() != null) {
38+
specification = specification.and(buildSpecification(criteria.getId(), UtmComplianceControlConfig_.id));
39+
}
40+
if (criteria.getStandardSectionId() != null) {
41+
specification = specification.and(
42+
buildRangeSpecification(criteria.getStandardSectionId(), UtmComplianceControlConfig_.standardSectionId));
43+
}
44+
if (criteria.getControlName() != null) {
45+
specification = specification.and(
46+
buildStringSpecification(criteria.getControlName(), UtmComplianceControlConfig_.controlName));
47+
}
48+
if (criteria.getControlSolution() != null ) {
49+
specification = specification.and(
50+
buildStringSpecification(criteria.getControlSolution(), UtmComplianceControlConfig_.controlSolution));
51+
}
52+
if (criteria.getControlRemediation() != null) {
53+
specification = specification.and(
54+
buildStringSpecification(criteria.getControlRemediation(), UtmComplianceControlConfig_.controlRemediation));
55+
}
56+
if (criteria.getControlStrategy() != null) {
57+
specification = specification.and(
58+
buildSpecification(criteria.getControlStrategy(), UtmComplianceControlConfig_.controlStrategy)
59+
);
60+
}
61+
62+
}
63+
return specification;
64+
}
65+
}

backend/src/main/java/com/park/utmstack/service/compliance/config/UtmComplianceControlConfigService.java

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -83,6 +83,7 @@ public UtmComplianceControlConfigDto findById(Long id) {
8383
return mapper.toDto(entity);
8484
}
8585

86+
//TODO: ELENA ????
8687
public List<UtmComplianceControlConfig> findAll() {
8788
return repository.findAll();
8889
}

backend/src/main/java/com/park/utmstack/service/compliance/config/UtmComplianceQueryConfigService.java

Lines changed: 0 additions & 26 deletions
This file was deleted.
Lines changed: 9 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,9 @@
1+
package com.park.utmstack.service.dto.compliance;
2+
3+
import com.park.utmstack.domain.compliance.enums.ComplianceStrategy;
4+
import tech.jhipster.service.filter.Filter;
5+
6+
public class ComplianceStrategyFilter extends Filter<ComplianceStrategy> {
7+
8+
}
9+
Lines changed: 17 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,17 @@
1+
package com.park.utmstack.service.dto.compliance;
2+
3+
import lombok.Getter;
4+
import lombok.Setter;
5+
import tech.jhipster.service.filter.LongFilter;
6+
import tech.jhipster.service.filter.StringFilter;
7+
8+
@Getter
9+
@Setter
10+
public class UtmComplianceControlConfigCriteria {
11+
private LongFilter id;
12+
private LongFilter standardSectionId;
13+
private StringFilter controlName;
14+
private StringFilter controlSolution;
15+
private StringFilter controlRemediation;
16+
private ComplianceStrategyFilter controlStrategy;
17+
}

backend/src/main/java/com/park/utmstack/service/dto/compliance/UtmComplianceQueryConfigDto.java

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -6,6 +6,7 @@
66
@Data
77
public class UtmComplianceQueryConfigDto {
88
private Long id;
9+
private String queryName;
910
private String queryDescription;
1011
private String sqlQuery;
1112
private EvaluationRule evaluationRule;

0 commit comments

Comments
 (0)