package eu.eudat.models.data.userinfo; import com.fasterxml.jackson.core.JsonParser; import com.fasterxml.jackson.databind.ObjectMapper; import eu.eudat.data.entities.*; import eu.eudat.data.entities.UserInfo; import eu.eudat.models.DataModel; import eu.eudat.models.data.dmp.DataManagementPlan; import net.minidev.json.parser.JSONParser; import org.slf4j.Logger; import org.slf4j.LoggerFactory; import java.io.IOException; import java.util.*; import java.util.stream.Collectors; /** * Created by ikalyvas on 8/24/2018. */ public class UserProfile implements DataModel { private static final Logger logger = LoggerFactory.getLogger(UserProfile.class); private UUID id; private String email; private Short usertype; private String name; private Date lastloggedin; //private String additionalinfo; private List associatedDmps; private String zenodoEmail; private Map language; private String timezone; private Map culture; private String avatarUrl; public UUID getId() { return id; } public void setId(UUID id) { this.id = id; } public String getEmail() { return email; } public void setEmail(String email) { this.email = email; } public Short getUsertype() { return usertype; } public void setUsertype(Short usertype) { this.usertype = usertype; } public String getName() { return name; } public void setName(String name) { this.name = name; } public Date getLastloggedin() { return lastloggedin; } public void setLastloggedin(Date lastloggedin) { this.lastloggedin = lastloggedin; } /*public String getAdditionalinfo() { return additionalinfo; } public void setAdditionalinfo(String additionalinfo) { this.additionalinfo = additionalinfo; }*/ public List getAssociatedDmps() { return associatedDmps; } public void setAssociatedDmps(List associatedDmps) { this.associatedDmps = associatedDmps; } public String getZenodoEmail() { return zenodoEmail; } public void setZenodoEmail(String zenodoEmail) { this.zenodoEmail = zenodoEmail; } public Map getLanguage() { return language; } public void setLanguage(Map language) { this.language = language; } public String getTimezone() { return timezone; } public void setTimezone(String timezone) { this.timezone = timezone; } public Map getCulture() { return culture; } public void setCulture(Map culture) { this.culture = culture; } public String getAvatarUrl() { return avatarUrl; } public void setAvatarUrl(String avatarUrl) { this.avatarUrl = avatarUrl; } @Override public UserProfile fromDataModel(UserInfo entity) { this.id = entity.getId(); this.email = entity.getEmail(); this.usertype = entity.getUsertype(); this.name = entity.getName(); this.lastloggedin = entity.getLastloggedin(); //this.additionalinfo = entity.getAdditionalinfo(); try { Map additionalInfo = new ObjectMapper().readValue(entity.getAdditionalinfo(), HashMap.class); this.language = (Map)additionalInfo.get("language"); this.culture = (Map) additionalInfo.get("culture"); this.timezone = (String) additionalInfo.get("timezone"); this.zenodoEmail = (String) additionalInfo.get("zenodoEmail"); this.avatarUrl = (String) additionalInfo.get("avatarUrl"); } catch (IOException e) { logger.error(e.getMessage(), e); } return this; } @Override public UserInfo toDataModel() throws Exception { return null; } @Override public String getHint() { return null; } }