From 65694bb5b78b5fc473da7dc593e4005a3b24bc01 Mon Sep 17 00:00:00 2001 From: wildeslam Date: Mon, 25 Dec 2023 13:55:55 +0800 Subject: [PATCH] feat: mergeMocker display&update --- .../java/com/arextest/model/mock/AREXMocker.java | 5 +++++ .../com/arextest/model/mock/SplitAREXMocker.java | 14 -------------- .../storage/service/MockSourceEditionService.java | 3 +-- .../storage/service/ScheduleReplayingService.java | 9 ++++----- .../controller/MockSourceEditionController.java | 12 +++++------- 5 files changed, 15 insertions(+), 28 deletions(-) delete mode 100644 arex-storage-model/src/main/java/com/arextest/model/mock/SplitAREXMocker.java diff --git a/arex-storage-model/src/main/java/com/arextest/model/mock/AREXMocker.java b/arex-storage-model/src/main/java/com/arextest/model/mock/AREXMocker.java index 9b8709dd..2ae62b8b 100644 --- a/arex-storage-model/src/main/java/com/arextest/model/mock/AREXMocker.java +++ b/arex-storage-model/src/main/java/com/arextest/model/mock/AREXMocker.java @@ -47,6 +47,11 @@ public class AREXMocker implements Mocker { */ private Map tags; + /** + * index for mergedRecord. + */ + private Integer index; + public AREXMocker() { } diff --git a/arex-storage-model/src/main/java/com/arextest/model/mock/SplitAREXMocker.java b/arex-storage-model/src/main/java/com/arextest/model/mock/SplitAREXMocker.java deleted file mode 100644 index e986ac50..00000000 --- a/arex-storage-model/src/main/java/com/arextest/model/mock/SplitAREXMocker.java +++ /dev/null @@ -1,14 +0,0 @@ -package com.arextest.model.mock; - -import lombok.Data; -import lombok.EqualsAndHashCode; - -/** - * @author wildeslam. - * @create 2023/12/20 15:49 - */ -@Data -@EqualsAndHashCode(callSuper = true) -public class SplitAREXMocker extends AREXMocker { - private Integer index; -} diff --git a/arex-storage-web-api/src/main/java/com/arextest/storage/service/MockSourceEditionService.java b/arex-storage-web-api/src/main/java/com/arextest/storage/service/MockSourceEditionService.java index 42a08def..c5e8d4d0 100644 --- a/arex-storage-web-api/src/main/java/com/arextest/storage/service/MockSourceEditionService.java +++ b/arex-storage-web-api/src/main/java/com/arextest/storage/service/MockSourceEditionService.java @@ -5,7 +5,6 @@ import com.arextest.model.mock.MergeRecordDTO; import com.arextest.model.mock.MockCategoryType; import com.arextest.model.mock.Mocker; -import com.arextest.model.mock.SplitAREXMocker; import com.arextest.storage.repository.RepositoryProvider; import com.arextest.storage.repository.RepositoryProviderFactory; import com.fasterxml.jackson.core.type.TypeReference; @@ -39,7 +38,7 @@ public boolean add(String providerName, T item) { return repositoryWriter != null && repositoryWriter.save(item); } - public T editMergedMocker(String providerName, SplitAREXMocker item) { + public T editMergedMocker(String providerName, AREXMocker item) { RepositoryProvider repositoryProvider = providerFactory.findProvider(providerName); if (repositoryProvider == null) { LOGGER.warn("Could not found provider for {}", providerName); diff --git a/arex-storage-web-api/src/main/java/com/arextest/storage/service/ScheduleReplayingService.java b/arex-storage-web-api/src/main/java/com/arextest/storage/service/ScheduleReplayingService.java index c3809e85..7e7c29e2 100644 --- a/arex-storage-web-api/src/main/java/com/arextest/storage/service/ScheduleReplayingService.java +++ b/arex-storage-web-api/src/main/java/com/arextest/storage/service/ScheduleReplayingService.java @@ -9,7 +9,6 @@ import com.arextest.model.mock.MockCategoryType; import com.arextest.model.mock.Mocker; import com.arextest.model.mock.Mocker.Target; -import com.arextest.model.mock.SplitAREXMocker; import com.arextest.model.replay.PagedRequestType; import com.arextest.model.replay.ViewRecordRequestType; import com.arextest.model.replay.holder.ListResultHolder; @@ -141,7 +140,7 @@ private List splitMergedMockers(List mockerList) { List result = new ArrayList<>(); for (AREXMocker mocker : mockerList) { if (MERGE_RECORD_OPERATION_NAME.equals(mocker.getOperationName())) { - List splitMockers = splitMergedMocker(mocker); + List splitMockers = splitMergedMocker(mocker); if (CollectionUtils.isNotEmpty(splitMockers)) { result.addAll(splitMockers); } @@ -152,15 +151,15 @@ private List splitMergedMockers(List mockerList) { return result; } - private List splitMergedMocker(AREXMocker mocker) { - List result = new ArrayList<>(); + private List splitMergedMocker(AREXMocker mocker) { + List result = new ArrayList<>(); String json = mocker.getTargetResponse().getBody(); try { List mergeRecords = objectMapper.readValue(json, new TypeReference>() {}); for (int i = 0; i < mergeRecords.size(); i++) { MergeRecordDTO mergeRecord = mergeRecords.get(i); - SplitAREXMocker splitMocker = new SplitAREXMocker(); + AREXMocker splitMocker = new AREXMocker(); splitMocker.setAppId(mocker.getAppId()); splitMocker.setCategoryType(mocker.getCategoryType()); splitMocker.setRecordId(mocker.getRecordId()); diff --git a/arex-storage-web-api/src/main/java/com/arextest/storage/web/controller/MockSourceEditionController.java b/arex-storage-web-api/src/main/java/com/arextest/storage/web/controller/MockSourceEditionController.java index 3a74796c..e61eaad4 100644 --- a/arex-storage-web-api/src/main/java/com/arextest/storage/web/controller/MockSourceEditionController.java +++ b/arex-storage-web-api/src/main/java/com/arextest/storage/web/controller/MockSourceEditionController.java @@ -2,7 +2,6 @@ import com.arextest.model.mock.AREXMocker; import com.arextest.model.mock.MockCategoryType; -import com.arextest.model.mock.SplitAREXMocker; import com.arextest.model.response.Response; import com.arextest.model.response.ResponseStatusType; import com.arextest.storage.repository.ProviderNames; @@ -160,7 +159,7 @@ public Response add(@PathVariable String srcProviderName, @RequestBody AREXMocke */ @PostMapping("/pinned/update/") @ResponseBody - public Response pinnedUpdate(@RequestBody SplitAREXMocker body) { + public Response pinnedUpdate(@RequestBody AREXMocker body) { return this.update(ProviderNames.PINNED, body); } @@ -172,7 +171,7 @@ public Response pinnedUpdate(@RequestBody SplitAREXMocker body) { */ @PostMapping("/update/") @ResponseBody - public Response update(@RequestHeader String srcProviderName, @RequestBody SplitAREXMocker body) { + public Response update(@RequestHeader String srcProviderName, @RequestBody AREXMocker body) { Response response = checkRequiredParameters(srcProviderName, body); if (response != null) { return response; @@ -181,17 +180,16 @@ public Response update(@RequestHeader String srcProviderName, @RequestBody Spli try { Integer index = body.getIndex(); - boolean updateResult = false; if (index != null) { // splitMocker AREXMocker mocker = editableService.editMergedMocker(srcProviderName, body); + body = mocker; if (mocker == null) { return ResponseUtils.resourceNotFoundResponse(); } - updateResult = editableService.update(srcProviderName, mocker); - } else { - updateResult = editableService.update(srcProviderName, body); } + boolean updateResult = editableService.update(srcProviderName, body); + if (updateResult) { storageCache.removeRecord(srcProviderName, category, body.getRecordId());