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 new file mode 100644 index 0000000..ddca960 --- /dev/null +++ b/client-api/src/main/java/ru/dragonestia/picker/api/repository/AccountRepository.java @@ -0,0 +1,11 @@ +package ru.dragonestia.picker.api.repository; + +import org.jetbrains.annotations.NotNull; +import ru.dragonestia.picker.api.model.account.ResponseAccount; + +import java.util.Optional; + +public interface AccountRepository { + + Optional findAccountByUsername(@NotNull String username); +} 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 b9e5076..c5febad 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,11 +5,13 @@ import okhttp3.Request; import org.jetbrains.annotations.NotNull; import org.jetbrains.annotations.ApiStatus.Internal; +import ru.dragonestia.picker.api.impl.repository.AccountRepositoryImpl; import ru.dragonestia.picker.api.impl.repository.NodeRepositoryImpl; import ru.dragonestia.picker.api.impl.repository.RoomRepositoryImpl; import ru.dragonestia.picker.api.impl.repository.UserRepositoryImpl; import ru.dragonestia.picker.api.impl.util.RestTemplate; import ru.dragonestia.picker.api.impl.util.type.HttpMethod; +import ru.dragonestia.picker.api.repository.AccountRepository; import ru.dragonestia.picker.api.repository.NodeRepository; import ru.dragonestia.picker.api.repository.RoomRepository; import ru.dragonestia.picker.api.repository.UserRepository; @@ -24,6 +26,7 @@ public class RoomPickerClient { private final NodeRepository nodeRepository; private final RoomRepository roomRepository; private final UserRepository userRepository; + private final AccountRepository accountRepository; public RoomPickerClient(@NotNull String url, @NotNull String username, @NotNull String password) { this.url = url; @@ -33,6 +36,7 @@ public class RoomPickerClient { this.nodeRepository = new NodeRepositoryImpl(this); this.roomRepository = new RoomRepositoryImpl(this); this.userRepository = new UserRepositoryImpl(this); + this.accountRepository = new AccountRepositoryImpl(this); } @Internal diff --git a/client-impl/src/main/java/ru/dragonestia/picker/api/impl/repository/AuthException.java b/client-impl/src/main/java/ru/dragonestia/picker/api/impl/exception/AuthException.java similarity index 71% rename from client-impl/src/main/java/ru/dragonestia/picker/api/impl/repository/AuthException.java rename to client-impl/src/main/java/ru/dragonestia/picker/api/impl/exception/AuthException.java index 219a0c2..a40779f 100644 --- a/client-impl/src/main/java/ru/dragonestia/picker/api/impl/repository/AuthException.java +++ b/client-impl/src/main/java/ru/dragonestia/picker/api/impl/exception/AuthException.java @@ -1,4 +1,4 @@ -package ru.dragonestia.picker.api.impl.repository; +package ru.dragonestia.picker.api.impl.exception; public class AuthException extends RuntimeException { 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..5600ecc --- /dev/null +++ b/client-impl/src/main/java/ru/dragonestia/picker/api/impl/repository/AccountRepositoryImpl.java @@ -0,0 +1,25 @@ +package ru.dragonestia.picker.api.impl.repository; + +import org.jetbrains.annotations.ApiStatus.Internal; +import org.jetbrains.annotations.NotNull; +import ru.dragonestia.picker.api.impl.RoomPickerClient; +import ru.dragonestia.picker.api.impl.util.RestTemplate; +import ru.dragonestia.picker.api.model.account.ResponseAccount; +import ru.dragonestia.picker.api.repository.AccountRepository; + +import java.util.Optional; + +public class AccountRepositoryImpl implements AccountRepository { + + private final RestTemplate rest; + + @Internal + public AccountRepositoryImpl(RoomPickerClient client) { + this.rest = client.getRestTemplate(); + } + + @Override + public Optional findAccountByUsername(@NotNull String username) { + throw new UnsupportedOperationException("Not implemented"); + } +} 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 2982a37..78c2cad 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 @@ -6,7 +6,7 @@ import com.fasterxml.jackson.databind.ObjectMapper; import okhttp3.*; import org.jetbrains.annotations.ApiStatus.Internal; import ru.dragonestia.picker.api.impl.exception.NotEnoughPermissions; -import ru.dragonestia.picker.api.impl.repository.AuthException; +import ru.dragonestia.picker.api.impl.exception.AuthException; import ru.dragonestia.picker.api.exception.ExceptionFactory; import ru.dragonestia.picker.api.impl.RoomPickerClient; import ru.dragonestia.picker.api.impl.util.type.HttpMethod;