fixed rest template
This commit is contained in:
parent
2809bff3b9
commit
8e2d075f56
@ -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() {
|
||||||
|
|||||||
@ -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>> {
|
||||||
|
|||||||
@ -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)
|
||||||
|
|||||||
@ -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);
|
||||||
}
|
}
|
||||||
|
|||||||
Loading…
x
Reference in New Issue
Block a user