feature/implement-external-login-api #30

Merged
kasun merged 32 commits from feature/implement-external-login-api into main 2026-04-09 21:21:58 +02:00
2 changed files with 11 additions and 7 deletions
Showing only changes of commit 2000278f1a - Show all commits
@@ -31,8 +31,8 @@ public class HomeBoxConnectionProvider implements ConnectionProvider {
@Override @Override
public ConnectionResponse authenticate(ConnectionRequest request) { public ConnectionResponse authenticate(ConnectionRequest request) {
Map<String, Object> homeboxPayload = Map.of("username", request.credentials().get("username"), Map<String, Object> homeboxPayload = Map.of("username", request.username(),
"password", request.credentials().get("password"), "stayLoggedIn", "password", request.password(), "stayLoggedIn",
request.stayLoggedIn()); request.stayLoggedIn());
HomeboxLoginResponse hbResponse = restClientBuilder.baseUrl(request.appUrl()) HomeboxLoginResponse hbResponse = restClientBuilder.baseUrl(request.appUrl())
@@ -57,7 +57,7 @@ public class HomeBoxConnectionProvider implements ConnectionProvider {
@Override @Override
public ConnectionEntity findUniqueConnectionEntry(ConnectionRequest request) { public ConnectionEntity findUniqueConnectionEntry(ConnectionRequest request) {
return cRepository.findByAppUrlAndUsername(request.appUrl(), request.credentials().get("username")); return cRepository.findByAppUrlAndUsername(request.appUrl(), request.username());
} }
@Override @Override
@@ -1,16 +1,15 @@
package com.vaessl.app.dto; package com.vaessl.app.dto;
import java.util.Map;
import com.fasterxml.jackson.annotation.JsonProperty; import com.fasterxml.jackson.annotation.JsonProperty;
import jakarta.validation.constraints.NotBlank; import jakarta.validation.constraints.NotBlank;
import jakarta.validation.constraints.NotEmpty;
public record ConnectionRequest( public record ConnectionRequest(
@NotBlank(message = "App URL is mandatory") String appUrl, @NotBlank(message = "App URL is mandatory") String appUrl,
@NotBlank(message = "Service type is mandatory") String serviceType, @NotBlank(message = "Service type is mandatory") String serviceType,
@NotEmpty(message = "Credentials are mandatory") Map<String, String> credentials, String username,
String password,
String apiKey,
@JsonProperty(defaultValue = "false") Boolean stayLoggedIn) { @JsonProperty(defaultValue = "false") Boolean stayLoggedIn) {
public ConnectionRequest { public ConnectionRequest {
@@ -18,4 +17,9 @@ public record ConnectionRequest(
stayLoggedIn = false; stayLoggedIn = false;
} }
} }
public ConnectionRequest(String appUrl, String serviceType, String username, String password,
Boolean stayLoggedIn) {
this(appUrl, serviceType, username, password, null, stayLoggedIn);
}
} }