diff --git a/backend/src/main/java/com/vaessl/app/connection/AuthResponse.java b/backend/src/main/java/com/vaessl/app/connection/AuthResponse.java index bbdbcab..42a0a51 100644 --- a/backend/src/main/java/com/vaessl/app/connection/AuthResponse.java +++ b/backend/src/main/java/com/vaessl/app/connection/AuthResponse.java @@ -2,5 +2,7 @@ package com.vaessl.app.connection; import java.time.Instant; +import com.vaessl.app.shared.ServiceType; + public record AuthResponse(ServiceType serviceType, Instant expiresAt) { } diff --git a/backend/src/main/java/com/vaessl/app/connection/ConnectionController.java b/backend/src/main/java/com/vaessl/app/connection/ConnectionController.java index 28219c4..1c8536a 100644 --- a/backend/src/main/java/com/vaessl/app/connection/ConnectionController.java +++ b/backend/src/main/java/com/vaessl/app/connection/ConnectionController.java @@ -19,6 +19,9 @@ import jakarta.servlet.http.HttpSession; import jakarta.validation.Valid; import lombok.RequiredArgsConstructor; +import com.vaessl.app.shared.ServiceType; +import com.vaessl.app.shared.SessionKeys; + @RestController @RequiredArgsConstructor public class ConnectionController { diff --git a/backend/src/main/java/com/vaessl/app/connection/ConnectionProvider.java b/backend/src/main/java/com/vaessl/app/connection/ConnectionProvider.java index 4815b39..33ee47d 100644 --- a/backend/src/main/java/com/vaessl/app/connection/ConnectionProvider.java +++ b/backend/src/main/java/com/vaessl/app/connection/ConnectionProvider.java @@ -2,6 +2,8 @@ package com.vaessl.app.connection; import java.time.Instant; +import com.vaessl.app.shared.ServiceProvider; + public interface ConnectionProvider extends ServiceProvider { void checkCredentials(ConnectionRequest request); diff --git a/backend/src/main/java/com/vaessl/app/connection/ConnectionRequest.java b/backend/src/main/java/com/vaessl/app/connection/ConnectionRequest.java index ec265ba..4cc5d91 100644 --- a/backend/src/main/java/com/vaessl/app/connection/ConnectionRequest.java +++ b/backend/src/main/java/com/vaessl/app/connection/ConnectionRequest.java @@ -1,6 +1,7 @@ package com.vaessl.app.connection; import com.fasterxml.jackson.annotation.JsonProperty; +import com.vaessl.app.shared.ServiceType; import jakarta.validation.constraints.NotBlank; import jakarta.validation.constraints.NotNull; diff --git a/backend/src/main/java/com/vaessl/app/connection/ConnectionService.java b/backend/src/main/java/com/vaessl/app/connection/ConnectionService.java index f4ecccc..518e0f9 100644 --- a/backend/src/main/java/com/vaessl/app/connection/ConnectionService.java +++ b/backend/src/main/java/com/vaessl/app/connection/ConnectionService.java @@ -8,6 +8,7 @@ import java.util.stream.Collectors; import org.springframework.stereotype.Service; import com.vaessl.app.exception.WrongServiceTypeException; +import com.vaessl.app.shared.ServiceType; @Service public class ConnectionService { diff --git a/backend/src/main/java/com/vaessl/app/connection/HomeboxConnectionProvider.java b/backend/src/main/java/com/vaessl/app/connection/HomeboxConnectionProvider.java index 6467eb2..faffb79 100644 --- a/backend/src/main/java/com/vaessl/app/connection/HomeboxConnectionProvider.java +++ b/backend/src/main/java/com/vaessl/app/connection/HomeboxConnectionProvider.java @@ -11,8 +11,9 @@ import org.springframework.web.client.RestClient; import com.vaessl.app.exception.EmptyCredentialsException; import com.vaessl.app.exception.RemoteApiException; +import com.vaessl.app.shared.ServiceType; -import static com.vaessl.app.connection.Endpoint.*; +import static com.vaessl.app.shared.Endpoint.*; @Component public class HomeboxConnectionProvider implements ConnectionProvider { diff --git a/backend/src/main/java/com/vaessl/app/connection/ServiceProvider.java b/backend/src/main/java/com/vaessl/app/connection/ServiceProvider.java deleted file mode 100644 index ad63c42..0000000 --- a/backend/src/main/java/com/vaessl/app/connection/ServiceProvider.java +++ /dev/null @@ -1,10 +0,0 @@ -package com.vaessl.app.connection; - -public interface ServiceProvider { - - /** - * Returns the service type key used to look up this provider in a registry, e.g. - * {@code "HOMEBOX"}. - */ - ServiceType getServiceType(); -} diff --git a/backend/src/main/java/com/vaessl/app/search/HomeboxSearchProvider.java b/backend/src/main/java/com/vaessl/app/search/HomeboxSearchProvider.java index 7be5851..5131092 100644 --- a/backend/src/main/java/com/vaessl/app/search/HomeboxSearchProvider.java +++ b/backend/src/main/java/com/vaessl/app/search/HomeboxSearchProvider.java @@ -12,11 +12,11 @@ import org.springframework.web.client.RestClient; import com.vaessl.app.connection.ConnectionEntity; import com.vaessl.app.connection.ConnectionRepository; import com.vaessl.app.connection.HomeboxEntity; -import com.vaessl.app.connection.ServiceType; import com.vaessl.app.exception.ConnectionNotFoundException; import com.vaessl.app.exception.RemoteApiException; +import com.vaessl.app.shared.ServiceType; -import static com.vaessl.app.connection.Endpoint.*; +import static com.vaessl.app.shared.Endpoint.*; @Component public class HomeboxSearchProvider implements SearchProvider { diff --git a/backend/src/main/java/com/vaessl/app/search/SearchController.java b/backend/src/main/java/com/vaessl/app/search/SearchController.java index fce1905..a96f47f 100644 --- a/backend/src/main/java/com/vaessl/app/search/SearchController.java +++ b/backend/src/main/java/com/vaessl/app/search/SearchController.java @@ -9,7 +9,7 @@ import org.springframework.web.bind.annotation.PostMapping; import org.springframework.web.bind.annotation.RequestBody; import org.springframework.web.bind.annotation.RestController; -import com.vaessl.app.connection.SessionKeys; +import com.vaessl.app.shared.SessionKeys; import jakarta.servlet.http.HttpServletRequest; import jakarta.servlet.http.HttpSession; import jakarta.validation.Valid; diff --git a/backend/src/main/java/com/vaessl/app/search/SearchProvider.java b/backend/src/main/java/com/vaessl/app/search/SearchProvider.java index a5fca4d..ef6196c 100644 --- a/backend/src/main/java/com/vaessl/app/search/SearchProvider.java +++ b/backend/src/main/java/com/vaessl/app/search/SearchProvider.java @@ -3,7 +3,7 @@ package com.vaessl.app.search; import org.springframework.data.domain.Page; import org.springframework.data.domain.Pageable; -import com.vaessl.app.connection.ServiceProvider; +import com.vaessl.app.shared.ServiceProvider; /** * Implemented by any service that supports querying its remote API for items. diff --git a/backend/src/main/java/com/vaessl/app/search/SearchRequest.java b/backend/src/main/java/com/vaessl/app/search/SearchRequest.java index 0e7a505..bc618e9 100644 --- a/backend/src/main/java/com/vaessl/app/search/SearchRequest.java +++ b/backend/src/main/java/com/vaessl/app/search/SearchRequest.java @@ -1,6 +1,6 @@ package com.vaessl.app.search; -import com.vaessl.app.connection.ServiceType; +import com.vaessl.app.shared.ServiceType; import jakarta.validation.constraints.NotBlank; import jakarta.validation.constraints.NotNull; diff --git a/backend/src/main/java/com/vaessl/app/search/SearchService.java b/backend/src/main/java/com/vaessl/app/search/SearchService.java index f92efde..a5314c7 100644 --- a/backend/src/main/java/com/vaessl/app/search/SearchService.java +++ b/backend/src/main/java/com/vaessl/app/search/SearchService.java @@ -7,7 +7,7 @@ import java.util.stream.Collectors; import org.springframework.data.domain.Page; import org.springframework.data.domain.Pageable; import org.springframework.stereotype.Service; -import com.vaessl.app.connection.ServiceType; +import com.vaessl.app.shared.ServiceType; import com.vaessl.app.exception.WrongServiceTypeException; @Service diff --git a/backend/src/main/java/com/vaessl/app/connection/Endpoint.java b/backend/src/main/java/com/vaessl/app/shared/Endpoint.java similarity index 91% rename from backend/src/main/java/com/vaessl/app/connection/Endpoint.java rename to backend/src/main/java/com/vaessl/app/shared/Endpoint.java index da8d35a..26682e4 100644 --- a/backend/src/main/java/com/vaessl/app/connection/Endpoint.java +++ b/backend/src/main/java/com/vaessl/app/shared/Endpoint.java @@ -1,4 +1,4 @@ -package com.vaessl.app.connection; +package com.vaessl.app.shared; public enum Endpoint { HOMEBOX_LOGIN("/api/v1/users/login"), LOGIN("/login"), CONNECTION_STATUS( diff --git a/backend/src/main/java/com/vaessl/app/shared/ServiceProvider.java b/backend/src/main/java/com/vaessl/app/shared/ServiceProvider.java new file mode 100644 index 0000000..d2ccc6a --- /dev/null +++ b/backend/src/main/java/com/vaessl/app/shared/ServiceProvider.java @@ -0,0 +1,6 @@ +package com.vaessl.app.shared; + +public interface ServiceProvider { + + ServiceType getServiceType(); +} diff --git a/backend/src/main/java/com/vaessl/app/connection/ServiceType.java b/backend/src/main/java/com/vaessl/app/shared/ServiceType.java similarity index 54% rename from backend/src/main/java/com/vaessl/app/connection/ServiceType.java rename to backend/src/main/java/com/vaessl/app/shared/ServiceType.java index 1d6c99a..1f060c6 100644 --- a/backend/src/main/java/com/vaessl/app/connection/ServiceType.java +++ b/backend/src/main/java/com/vaessl/app/shared/ServiceType.java @@ -1,4 +1,4 @@ -package com.vaessl.app.connection; +package com.vaessl.app.shared; public enum ServiceType { HOMEBOX; diff --git a/backend/src/main/java/com/vaessl/app/connection/SessionKeys.java b/backend/src/main/java/com/vaessl/app/shared/SessionKeys.java similarity index 65% rename from backend/src/main/java/com/vaessl/app/connection/SessionKeys.java rename to backend/src/main/java/com/vaessl/app/shared/SessionKeys.java index 1760be5..5985fee 100644 --- a/backend/src/main/java/com/vaessl/app/connection/SessionKeys.java +++ b/backend/src/main/java/com/vaessl/app/shared/SessionKeys.java @@ -1,8 +1,8 @@ -package com.vaessl.app.connection; +package com.vaessl.app.shared; public final class SessionKeys { - static final String CONNECTION_ID_SUFFIX = "_CONNECTION_ID"; + public static final String CONNECTION_ID_SUFFIX = "_CONNECTION_ID"; private SessionKeys() {} diff --git a/backend/src/test/java/com/vaessl/app/Mockdata.java b/backend/src/test/java/com/vaessl/app/Mockdata.java index eefb159..4ebf98b 100644 --- a/backend/src/test/java/com/vaessl/app/Mockdata.java +++ b/backend/src/test/java/com/vaessl/app/Mockdata.java @@ -1,6 +1,6 @@ package com.vaessl.app; -import com.vaessl.app.connection.ServiceType; +import com.vaessl.app.shared.ServiceType; public final class Mockdata { diff --git a/backend/src/test/java/com/vaessl/app/connection/ConnectionControllerTest.java b/backend/src/test/java/com/vaessl/app/connection/ConnectionControllerTest.java index 4a12c92..79f90cb 100644 --- a/backend/src/test/java/com/vaessl/app/connection/ConnectionControllerTest.java +++ b/backend/src/test/java/com/vaessl/app/connection/ConnectionControllerTest.java @@ -2,8 +2,8 @@ package com.vaessl.app.connection; import static com.vaessl.app.Mockdata.*; -import static com.vaessl.app.connection.Endpoint.*; -import static com.vaessl.app.connection.ServiceType.*; +import static com.vaessl.app.shared.Endpoint.*; +import static com.vaessl.app.shared.ServiceType.*; import static org.springframework.test.web.servlet.request.MockMvcRequestBuilders.*; import static org.springframework.test.web.servlet.result.MockMvcResultMatchers.*; diff --git a/backend/src/test/java/com/vaessl/app/connection/HomeboxConnectionProviderTest.java b/backend/src/test/java/com/vaessl/app/connection/HomeboxConnectionProviderTest.java index 4fa9ece..8b5816e 100644 --- a/backend/src/test/java/com/vaessl/app/connection/HomeboxConnectionProviderTest.java +++ b/backend/src/test/java/com/vaessl/app/connection/HomeboxConnectionProviderTest.java @@ -6,7 +6,7 @@ import org.junit.jupiter.api.Test; import com.vaessl.app.exception.EmptyCredentialsException; import static com.vaessl.app.Mockdata.*; -import static com.vaessl.app.connection.ServiceType.HOMEBOX; +import static com.vaessl.app.shared.ServiceType.HOMEBOX; import static org.assertj.core.api.Assertions.assertThat; class HomeboxConnectionProviderTest { @@ -15,8 +15,7 @@ class HomeboxConnectionProviderTest { @Test void checkCredentialsShouldThrowExceptionWhenFieldsAreMissing() { - ConnectionRequest request = - new ConnectionRequest(MOCK_URL, HOMEBOX, null, null, false); + ConnectionRequest request = new ConnectionRequest(MOCK_URL, HOMEBOX, null, null, false); EmptyCredentialsException exception = assertThrows(EmptyCredentialsException.class, () -> { provider.checkCredentials(request); diff --git a/backend/src/test/java/com/vaessl/app/connection/HomeboxIntegrationTest.java b/backend/src/test/java/com/vaessl/app/connection/HomeboxIntegrationTest.java index e0e7bcf..582bd2c 100644 --- a/backend/src/test/java/com/vaessl/app/connection/HomeboxIntegrationTest.java +++ b/backend/src/test/java/com/vaessl/app/connection/HomeboxIntegrationTest.java @@ -23,9 +23,9 @@ import com.jayway.jsonpath.JsonPath; import static org.assertj.core.api.Assertions.assertThat; import static com.github.tomakehurst.wiremock.client.WireMock.*; -import static com.vaessl.app.connection.Endpoint.*; +import static com.vaessl.app.shared.Endpoint.*; import static com.vaessl.app.exception.ErrorMessage.*; -import static com.vaessl.app.connection.ServiceType.*; +import static com.vaessl.app.shared.ServiceType.*; @SpringBootTest(webEnvironment = SpringBootTest.WebEnvironment.RANDOM_PORT) @AutoConfigureTestRestTemplate diff --git a/backend/src/test/java/com/vaessl/app/search/HomeboxSearchProviderTest.java b/backend/src/test/java/com/vaessl/app/search/HomeboxSearchProviderTest.java index 5952882..63dd067 100644 --- a/backend/src/test/java/com/vaessl/app/search/HomeboxSearchProviderTest.java +++ b/backend/src/test/java/com/vaessl/app/search/HomeboxSearchProviderTest.java @@ -12,7 +12,7 @@ import org.springframework.data.domain.PageRequest; import org.springframework.data.domain.Pageable; import com.vaessl.app.connection.ConnectionRepository; import com.vaessl.app.exception.ConnectionNotFoundException; -import static com.vaessl.app.connection.ServiceType.HOMEBOX; +import static com.vaessl.app.shared.ServiceType.HOMEBOX; @ExtendWith(MockitoExtension.class) diff --git a/backend/src/test/java/com/vaessl/app/search/SearchControllerTest.java b/backend/src/test/java/com/vaessl/app/search/SearchControllerTest.java index 0917254..6ba4d18 100644 --- a/backend/src/test/java/com/vaessl/app/search/SearchControllerTest.java +++ b/backend/src/test/java/com/vaessl/app/search/SearchControllerTest.java @@ -2,7 +2,7 @@ package com.vaessl.app.search; import static com.vaessl.app.Mockdata.MOCK_PASS; import static com.vaessl.app.Mockdata.MOCK_USER; -import static com.vaessl.app.connection.Endpoint.*; +import static com.vaessl.app.shared.Endpoint.*; import static org.springframework.test.web.servlet.request.MockMvcRequestBuilders.*; import static org.springframework.test.web.servlet.result.MockMvcResultMatchers.*;