From 05db1ef50afb7e24e0d4dabdc2fcca5412b5ba56 Mon Sep 17 00:00:00 2001 From: ScarletRedMan Date: Mon, 13 May 2024 17:49:23 +0700 Subject: [PATCH] !added impl classes for repositories --- .../api/repository/AccountRepository.java | 28 +++++++++ .../picker/api/impl/RoomPickerClient.java | 12 ++-- .../repository/AccountRepositoryImpl.java | 54 ++++++++++++++++++ .../impl/repository/EntityRepositoryImpl.java | 51 +++++++++++++++++ .../repository/InstanceRepositoryImpl.java | 57 +++++++++++++++++++ .../impl/repository/RoomRepositoryImpl.java | 55 ++++++++++++++++++ 6 files changed, 253 insertions(+), 4 deletions(-) create mode 100644 client-impl/src/main/java/ru/dragonestia/picker/api/impl/repository/AccountRepositoryImpl.java create mode 100644 client-impl/src/main/java/ru/dragonestia/picker/api/impl/repository/EntityRepositoryImpl.java create mode 100644 client-impl/src/main/java/ru/dragonestia/picker/api/impl/repository/InstanceRepositoryImpl.java create mode 100644 client-impl/src/main/java/ru/dragonestia/picker/api/impl/repository/RoomRepositoryImpl.java diff --git a/client-api/src/main/java/ru/dragonestia/picker/api/repository/AccountRepository.java b/client-api/src/main/java/ru/dragonestia/picker/api/repository/AccountRepository.java index a7755af..b94d403 100644 --- a/client-api/src/main/java/ru/dragonestia/picker/api/repository/AccountRepository.java +++ b/client-api/src/main/java/ru/dragonestia/picker/api/repository/AccountRepository.java @@ -1,5 +1,33 @@ package ru.dragonestia.picker.api.repository; +import ru.dragonestia.picker.api.model.account.Account; +import ru.dragonestia.picker.api.model.account.AccountId; +import ru.dragonestia.picker.api.model.account.Permission; + +import java.util.Collection; +import java.util.List; + public interface AccountRepository { + List allAccountsIds(); + + Account getAccount(AccountId id); + + List getAccounts(Collection ids); + + void createAccount(AccountId id, String password, List permissions); + + void deleteAccount(AccountId id); + + void setPermissions(AccountId id, List permissions); + + default void setPermissions(Account account, List permissions) { + setPermissions(account.id(), permissions); + } + + void changePassword(AccountId id, String newPassword); + + default void changePassword(Account account, String newPassword) { + changePassword(account.id(), newPassword); + } } 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 101de04..abf25fd 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 @@ -5,6 +5,10 @@ import okhttp3.Request; import org.jetbrains.annotations.ApiStatus.Internal; import ru.dragonestia.picker.api.impl.exception.ExceptionService; +import ru.dragonestia.picker.api.impl.repository.AccountRepositoryImpl; +import ru.dragonestia.picker.api.impl.repository.EntityRepositoryImpl; +import ru.dragonestia.picker.api.impl.repository.InstanceRepositoryImpl; +import ru.dragonestia.picker.api.impl.repository.RoomRepositoryImpl; 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; @@ -31,10 +35,10 @@ public class RoomPickerClient { this.username = username; this.password = password; this.restTemplate = new RestTemplate(this, this::updateAccountData); - this.instanceRepository = null; //new InstanceRepositoryImpl(this); - this.roomRepository = null; //new RoomRepositoryImpl(this); - this.entityRepository = null; //new EntityRepositoryImpl(this); - this.accountRepository = null; //new AccountRepositoryImpl(this); + this.instanceRepository = new InstanceRepositoryImpl(getRestTemplate()); + this.roomRepository = new RoomRepositoryImpl(getRestTemplate()); + this.entityRepository = new EntityRepositoryImpl(getRestTemplate()); + this.accountRepository = new AccountRepositoryImpl(getRestTemplate()); ExceptionService.init(); } 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 new file mode 100644 index 0000000..53a4b5d --- /dev/null +++ b/client-impl/src/main/java/ru/dragonestia/picker/api/impl/repository/AccountRepositoryImpl.java @@ -0,0 +1,54 @@ +package ru.dragonestia.picker.api.impl.repository; + +import ru.dragonestia.picker.api.impl.util.RestTemplate; +import ru.dragonestia.picker.api.model.account.Account; +import ru.dragonestia.picker.api.model.account.AccountId; +import ru.dragonestia.picker.api.model.account.Permission; +import ru.dragonestia.picker.api.repository.AccountRepository; + +import java.util.Collection; +import java.util.List; + +public class AccountRepositoryImpl implements AccountRepository { + + private final RestTemplate restTemplate; + + public AccountRepositoryImpl(RestTemplate restTemplate) { + this.restTemplate = restTemplate; + } + + @Override + public List allAccountsIds() { + throw new UnsupportedOperationException("Not implemented"); + } + + @Override + public Account getAccount(AccountId id) { + throw new UnsupportedOperationException("Not implemented"); + } + + @Override + public List getAccounts(Collection ids) { + throw new UnsupportedOperationException("Not implemented"); + } + + @Override + public void createAccount(AccountId id, String password, List permissions) { + throw new UnsupportedOperationException("Not implemented"); + } + + @Override + public void deleteAccount(AccountId id) { + throw new UnsupportedOperationException("Not implemented"); + } + + @Override + public void setPermissions(AccountId id, List permissions) { + throw new UnsupportedOperationException("Not implemented"); + } + + @Override + public void changePassword(AccountId id, String newPassword) { + throw new UnsupportedOperationException("Not implemented"); + } +} 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 new file mode 100644 index 0000000..41f912d --- /dev/null +++ b/client-impl/src/main/java/ru/dragonestia/picker/api/impl/repository/EntityRepositoryImpl.java @@ -0,0 +1,51 @@ +package ru.dragonestia.picker.api.impl.repository; + +import ru.dragonestia.picker.api.impl.util.RestTemplate; +import ru.dragonestia.picker.api.model.entity.EntityId; +import ru.dragonestia.picker.api.model.instance.InstanceId; +import ru.dragonestia.picker.api.model.room.Room; +import ru.dragonestia.picker.api.model.room.RoomId; +import ru.dragonestia.picker.api.repository.EntityRepository; + +import java.util.Collection; +import java.util.List; +import java.util.Map; + +public class EntityRepositoryImpl implements EntityRepository { + + private final RestTemplate restTemplate; + + public EntityRepositoryImpl(RestTemplate restTemplate) { + this.restTemplate = restTemplate; + } + + @Override + public List searchUsers(EntityId input) { + throw new UnsupportedOperationException("Not implemented"); + } + + @Override + public List getRooms(EntityId entity) { + throw new UnsupportedOperationException("Not implemented"); + } + + @Override + public Map> getRooms(Collection entities) { + throw new UnsupportedOperationException("Not implemented"); + } + + @Override + public List getRoomEntities(InstanceId instanceId, RoomId roomId) { + throw new UnsupportedOperationException("Not implemented"); + } + + @Override + public void linkEntitiesWithRoom(InstanceId instanceId, RoomId roomId, Collection entities, boolean force) { + throw new UnsupportedOperationException("Not implemented"); + } + + @Override + public void unlinkEntitiesFromRoom(InstanceId instanceId, RoomId roomId, Collection entities) { + throw new UnsupportedOperationException("Not implemented"); + } +} 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 new file mode 100644 index 0000000..5600045 --- /dev/null +++ b/client-impl/src/main/java/ru/dragonestia/picker/api/impl/repository/InstanceRepositoryImpl.java @@ -0,0 +1,57 @@ +package ru.dragonestia.picker.api.impl.repository; + +import ru.dragonestia.picker.api.impl.util.RestTemplate; +import ru.dragonestia.picker.api.model.entity.EntityId; +import ru.dragonestia.picker.api.model.instance.Instance; +import ru.dragonestia.picker.api.model.instance.InstanceId; +import ru.dragonestia.picker.api.model.instance.type.PickingMethod; +import ru.dragonestia.picker.api.repository.InstanceRepository; +import ru.dragonestia.picker.api.repository.response.ResponseObject; + +import java.util.Collection; +import java.util.List; +import java.util.Map; + +public class InstanceRepositoryImpl implements InstanceRepository { + + private final RestTemplate restTemplate; + + public InstanceRepositoryImpl(RestTemplate restTemplate) { + this.restTemplate = restTemplate; + } + + @Override + public List allInstancesIds() { + throw new UnsupportedOperationException("Not implemented"); + } + + @Override + public Instance getInstance(InstanceId id) { + throw new UnsupportedOperationException("Not implemented"); + } + + @Override + public Map getInstances(Collection ids) { + throw new UnsupportedOperationException("Not implemented"); + } + + @Override + public void createInstance(InstanceId id, PickingMethod method, boolean persist) { + throw new UnsupportedOperationException("Not implemented"); + } + + @Override + public void deleteInstance(InstanceId id) { + throw new UnsupportedOperationException("Not implemented"); + } + + @Override + public void deleteInstances(Collection ids) { + throw new UnsupportedOperationException("Not implemented"); + } + + @Override + public ResponseObject.PickedRoom pickRoom(InstanceId id, Collection entities, boolean dontReturnEntities) { + throw new UnsupportedOperationException("Not implemented"); + } +} 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 new file mode 100644 index 0000000..5ebc07b --- /dev/null +++ b/client-impl/src/main/java/ru/dragonestia/picker/api/impl/repository/RoomRepositoryImpl.java @@ -0,0 +1,55 @@ +package ru.dragonestia.picker.api.impl.repository; + +import ru.dragonestia.picker.api.impl.util.RestTemplate; +import ru.dragonestia.picker.api.model.instance.InstanceId; +import ru.dragonestia.picker.api.model.room.Room; +import ru.dragonestia.picker.api.model.room.RoomId; +import ru.dragonestia.picker.api.repository.RoomRepository; + +import java.util.Collection; +import java.util.List; +import java.util.Map; + +public class RoomRepositoryImpl implements RoomRepository { + + private final RestTemplate restTemplate; + + public RoomRepositoryImpl(RestTemplate restTemplate) { + this.restTemplate = restTemplate; + } + + @Override + public List allRoomsIds(InstanceId instanceId) { + throw new UnsupportedOperationException("Not implemented"); + } + + @Override + public Room getRoom(InstanceId instanceId, RoomId roomId) { + throw new UnsupportedOperationException("Not implemented"); + } + + @Override + public Map getRooms(InstanceId instanceId, Collection rooms) { + throw new UnsupportedOperationException("Not implemented"); + } + + @Override + public void createRoom(InstanceId instanceId, RoomId roomId, int slots, String payload, boolean locked, boolean persist) { + throw new UnsupportedOperationException("Not implemented"); + } + + @Override + public void deleteRoom(InstanceId instanceId, RoomId roomId) { + throw new UnsupportedOperationException("Not implemented"); + } + + @Override + public void deleteRooms(InstanceId instanceId, Collection rooms) { + throw new UnsupportedOperationException("Not implemented"); + } + + @Override + public void lockRoom(InstanceId instanceId, RoomId roomId, boolean newState) { + throw new UnsupportedOperationException("Not implemented"); + } +}