From 8e2d075f56682e79db3cec20c8fa94a8ec25172e Mon Sep 17 00:00:00 2001 From: ScarletRedMan Date: Mon, 27 May 2024 00:29:04 +0700 Subject: [PATCH] fixed rest template --- .../dragonestia/picker/api/impl/RoomPickerClient.java | 8 +++++--- .../dragonestia/picker/api/impl/util/RestTemplate.java | 8 +++++--- .../main/java/ru/dragonestia/picker/noiser/Main.java | 10 +++++----- .../picker/security/AccountHeadersFilter.java | 2 +- 4 files changed, 16 insertions(+), 12 deletions(-) diff --git a/client-impl/src/main/java/ru/dragonestia/picker/api/impl/RoomPickerClient.java b/client-impl/src/main/java/ru/dragonestia/picker/api/impl/RoomPickerClient.java index d47818c..0829e09 100644 --- a/client-impl/src/main/java/ru/dragonestia/picker/api/impl/RoomPickerClient.java +++ b/client-impl/src/main/java/ru/dragonestia/picker/api/impl/RoomPickerClient.java @@ -1,5 +1,6 @@ package ru.dragonestia.picker.api.impl; +import com.fasterxml.jackson.core.type.TypeReference; import okhttp3.Credentials; import okhttp3.Request; import org.jetbrains.annotations.ApiStatus.Internal; @@ -55,7 +56,7 @@ public class RoomPickerClient { .addHeader("Authorization", Credentials.basic(username, password)); } - public InstanceRepository getNodeRepository() { + public InstanceRepository getInstanceRepository() { return instanceRepository; } @@ -63,7 +64,7 @@ public class RoomPickerClient { return roomRepository; } - public EntityRepository getUserRepository() { + public EntityRepository getEntityRepository() { return entityRepository; } @@ -72,7 +73,8 @@ public class RoomPickerClient { } public RoomPickerInfoResponse getServerInfo() { - return restTemplate.queryWithRequest("/info", HttpMethod.GET, params -> {}); + return restTemplate.queryWithRequest("/info", HttpMethod.GET, new TypeReference<>() { + }, params -> {}); } public Account getAccount() { diff --git a/client-impl/src/main/java/ru/dragonestia/picker/api/impl/util/RestTemplate.java b/client-impl/src/main/java/ru/dragonestia/picker/api/impl/util/RestTemplate.java index 74c7ff5..1eb06d7 100644 --- a/client-impl/src/main/java/ru/dragonestia/picker/api/impl/util/RestTemplate.java +++ b/client-impl/src/main/java/ru/dragonestia/picker/api/impl/util/RestTemplate.java @@ -188,9 +188,6 @@ public class RestTemplate { throw new NotEnoughPermissions("Not enough permissions"); } - var accountData = json.readValue(response.header("X-RoomPicker-Account"), Account.class); - accountConsumer.accept(accountData); - var exceptionClass = response.header("X-Server-Exception"); var body = new String(Objects.requireNonNull(response.body()).bytes(), StandardCharsets.UTF_8); throw ExceptionService.prepare(exceptionClass, body); @@ -199,6 +196,11 @@ public class RestTemplate { if (statusCode == 5) { throw new RuntimeException("Internal server error"); } + + if (statusCode == 2) { + var accountData = json.readValue(response.header("X-Roompicker-Account"), Account.class); + accountConsumer.accept(accountData); + } } public interface ParamsConsumer extends Consumer> { diff --git a/noiser/src/main/java/ru/dragonestia/picker/noiser/Main.java b/noiser/src/main/java/ru/dragonestia/picker/noiser/Main.java index a2c9986..7732182 100644 --- a/noiser/src/main/java/ru/dragonestia/picker/noiser/Main.java +++ b/noiser/src/main/java/ru/dragonestia/picker/noiser/Main.java @@ -34,8 +34,8 @@ public class Main { } private void removeAll() { - client.getNodeRepository().allNodes(GetAllNodes.JUST) - .forEach(node -> client.getNodeRepository().removeNode(node)); + client.getInstanceRepository().allNodes(GetAllNodes.JUST) + .forEach(node -> client.getInstanceRepository().removeNode(node)); } private List initNodes() { @@ -47,7 +47,7 @@ public class Main { var node = new NodeDefinition(NodeIdentifier.of("test-node-" + i)) .setPickingMethod(PickingMethod.values()[i % PickingMethod.values().length]); - client.getNodeRepository().saveNode(node); + client.getInstanceRepository().saveNode(node); var nodeId = node.getIdentifierObject(); totalUsers.put(nodeId, new AtomicInteger(0)); @@ -85,7 +85,7 @@ public class Main { users.add(EntityIdentifier.of(UUID.randomUUID().toString())); } - var request = client.getNodeRepository().pickRoom(nodeId, users); + var request = client.getInstanceRepository().pickRoom(nodeId, users); usersInNode.addAndGet(add); var roomId = RoomIdentifier.of(request.roomId()); @@ -93,7 +93,7 @@ public class Main { scheduler.schedule(() -> { try { - client.getUserRepository().unlinkUsersFromRoom(UnlinkUsersFromRoom.builder() + client.getEntityRepository().unlinkUsersFromRoom(UnlinkUsersFromRoom.builder() .setNodeId(nodeId) .setRoomId(roomId) .setUsers(users) diff --git a/server/src/main/java/ru/dragonestia/picker/security/AccountHeadersFilter.java b/server/src/main/java/ru/dragonestia/picker/security/AccountHeadersFilter.java index e77fbe6..ac30766 100644 --- a/server/src/main/java/ru/dragonestia/picker/security/AccountHeadersFilter.java +++ b/server/src/main/java/ru/dragonestia/picker/security/AccountHeadersFilter.java @@ -27,7 +27,7 @@ public class AccountHeadersFilter implements Filter { var data = new AccountData(account.getId().getValue(), new ArrayList<>(account.getAuthorities()), account.isLocked()); HttpServletResponse httpServletResponse = (HttpServletResponse) response; - httpServletResponse.setHeader("X-RoomPicker-Account", objectMapper.writeValueAsString(data)); + httpServletResponse.setHeader("X-Roompicker-Account", objectMapper.writeValueAsString(data)); chain.doFilter(request, response); }