Add contacts in registered service.

This commit is contained in:
Konstantinos Triantafyllou 2023-10-12 14:08:28 +03:00
parent f280e60562
commit f6cf6f09bf
5 changed files with 37 additions and 11 deletions

View File

@ -0,0 +1 @@
ALTER TABLE ONLY registered_service ADD COLUMN contacts character varying(255) NOT NULL DEFAULT '';

View File

@ -22,6 +22,8 @@ public class ServiceForm {
private String description;
private String frequency;
private List<String> target;
private List<String> contacts;
public ServiceForm() {
}
@ -105,4 +107,12 @@ public class ServiceForm {
public void setTarget(List<String> target) {
this.target = target;
}
public List<String> getContacts() {
return contacts;
}
public void setContacts(List<String> contacts) {
this.contacts = contacts;
}
}

View File

@ -3,6 +3,8 @@ package eu.dnetlib.developers.dto;
import com.google.gson.Gson;
import com.google.gson.GsonBuilder;
import java.util.List;
public class ServiceRequest {
String client_name;
String client_id;
@ -60,8 +62,9 @@ public class ServiceRequest {
return contacts;
}
public void setContacts(String[] contacts) {
this.contacts = contacts;
public void setContacts(List<String> contacts) {
this.contacts = new String[contacts.size()];
contacts.toArray(this.contacts);
}
public String[] getGrantTypes() {
@ -111,32 +114,32 @@ public class ServiceRequest {
return gson.toJson(this);
}
public static ServiceRequest createServiceRequest(String client_id, String name, String logoURL, String email) {
public static ServiceRequest createServiceRequest(String client_id, String name, String logoURL, List<String> contacts) {
ServiceRequest request = new ServiceRequest();
request.setClientId(client_id);
request.setClientName(name);
request.setContacts(new String[]{email});
request.setContacts(contacts);
request.setToken_endpoint_auth_method("client_secret_basic");
request.setTokenEndpointAuthSigningAlg(null);
request.setLogoUri(logoURL);
return request;
}
public static ServiceRequest createServiceRequest(String client_id, String name, String logoURL, String email, String uri) {
public static ServiceRequest createServiceRequest(String client_id, String name, String logoURL, List<String> contacts, String uri) {
ServiceRequest request = new ServiceRequest();
request.setClientId(client_id);
request.setClientName(name);
request.setContacts(new String[]{email});
request.setContacts(contacts);
request.setJwksUri(uri);
request.setLogoUri(logoURL);
return request;
}
public static ServiceRequest createServiceRequest(String client_id, String name, String logoURL, String email, Jwks jwks) {
public static ServiceRequest createServiceRequest(String client_id, String name, String logoURL, List<String> contacts, Jwks jwks) {
ServiceRequest request = new ServiceRequest();
request.setClientId(client_id);
request.setClientName(name);
request.setContacts(new String[]{email});
request.setContacts(contacts);
request.setJwks(jwks);
request.setLogoUri(logoURL);
return request;

View File

@ -28,6 +28,8 @@ public class RegisteredService {
@Convert(converter = StringListConverter.class)
private List<String> target;
String issuer;
@Convert(converter = StringListConverter.class)
private List<String> contacts;
public RegisteredService() {
this.creationDate = new Date();
@ -51,6 +53,7 @@ public class RegisteredService {
this.frequency = service.getFrequency();
this.target = service.getTarget();
this.issuer = issuer;
this.contacts = service.getContacts();
}
public void setService(ServiceForm form, ServiceResponse response) {
@ -62,6 +65,7 @@ public class RegisteredService {
this.description = form.getDescription();
this.frequency = form.getFrequency();
this.target = form.getTarget();
this.contacts = form.getContacts();
}
public Long getId() {
@ -159,4 +163,12 @@ public class RegisteredService {
public void setIssuer(String issuer) {
this.issuer = issuer;
}
public List<String> getContacts() {
return contacts;
}
public void setContacts(List<String> contacts) {
this.contacts = contacts;
}
}

View File

@ -100,7 +100,7 @@ public class APIService {
if (form.getUri() == null) {
throw new EntityMissingException("Uri is required in this type of key");
}
request = ServiceRequest.createServiceRequest(api.getService().getClientId(), form.getName(), form.getLogoURL(), authentication.getUserInfo().getEmail(), form.getUri());
request = ServiceRequest.createServiceRequest(api.getService().getClientId(), form.getName(), form.getLogoURL(), form.getContacts(), form.getUri());
} else if (keyType != null && keyType.equals("value")) {
Gson gson = new GsonBuilder().registerTypeAdapter(Jwks.class, new JwksDeserializer()).create();
String jwksSet = String.format("{\"keys\":[%s]}", form.getValue());
@ -108,9 +108,9 @@ public class APIService {
if (!form.getJwks().isValid()) {
throw new EntityMissingException("Jwks value is not valid");
}
request = ServiceRequest.createServiceRequest(api.getService().getClientId(), form.getName(), form.getLogoURL(), authentication.getUserInfo().getEmail(), form.getJwks());
request = ServiceRequest.createServiceRequest(api.getService().getClientId(), form.getName(), form.getLogoURL(), form.getContacts(), form.getJwks());
} else {
request = ServiceRequest.createServiceRequest(api.getService().getClientId(), form.getName(), form.getLogoURL(), authentication.getUserInfo().getEmail());
request = ServiceRequest.createServiceRequest(api.getService().getClientId(), form.getName(), form.getLogoURL(), form.getContacts());
}
ServiceResponse response;
if (api.getService().getClientId() != null) {