InviteClient.java
package access.invite;
import access.remote.RestTemplateFactory;
import org.springframework.beans.factory.annotation.Value;
import org.springframework.stereotype.Service;
import org.springframework.web.client.RestTemplate;
import java.util.List;
import java.util.Map;
@Service
public class InviteClient {
private final boolean enabled;
private final String url;
private final RestTemplate restTemplate;
public InviteClient(@Value("${invite.enabled}") boolean enabled,
@Value("${invite.url}") String url,
@Value("${invite.user}") String user,
@Value("${invite.password}") String password) {
this.enabled = enabled;
this.url = url.endsWith("/") ? url.substring(0, url.length() - 1) : url;
this.restTemplate = RestTemplateFactory.buildRestTemplate(user, password);
}
@SuppressWarnings("unchecked")
public List<Map<String, Object>> rolesPerOrganizationApplicationId(String organizationGUID,
String applicationManageId) {
if (!enabled) {
return List.of();
}
return restTemplate.getForObject(
url + "/api/external/v1/internal/invite/roles/{organizationGUID}/{applicationManageId}",
List.class,
organizationGUID,
applicationManageId);
}
@SuppressWarnings("unchecked")
public List<Map<String, Object>> rolesSummary() {
if (!enabled) {
return List.of();
}
return restTemplate.getForObject(
url + "/api/external/v1/internal/invite/roles-summary", List.class);
}
}