Merge pull request #1286 from navi-infra/INFRA-3970-5
INFRA-3970 | Dhruv | skip validation before finally merging CR
This commit is contained in:
@@ -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);
|
||||
|
||||
@@ -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);
|
||||
|
||||
@@ -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());
|
||||
|
||||
Reference in New Issue
Block a user