Added base of AccountRepository

This commit is contained in:
Andrey Terentev 2024-03-18 18:05:31 +07:00 committed by Andrey Terentev
parent 5113358181
commit 4de95771cb
5 changed files with 42 additions and 2 deletions

View File

@ -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<ResponseAccount> findAccountByUsername(@NotNull String username);
}

View File

@ -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

View File

@ -1,4 +1,4 @@
package ru.dragonestia.picker.api.impl.repository;
package ru.dragonestia.picker.api.impl.exception;
public class AuthException extends RuntimeException {

View File

@ -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<ResponseAccount> findAccountByUsername(@NotNull String username) {
throw new UnsupportedOperationException("Not implemented");
}
}

View File

@ -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;