From 2a21143711929a4b6520d2495afc33c98b19ab6e Mon Sep 17 00:00:00 2001 From: ScarletRedMan Date: Mon, 27 May 2024 00:34:23 +0700 Subject: [PATCH] fixed repositories --- .../picker/api/impl/RoomPickerClient.java | 2 +- .../api/impl/repository/AccountRepositoryImpl.java | 13 ++++++------- .../api/impl/repository/EntityRepositoryImpl.java | 8 ++++---- .../api/impl/repository/InstanceRepositoryImpl.java | 8 +++----- .../api/impl/repository/RoomRepositoryImpl.java | 8 +++----- .../picker/api/impl/util/RestTemplate.java | 12 +++--------- 6 files changed, 20 insertions(+), 31 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 0829e09..41cae0e 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 @@ -73,7 +73,7 @@ public class RoomPickerClient { } public RoomPickerInfoResponse getServerInfo() { - return restTemplate.queryWithRequest("/info", HttpMethod.GET, new TypeReference<>() { + return restTemplate.query("/info", HttpMethod.GET, new TypeReference<>() { }, params -> {}); } diff --git a/client-impl/src/main/java/ru/dragonestia/picker/api/impl/repository/AccountRepositoryImpl.java b/client-impl/src/main/java/ru/dragonestia/picker/api/impl/repository/AccountRepositoryImpl.java index ec53379..b478bfa 100644 --- a/client-impl/src/main/java/ru/dragonestia/picker/api/impl/repository/AccountRepositoryImpl.java +++ b/client-impl/src/main/java/ru/dragonestia/picker/api/impl/repository/AccountRepositoryImpl.java @@ -1,5 +1,6 @@ package ru.dragonestia.picker.api.impl.repository; +import com.fasterxml.jackson.core.type.TypeReference; import ru.dragonestia.picker.api.impl.util.RestTemplate; import ru.dragonestia.picker.api.impl.util.type.HttpMethod; import ru.dragonestia.picker.api.model.account.Account; @@ -21,22 +22,20 @@ public class AccountRepositoryImpl implements AccountRepository { @Override public List allAccountsIds() { - List id = rest.queryWithRequest("/accounts", HttpMethod.GET); - return id.stream().map(AccountId::of).toList(); + return rest.query("/accounts", HttpMethod.GET, new TypeReference>(){}).stream().map(AccountId::of).toList(); } @Override public Account getAccount(AccountId id) { - ResponseObject.RAccount account = rest.queryWithRequest("/accounts/target/" + id, HttpMethod.GET); - return account.convert(); + + return rest.query("/accounts/target/" + id, HttpMethod.GET, new TypeReference(){}).convert(); } @Override public List getAccounts(Collection id) { - List accounts = rest.queryWithRequest("/accounts/list", HttpMethod.GET, params -> { + return rest.query("/accounts/list", HttpMethod.GET, new TypeReference>(){}, params -> { params.put("id", String.join(",", id.stream().map(AccountId::getValue).toList())); - }); - return accounts.stream().map(ResponseObject.RAccount::convert).toList(); + }).stream().map(ResponseObject.RAccount::convert).toList(); } @Override diff --git a/client-impl/src/main/java/ru/dragonestia/picker/api/impl/repository/EntityRepositoryImpl.java b/client-impl/src/main/java/ru/dragonestia/picker/api/impl/repository/EntityRepositoryImpl.java index 163e547..b8330ae 100644 --- a/client-impl/src/main/java/ru/dragonestia/picker/api/impl/repository/EntityRepositoryImpl.java +++ b/client-impl/src/main/java/ru/dragonestia/picker/api/impl/repository/EntityRepositoryImpl.java @@ -22,14 +22,14 @@ public class EntityRepositoryImpl implements EntityRepository { @Override public List searchUsers(EntityId input) { - return rest.queryWithRequest("/entities/search", HttpMethod.GET, new TypeReference>(){}, params -> { + return rest.query("/entities/search", HttpMethod.GET, new TypeReference>(){}, params -> { params.put("input", input.getValue()); }).stream().map(EntityId::of).toList(); } @Override public List getRooms(EntityId entity) { - return rest.queryWithRequest("/entities/target/rooms", + return rest.query("/entities/target/rooms", HttpMethod.GET, new TypeReference>() {}, params -> { @@ -40,7 +40,7 @@ public class EntityRepositoryImpl implements EntityRepository { @Override public Map> getRooms(Collection entities) { var map = new HashMap>(); - rest.queryWithRequest("/entities/list/rooms", HttpMethod.GET, new TypeReference>>() {}, params -> { + rest.query("/entities/list/rooms", HttpMethod.GET, new TypeReference>>() {}, params -> { params.put("id", String.join(",", entities.stream().map(EntityId::getValue).toList())); }).forEach((id, rooms) -> map.put(EntityId.of(id), rooms.stream().map(ResponseObject.RRoom::covert).toList())); return map; @@ -48,7 +48,7 @@ public class EntityRepositoryImpl implements EntityRepository { @Override public List getRoomEntities(InstanceId instanceId, RoomId roomId) { - return rest.queryWithRequest("/instances/%s/rooms/target/%s/users".formatted(instanceId.getValue(), roomId.getValue()), HttpMethod.GET, new TypeReference>(){}, params -> { + return rest.query("/instances/%s/rooms/target/%s/users".formatted(instanceId.getValue(), roomId.getValue()), HttpMethod.GET, new TypeReference>(){}, params -> { params.put("instanceId", instanceId.getValue()); params.put("roomId", roomId.getValue()); }).stream().map(EntityId::of).toList(); diff --git a/client-impl/src/main/java/ru/dragonestia/picker/api/impl/repository/InstanceRepositoryImpl.java b/client-impl/src/main/java/ru/dragonestia/picker/api/impl/repository/InstanceRepositoryImpl.java index 339f2f3..f5e3865 100644 --- a/client-impl/src/main/java/ru/dragonestia/picker/api/impl/repository/InstanceRepositoryImpl.java +++ b/client-impl/src/main/java/ru/dragonestia/picker/api/impl/repository/InstanceRepositoryImpl.java @@ -22,20 +22,18 @@ public class InstanceRepositoryImpl implements InstanceRepository { @Override public List allInstancesIds() { - List id = rest.queryWithRequest("/instances", HttpMethod.GET); - return id.stream().map(InstanceId::of).toList(); + return rest.query("/instances", HttpMethod.GET, new TypeReference>(){}).stream().map(InstanceId::of).toList(); } @Override public Instance getInstance(InstanceId id) { - ResponseObject.RInstance instance = rest.queryWithRequest("/instances/target/" + id.getValue(), HttpMethod.GET); - return instance.convert(); + return rest.query("/instances/target/" + id.getValue(), HttpMethod.GET, new TypeReference(){}).convert(); } @Override public Map getInstances(Collection ids) { var map = new HashMap(); - rest.queryWithRequest("/instances/target/list", HttpMethod.GET, new TypeReference>() {}, params -> { + rest.query("/instances/target/list", HttpMethod.GET, new TypeReference>() {}, params -> { params.put("id", String.join(",", ids.stream().map(InstanceId::getValue).toList())); }).stream().map(ResponseObject.RInstance::convert).forEach(instance -> map.put(instance.id(), instance)); return map; diff --git a/client-impl/src/main/java/ru/dragonestia/picker/api/impl/repository/RoomRepositoryImpl.java b/client-impl/src/main/java/ru/dragonestia/picker/api/impl/repository/RoomRepositoryImpl.java index 38c47f4..7d3e420 100644 --- a/client-impl/src/main/java/ru/dragonestia/picker/api/impl/repository/RoomRepositoryImpl.java +++ b/client-impl/src/main/java/ru/dragonestia/picker/api/impl/repository/RoomRepositoryImpl.java @@ -21,20 +21,18 @@ public class RoomRepositoryImpl implements RoomRepository { @Override public List allRoomsIds(InstanceId instanceId) { - List id = rest.queryWithRequest("/instances/target/%s/rooms".formatted(instanceId.getValue()), HttpMethod.GET); - return id.stream().map(RoomId::of).toList(); + return rest.query("/instances/target/%s/rooms".formatted(instanceId.getValue()), HttpMethod.GET, new TypeReference>(){}).stream().map(RoomId::of).toList(); } @Override public Room getRoom(InstanceId instanceId, RoomId roomId) { - ResponseObject.RRoom room = rest.queryWithRequest("/instances/target/%s/rooms/target/%s".formatted(instanceId.getValue(), roomId.getValue()), HttpMethod.GET); - return room.covert(); + return rest.query("/instances/target/%s/rooms/target/%s".formatted(instanceId.getValue(), roomId.getValue()), HttpMethod.GET, new TypeReference(){}).covert(); } @Override public Map getRooms(InstanceId instanceId, Collection rooms) { var map = new HashMap(); - rest.queryWithRequest("/instances/target/%s/rooms/list".formatted(instanceId.getValue()), HttpMethod.GET, new TypeReference>() {}, params -> { + rest.query("/instances/target/%s/rooms/list".formatted(instanceId.getValue()), HttpMethod.GET, new TypeReference>() {}, params -> { params.put("id", String.join(",", rooms.stream().map(RoomId::getValue).toList())); }).stream().map(ResponseObject.RRoom::covert).forEach(room -> map.put(room.id(), room)); return map; 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 1eb06d7..a922401 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 @@ -5,7 +5,6 @@ import com.fasterxml.jackson.core.JsonProcessingException; import com.fasterxml.jackson.core.type.TypeReference; import com.fasterxml.jackson.databind.JsonNode; import com.fasterxml.jackson.databind.ObjectMapper; -import com.fasterxml.jackson.databind.node.JsonNodeCreator; import okhttp3.*; import org.jetbrains.annotations.ApiStatus.Internal; import ru.dragonestia.picker.api.impl.exception.ExceptionService; @@ -21,7 +20,6 @@ import java.net.URLEncoder; import java.nio.charset.StandardCharsets; import java.util.*; import java.util.function.Consumer; -import java.util.stream.Stream; @Internal public class RestTemplate { @@ -58,15 +56,11 @@ public class RestTemplate { .build()); } - public T queryWithRequest(String uri, HttpMethod method) { - return queryWithRequest(uri, method, ParamsConsumer.NONE); + public T query(String uri, HttpMethod method, TypeReference type) { + return query(uri, method, type, ParamsConsumer.NONE); } - public T queryWithRequest(String uri, HttpMethod method, ParamsConsumer paramsConsumer) { - return queryWithRequest(uri, method, new TypeReference<>(){}, paramsConsumer); - } - - public T queryWithRequest(String uri, HttpMethod method, TypeReference type, ParamsConsumer paramsConsumer) { + public T query(String uri, HttpMethod method, TypeReference type, ParamsConsumer paramsConsumer) { return execute(client.prepareRequestBuilder(uri + queryEncode(paramsConsumer)) .method(method.name(), method == HttpMethod.GET? null : new FormBody.Builder().build()) .build(),