fixed rest template

This commit is contained in:
Andrey Terentev 2024-05-27 00:29:04 +07:00 committed by Andrey Terentev
parent 2809bff3b9
commit 8e2d075f56
4 changed files with 16 additions and 12 deletions

View File

@ -1,5 +1,6 @@
package ru.dragonestia.picker.api.impl; package ru.dragonestia.picker.api.impl;
import com.fasterxml.jackson.core.type.TypeReference;
import okhttp3.Credentials; import okhttp3.Credentials;
import okhttp3.Request; import okhttp3.Request;
import org.jetbrains.annotations.ApiStatus.Internal; import org.jetbrains.annotations.ApiStatus.Internal;
@ -55,7 +56,7 @@ public class RoomPickerClient {
.addHeader("Authorization", Credentials.basic(username, password)); .addHeader("Authorization", Credentials.basic(username, password));
} }
public InstanceRepository getNodeRepository() { public InstanceRepository getInstanceRepository() {
return instanceRepository; return instanceRepository;
} }
@ -63,7 +64,7 @@ public class RoomPickerClient {
return roomRepository; return roomRepository;
} }
public EntityRepository getUserRepository() { public EntityRepository getEntityRepository() {
return entityRepository; return entityRepository;
} }
@ -72,7 +73,8 @@ public class RoomPickerClient {
} }
public RoomPickerInfoResponse getServerInfo() { public RoomPickerInfoResponse getServerInfo() {
return restTemplate.queryWithRequest("/info", HttpMethod.GET, params -> {}); return restTemplate.queryWithRequest("/info", HttpMethod.GET, new TypeReference<>() {
}, params -> {});
} }
public Account getAccount() { public Account getAccount() {

View File

@ -188,9 +188,6 @@ public class RestTemplate {
throw new NotEnoughPermissions("Not enough permissions"); 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 exceptionClass = response.header("X-Server-Exception");
var body = new String(Objects.requireNonNull(response.body()).bytes(), StandardCharsets.UTF_8); var body = new String(Objects.requireNonNull(response.body()).bytes(), StandardCharsets.UTF_8);
throw ExceptionService.prepare(exceptionClass, body); throw ExceptionService.prepare(exceptionClass, body);
@ -199,6 +196,11 @@ public class RestTemplate {
if (statusCode == 5) { if (statusCode == 5) {
throw new RuntimeException("Internal server error"); 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<Map<String, String>> { public interface ParamsConsumer extends Consumer<Map<String, String>> {

View File

@ -34,8 +34,8 @@ public class Main {
} }
private void removeAll() { private void removeAll() {
client.getNodeRepository().allNodes(GetAllNodes.JUST) client.getInstanceRepository().allNodes(GetAllNodes.JUST)
.forEach(node -> client.getNodeRepository().removeNode(node)); .forEach(node -> client.getInstanceRepository().removeNode(node));
} }
private List<NodeIdentifier> initNodes() { private List<NodeIdentifier> initNodes() {
@ -47,7 +47,7 @@ public class Main {
var node = new NodeDefinition(NodeIdentifier.of("test-node-" + i)) var node = new NodeDefinition(NodeIdentifier.of("test-node-" + i))
.setPickingMethod(PickingMethod.values()[i % PickingMethod.values().length]); .setPickingMethod(PickingMethod.values()[i % PickingMethod.values().length]);
client.getNodeRepository().saveNode(node); client.getInstanceRepository().saveNode(node);
var nodeId = node.getIdentifierObject(); var nodeId = node.getIdentifierObject();
totalUsers.put(nodeId, new AtomicInteger(0)); totalUsers.put(nodeId, new AtomicInteger(0));
@ -85,7 +85,7 @@ public class Main {
users.add(EntityIdentifier.of(UUID.randomUUID().toString())); users.add(EntityIdentifier.of(UUID.randomUUID().toString()));
} }
var request = client.getNodeRepository().pickRoom(nodeId, users); var request = client.getInstanceRepository().pickRoom(nodeId, users);
usersInNode.addAndGet(add); usersInNode.addAndGet(add);
var roomId = RoomIdentifier.of(request.roomId()); var roomId = RoomIdentifier.of(request.roomId());
@ -93,7 +93,7 @@ public class Main {
scheduler.schedule(() -> { scheduler.schedule(() -> {
try { try {
client.getUserRepository().unlinkUsersFromRoom(UnlinkUsersFromRoom.builder() client.getEntityRepository().unlinkUsersFromRoom(UnlinkUsersFromRoom.builder()
.setNodeId(nodeId) .setNodeId(nodeId)
.setRoomId(roomId) .setRoomId(roomId)
.setUsers(users) .setUsers(users)

View File

@ -27,7 +27,7 @@ public class AccountHeadersFilter implements Filter {
var data = new AccountData(account.getId().getValue(), new ArrayList<>(account.getAuthorities()), account.isLocked()); var data = new AccountData(account.getId().getValue(), new ArrayList<>(account.getAuthorities()), account.isLocked());
HttpServletResponse httpServletResponse = (HttpServletResponse) response; HttpServletResponse httpServletResponse = (HttpServletResponse) response;
httpServletResponse.setHeader("X-RoomPicker-Account", objectMapper.writeValueAsString(data)); httpServletResponse.setHeader("X-Roompicker-Account", objectMapper.writeValueAsString(data));
chain.doFilter(request, response); chain.doFilter(request, response);
} }