Merge pull request #1286 from navi-infra/INFRA-3970-5

INFRA-3970 | Dhruv | skip validation before finally merging CR
This commit is contained in:
Dhruv Joshi
2024-12-19 19:02:08 +05:30
committed by GitHub
3 changed files with 19 additions and 10 deletions

View File

@@ -252,14 +252,15 @@ public class ManifestService {
+ "#manifest, T(com.navi.infra.portal.v2.privilege.Action).MANIFEST_WRITE)")
@Transactional
public ManifestResponse createOrUpdate(Manifest manifest) {
return createOrUpdate(manifest, false);
return processManifest(manifest, false);
}
@PreAuthorize(
"@auth.hasPermissions(T(com.navi.infra.portal.v2.privilege.ResourceType).MANIFEST, "
+ "#manifest, T(com.navi.infra.portal.v2.privilege.Action).MANIFEST_WRITE)")
@Transactional
public ManifestResponse createOrUpdate(Manifest manifest, boolean isApprovedChangeRequest) {
public void createOrUpdateWithoutAuthorization(Manifest manifest) {
processManifest(manifest, true);
}
public ManifestResponse processManifest(Manifest manifest, boolean isApprovedChangeRequest) {
log.info("Saving manifest: {}", manifest.fullName());
ManifestResponse manifestResponse = new ManifestResponse();
validateManifest(manifest, manifestResponse);

View File

@@ -96,7 +96,8 @@ public class ChangeRequestServiceImpl implements ChangeRequestService {
@Transactional
public ChangeRequest create(final ChangeRequest newCr) {
final var identifierPopulatedCr = ChangeRequestUtils.populateIdentifier(newCr);
final var oldCr = repository.findFirstPendingByManifestId(identifierPopulatedCr.getManifestId())
final var oldCr = repository.findFirstPendingByManifestId(
identifierPopulatedCr.getManifestId())
.orElse(null);
final var finalCr = mergeCr(identifierPopulatedCr, oldCr);
@@ -245,7 +246,7 @@ public class ChangeRequestServiceImpl implements ChangeRequestService {
final var manifestMap = manifest.convertToMap();
mergeCr(manifestMap, changeRequest);
final var mergedManifest = objectMapper.convertValue(manifestMap, Manifest.class);
manifestService.createOrUpdate(mergedManifest, true);
manifestService.createOrUpdateWithoutAuthorization(mergedManifest);
}
@Override
@@ -337,7 +338,10 @@ public class ChangeRequestServiceImpl implements ChangeRequestService {
.collect(toMap(User::getId, user -> Optional.of(user.getName()).orElse("")));
}
private Map<String, Object> getCurrentValuesWhileResolvingCr(ChangeRequest cr, Manifest manifest) {
private Map<String, Object> getCurrentValuesWhileResolvingCr(
ChangeRequest cr,
Manifest manifest
) {
final var manifestMap = manifest.convertToMap();
final var currentValueMap = new HashMap<String, Object>();
for (final var change : cr.getDiff()) {
@@ -362,7 +366,11 @@ public class ChangeRequestServiceImpl implements ChangeRequestService {
return list;
}
private Object getCurrentValue(Map<String, Object> manifestMap, String jsonPath, Manifest manifest) {
private Object getCurrentValue(
Map<String, Object> manifestMap,
String jsonPath,
Manifest manifest
) {
Object currentValue = null;
try {
currentValue = mapUtil.getValueAtPath(manifestMap, jsonPath);

View File

@@ -869,7 +869,7 @@ class ManifestServiceTest {
when(repo.save(createRequestManifest)).thenReturn(createdManifest);
when(repo.save(updateRequestManifest)).thenReturn(updateRequestManifest);
service.createOrUpdate(createRequestManifest, true);
service.createOrUpdateWithoutAuthorization(createRequestManifest);
when(repo.findById(1L)).thenReturn(Optional.of(createdManifest));
ManifestResponse manifestResponse = service.createOrUpdate(updateRequestManifest);
assertEquals(0, manifestResponse.getError().size());