diff --git a/Backend/mocked-services/src/main/java/com/r11/tools/controller/MockController.java b/Backend/mocked-services/src/main/java/com/r11/tools/controller/MockController.java index bd63b8b..766d1d8 100644 --- a/Backend/mocked-services/src/main/java/com/r11/tools/controller/MockController.java +++ b/Backend/mocked-services/src/main/java/com/r11/tools/controller/MockController.java @@ -5,19 +5,15 @@ import com.r11.tools.model.MockedMessageDto; import com.r11.tools.service.KlausService; import com.r11.tools.utilis.BusinessKey; import com.r11.tools.utilis.TrackingClient; -import java.time.LocalDateTime; -import java.util.Collections; -import java.util.HashMap; -import java.util.List; -import java.util.Map; -import java.util.Objects; -import java.util.UUID; import lombok.AllArgsConstructor; import lombok.SneakyThrows; import lombok.extern.slf4j.Slf4j; import org.springframework.http.*; import org.springframework.web.bind.annotation.*; +import java.time.LocalDateTime; +import java.util.*; + /** * Returns the homepage and provides the api for javascript async requests. * @author Gabriel Modzelewski @@ -64,6 +60,32 @@ public class MockController { return messages; } + /** + * If provided UUID does not exist in database returns ResponseEntity with new generated UUID(if previous UUID is not provided), + * or old UUID(if previous UUID is provided). If provided UUID exists function returns provided UUID. + * @param givenUUIDValue the UUID client wants to check exsitance in database + * @param previousUUIDValue the previous UUID used by client(optional variable) + * @return ResponseEntity with UUID + */ + @RequestMapping( + method = RequestMethod.GET , + path = {"/check/{givenUUIDValue}/{previousUUIDValue}", + "/check/{givenUUIDValue}"}) + public ResponseEntity checkUUID( + @PathVariable String givenUUIDValue + ,@PathVariable(required = false) String previousUUIDValue ){ + try{ + UUID.fromString(givenUUIDValue); + } catch (IllegalArgumentException ex){ + if (previousUUIDValue == null || previousUUIDValue.equals("")){ + UUID newUUID = UUID.randomUUID(); + return ResponseEntity.ok(newUUID.toString()); + } + return ResponseEntity.ok(previousUUIDValue); + } + return ResponseEntity.ok(givenUUIDValue); + } + /** * Accepts empty post request and creates new message in given set. The new message has default set of data, * which is constructed in {@link #buildDefaultMessage(UUID, int)} method. diff --git a/Backend/mocked-services/src/main/java/com/r11/tools/repository/MockedResponseRepository.java b/Backend/mocked-services/src/main/java/com/r11/tools/repository/MockedResponseRepository.java index 29d7477..7b12b0b 100644 --- a/Backend/mocked-services/src/main/java/com/r11/tools/repository/MockedResponseRepository.java +++ b/Backend/mocked-services/src/main/java/com/r11/tools/repository/MockedResponseRepository.java @@ -2,6 +2,7 @@ package com.r11.tools.repository; import com.r11.tools.model.MockedMessage; import java.util.List; +import java.util.Optional; import java.util.UUID; import org.springframework.data.repository.CrudRepository; import org.springframework.stereotype.Repository; @@ -19,5 +20,5 @@ public interface MockedResponseRepository extends CrudRepository findAllByClientUUID(UUID clientUUID); + Optional> findAllByClientUUID(UUID clientUUID); } diff --git a/Backend/mocked-services/src/main/java/com/r11/tools/service/KlausServiceImpl.java b/Backend/mocked-services/src/main/java/com/r11/tools/service/KlausServiceImpl.java index f3cdfaf..3c23b31 100644 --- a/Backend/mocked-services/src/main/java/com/r11/tools/service/KlausServiceImpl.java +++ b/Backend/mocked-services/src/main/java/com/r11/tools/service/KlausServiceImpl.java @@ -5,10 +5,6 @@ import com.r11.tools.mappers.MockedMessageMapper; import com.r11.tools.model.MockedMessage; import com.r11.tools.model.MockedMessageDto; import com.r11.tools.repository.MockedResponseRepository; -import java.util.List; -import java.util.Optional; -import java.util.UUID; -import java.util.stream.Collectors; import lombok.AllArgsConstructor; import lombok.SneakyThrows; import lombok.extern.slf4j.Slf4j; @@ -16,6 +12,10 @@ import org.springframework.http.HttpHeaders; import org.springframework.http.HttpStatus; import org.springframework.http.ResponseEntity; import org.springframework.stereotype.Service; +import java.util.List; +import java.util.Optional; +import java.util.UUID; +import java.util.stream.Collectors; /** * Service for {@link com.r11.tools.controller.MockController} and {@link com.r11.tools.controller.MockController} @@ -52,10 +52,11 @@ public class KlausServiceImpl implements KlausService { * @return List of {@link MockedMessageDto} */ @Override - public List getAllMockedResponses(UUID clientUUID) { - return mockedResponseRepository.findAllByClientUUID(clientUUID).stream() + public List getAllMockedResponses(UUID clientUUID){ + Optional> listOptional = mockedResponseRepository.findAllByClientUUID(clientUUID); + return listOptional.map(mockedMessages -> mockedMessages.stream() .map(mockedMessageMapper::mockedMessageToMockedMessageDto) - .collect(Collectors.toList()); + .collect(Collectors.toList())).orElse(List.of()); } /** diff --git a/Backend/mocked-services/src/main/resources/static/html/mock.html b/Backend/mocked-services/src/main/resources/static/html/mock.html index 4e15ac5..e62775b 100644 --- a/Backend/mocked-services/src/main/resources/static/html/mock.html +++ b/Backend/mocked-services/src/main/resources/static/html/mock.html @@ -27,6 +27,16 @@ + +
+ + + +
+ + +
+
@@ -253,6 +263,16 @@
+