fixed repositories
This commit is contained in:
parent
8e2d075f56
commit
2a21143711
@ -73,7 +73,7 @@ public class RoomPickerClient {
|
|||||||
}
|
}
|
||||||
|
|
||||||
public RoomPickerInfoResponse getServerInfo() {
|
public RoomPickerInfoResponse getServerInfo() {
|
||||||
return restTemplate.queryWithRequest("/info", HttpMethod.GET, new TypeReference<>() {
|
return restTemplate.query("/info", HttpMethod.GET, new TypeReference<>() {
|
||||||
}, params -> {});
|
}, params -> {});
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@ -1,5 +1,6 @@
|
|||||||
package ru.dragonestia.picker.api.impl.repository;
|
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.RestTemplate;
|
||||||
import ru.dragonestia.picker.api.impl.util.type.HttpMethod;
|
import ru.dragonestia.picker.api.impl.util.type.HttpMethod;
|
||||||
import ru.dragonestia.picker.api.model.account.Account;
|
import ru.dragonestia.picker.api.model.account.Account;
|
||||||
@ -21,22 +22,20 @@ public class AccountRepositoryImpl implements AccountRepository {
|
|||||||
|
|
||||||
@Override
|
@Override
|
||||||
public List<AccountId> allAccountsIds() {
|
public List<AccountId> allAccountsIds() {
|
||||||
List<String> id = rest.queryWithRequest("/accounts", HttpMethod.GET);
|
return rest.query("/accounts", HttpMethod.GET, new TypeReference<List<String>>(){}).stream().map(AccountId::of).toList();
|
||||||
return id.stream().map(AccountId::of).toList();
|
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public Account getAccount(AccountId id) {
|
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<ResponseObject.RAccount>(){}).convert();
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public List<Account> getAccounts(Collection<AccountId> id) {
|
public List<Account> getAccounts(Collection<AccountId> id) {
|
||||||
List<ResponseObject.RAccount> accounts = rest.queryWithRequest("/accounts/list", HttpMethod.GET, params -> {
|
return rest.query("/accounts/list", HttpMethod.GET, new TypeReference<List<ResponseObject.RAccount>>(){}, params -> {
|
||||||
params.put("id", String.join(",", id.stream().map(AccountId::getValue).toList()));
|
params.put("id", String.join(",", id.stream().map(AccountId::getValue).toList()));
|
||||||
});
|
}).stream().map(ResponseObject.RAccount::convert).toList();
|
||||||
return accounts.stream().map(ResponseObject.RAccount::convert).toList();
|
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
|
|||||||
@ -22,14 +22,14 @@ public class EntityRepositoryImpl implements EntityRepository {
|
|||||||
|
|
||||||
@Override
|
@Override
|
||||||
public List<EntityId> searchUsers(EntityId input) {
|
public List<EntityId> searchUsers(EntityId input) {
|
||||||
return rest.queryWithRequest("/entities/search", HttpMethod.GET, new TypeReference<List<String>>(){}, params -> {
|
return rest.query("/entities/search", HttpMethod.GET, new TypeReference<List<String>>(){}, params -> {
|
||||||
params.put("input", input.getValue());
|
params.put("input", input.getValue());
|
||||||
}).stream().map(EntityId::of).toList();
|
}).stream().map(EntityId::of).toList();
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public List<Room> getRooms(EntityId entity) {
|
public List<Room> getRooms(EntityId entity) {
|
||||||
return rest.queryWithRequest("/entities/target/rooms",
|
return rest.query("/entities/target/rooms",
|
||||||
HttpMethod.GET,
|
HttpMethod.GET,
|
||||||
new TypeReference<List<ResponseObject.RRoom>>() {},
|
new TypeReference<List<ResponseObject.RRoom>>() {},
|
||||||
params -> {
|
params -> {
|
||||||
@ -40,7 +40,7 @@ public class EntityRepositoryImpl implements EntityRepository {
|
|||||||
@Override
|
@Override
|
||||||
public Map<EntityId, List<Room>> getRooms(Collection<EntityId> entities) {
|
public Map<EntityId, List<Room>> getRooms(Collection<EntityId> entities) {
|
||||||
var map = new HashMap<EntityId, List<Room>>();
|
var map = new HashMap<EntityId, List<Room>>();
|
||||||
rest.queryWithRequest("/entities/list/rooms", HttpMethod.GET, new TypeReference<Map<String, List<ResponseObject.RRoom>>>() {}, params -> {
|
rest.query("/entities/list/rooms", HttpMethod.GET, new TypeReference<Map<String, List<ResponseObject.RRoom>>>() {}, params -> {
|
||||||
params.put("id", String.join(",", entities.stream().map(EntityId::getValue).toList()));
|
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()));
|
}).forEach((id, rooms) -> map.put(EntityId.of(id), rooms.stream().map(ResponseObject.RRoom::covert).toList()));
|
||||||
return map;
|
return map;
|
||||||
@ -48,7 +48,7 @@ public class EntityRepositoryImpl implements EntityRepository {
|
|||||||
|
|
||||||
@Override
|
@Override
|
||||||
public List<EntityId> getRoomEntities(InstanceId instanceId, RoomId roomId) {
|
public List<EntityId> getRoomEntities(InstanceId instanceId, RoomId roomId) {
|
||||||
return rest.queryWithRequest("/instances/%s/rooms/target/%s/users".formatted(instanceId.getValue(), roomId.getValue()), HttpMethod.GET, new TypeReference<List<String>>(){}, params -> {
|
return rest.query("/instances/%s/rooms/target/%s/users".formatted(instanceId.getValue(), roomId.getValue()), HttpMethod.GET, new TypeReference<List<String>>(){}, params -> {
|
||||||
params.put("instanceId", instanceId.getValue());
|
params.put("instanceId", instanceId.getValue());
|
||||||
params.put("roomId", roomId.getValue());
|
params.put("roomId", roomId.getValue());
|
||||||
}).stream().map(EntityId::of).toList();
|
}).stream().map(EntityId::of).toList();
|
||||||
|
|||||||
@ -22,20 +22,18 @@ public class InstanceRepositoryImpl implements InstanceRepository {
|
|||||||
|
|
||||||
@Override
|
@Override
|
||||||
public List<InstanceId> allInstancesIds() {
|
public List<InstanceId> allInstancesIds() {
|
||||||
List<String> id = rest.queryWithRequest("/instances", HttpMethod.GET);
|
return rest.query("/instances", HttpMethod.GET, new TypeReference<List<String>>(){}).stream().map(InstanceId::of).toList();
|
||||||
return id.stream().map(InstanceId::of).toList();
|
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public Instance getInstance(InstanceId id) {
|
public Instance getInstance(InstanceId id) {
|
||||||
ResponseObject.RInstance instance = rest.queryWithRequest("/instances/target/" + id.getValue(), HttpMethod.GET);
|
return rest.query("/instances/target/" + id.getValue(), HttpMethod.GET, new TypeReference<ResponseObject.RInstance>(){}).convert();
|
||||||
return instance.convert();
|
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public Map<InstanceId, Instance> getInstances(Collection<InstanceId> ids) {
|
public Map<InstanceId, Instance> getInstances(Collection<InstanceId> ids) {
|
||||||
var map = new HashMap<InstanceId, Instance>();
|
var map = new HashMap<InstanceId, Instance>();
|
||||||
rest.queryWithRequest("/instances/target/list", HttpMethod.GET, new TypeReference<List<ResponseObject.RInstance>>() {}, params -> {
|
rest.query("/instances/target/list", HttpMethod.GET, new TypeReference<List<ResponseObject.RInstance>>() {}, params -> {
|
||||||
params.put("id", String.join(",", ids.stream().map(InstanceId::getValue).toList()));
|
params.put("id", String.join(",", ids.stream().map(InstanceId::getValue).toList()));
|
||||||
}).stream().map(ResponseObject.RInstance::convert).forEach(instance -> map.put(instance.id(), instance));
|
}).stream().map(ResponseObject.RInstance::convert).forEach(instance -> map.put(instance.id(), instance));
|
||||||
return map;
|
return map;
|
||||||
|
|||||||
@ -21,20 +21,18 @@ public class RoomRepositoryImpl implements RoomRepository {
|
|||||||
|
|
||||||
@Override
|
@Override
|
||||||
public List<RoomId> allRoomsIds(InstanceId instanceId) {
|
public List<RoomId> allRoomsIds(InstanceId instanceId) {
|
||||||
List<String> id = rest.queryWithRequest("/instances/target/%s/rooms".formatted(instanceId.getValue()), HttpMethod.GET);
|
return rest.query("/instances/target/%s/rooms".formatted(instanceId.getValue()), HttpMethod.GET, new TypeReference<List<String>>(){}).stream().map(RoomId::of).toList();
|
||||||
return id.stream().map(RoomId::of).toList();
|
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public Room getRoom(InstanceId instanceId, RoomId roomId) {
|
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 rest.query("/instances/target/%s/rooms/target/%s".formatted(instanceId.getValue(), roomId.getValue()), HttpMethod.GET, new TypeReference<ResponseObject.RRoom>(){}).covert();
|
||||||
return room.covert();
|
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public Map<RoomId, Room> getRooms(InstanceId instanceId, Collection<RoomId> rooms) {
|
public Map<RoomId, Room> getRooms(InstanceId instanceId, Collection<RoomId> rooms) {
|
||||||
var map = new HashMap<RoomId, Room>();
|
var map = new HashMap<RoomId, Room>();
|
||||||
rest.queryWithRequest("/instances/target/%s/rooms/list".formatted(instanceId.getValue()), HttpMethod.GET, new TypeReference<List<ResponseObject.RRoom>>() {}, params -> {
|
rest.query("/instances/target/%s/rooms/list".formatted(instanceId.getValue()), HttpMethod.GET, new TypeReference<List<ResponseObject.RRoom>>() {}, params -> {
|
||||||
params.put("id", String.join(",", rooms.stream().map(RoomId::getValue).toList()));
|
params.put("id", String.join(",", rooms.stream().map(RoomId::getValue).toList()));
|
||||||
}).stream().map(ResponseObject.RRoom::covert).forEach(room -> map.put(room.id(), room));
|
}).stream().map(ResponseObject.RRoom::covert).forEach(room -> map.put(room.id(), room));
|
||||||
return map;
|
return map;
|
||||||
|
|||||||
@ -5,7 +5,6 @@ import com.fasterxml.jackson.core.JsonProcessingException;
|
|||||||
import com.fasterxml.jackson.core.type.TypeReference;
|
import com.fasterxml.jackson.core.type.TypeReference;
|
||||||
import com.fasterxml.jackson.databind.JsonNode;
|
import com.fasterxml.jackson.databind.JsonNode;
|
||||||
import com.fasterxml.jackson.databind.ObjectMapper;
|
import com.fasterxml.jackson.databind.ObjectMapper;
|
||||||
import com.fasterxml.jackson.databind.node.JsonNodeCreator;
|
|
||||||
import okhttp3.*;
|
import okhttp3.*;
|
||||||
import org.jetbrains.annotations.ApiStatus.Internal;
|
import org.jetbrains.annotations.ApiStatus.Internal;
|
||||||
import ru.dragonestia.picker.api.impl.exception.ExceptionService;
|
import ru.dragonestia.picker.api.impl.exception.ExceptionService;
|
||||||
@ -21,7 +20,6 @@ import java.net.URLEncoder;
|
|||||||
import java.nio.charset.StandardCharsets;
|
import java.nio.charset.StandardCharsets;
|
||||||
import java.util.*;
|
import java.util.*;
|
||||||
import java.util.function.Consumer;
|
import java.util.function.Consumer;
|
||||||
import java.util.stream.Stream;
|
|
||||||
|
|
||||||
@Internal
|
@Internal
|
||||||
public class RestTemplate {
|
public class RestTemplate {
|
||||||
@ -58,15 +56,11 @@ public class RestTemplate {
|
|||||||
.build());
|
.build());
|
||||||
}
|
}
|
||||||
|
|
||||||
public <T> T queryWithRequest(String uri, HttpMethod method) {
|
public <T> T query(String uri, HttpMethod method, TypeReference<T> type) {
|
||||||
return queryWithRequest(uri, method, ParamsConsumer.NONE);
|
return query(uri, method, type, ParamsConsumer.NONE);
|
||||||
}
|
}
|
||||||
|
|
||||||
public <T> T queryWithRequest(String uri, HttpMethod method, ParamsConsumer paramsConsumer) {
|
public <T> T query(String uri, HttpMethod method, TypeReference<T> type, ParamsConsumer paramsConsumer) {
|
||||||
return queryWithRequest(uri, method, new TypeReference<>(){}, paramsConsumer);
|
|
||||||
}
|
|
||||||
|
|
||||||
public <T> T queryWithRequest(String uri, HttpMethod method, TypeReference<T> type, ParamsConsumer paramsConsumer) {
|
|
||||||
return execute(client.prepareRequestBuilder(uri + queryEncode(paramsConsumer))
|
return execute(client.prepareRequestBuilder(uri + queryEncode(paramsConsumer))
|
||||||
.method(method.name(), method == HttpMethod.GET? null : new FormBody.Builder().build())
|
.method(method.name(), method == HttpMethod.GET? null : new FormBody.Builder().build())
|
||||||
.build(),
|
.build(),
|
||||||
|
|||||||
Loading…
x
Reference in New Issue
Block a user