/**
* The contents of this file are subject to the license and copyright
* detailed in the LICENSE and NOTICE files at the root of the source
* tree and available online at
*
* http://www.dspace.org/license/
*/
package org.dspace.rest.common;
import com.fasterxml.jackson.annotation.JsonProperty;
import org.dspace.eperson.EPerson;
import org.dspace.app.util.Util;
import javax.xml.bind.annotation.XmlRootElement;
/**
* Determine status of REST API - is it running, accessible and without errors?.
* Find out API version (DSpace major version) and DSpace source version.
* Find out your authentication status.
*
*/
@XmlRootElement(name = "status")
public class Status
{
private boolean okay;
private boolean authenticated;
private String email;
private String fullname;
private String sourceVersion;
private String apiVersion;
public Status() {
setOkay(true);
setSourceVersion(Util.getSourceVersion());
String[] version = Util.getSourceVersion().split("\\.");
setApiVersion(version[0]); // major version
setAuthenticated(false);
}
public Status(String email, String fullname) {
setOkay(true);
setAuthenticated(true);
setEmail(email);
setFullname(fullname);
}
public Status(EPerson eperson) {
setOkay(true);
if(eperson != null) {
setAuthenticated(true);
setEmail(eperson.getEmail());
setFullname(eperson.getFullName());
} else {
setAuthenticated(false);
}
}
@JsonProperty("okay")
public boolean isOkay()
{
return this.okay;
}
public void setOkay(boolean okay)
{
this.okay = okay;
}
@JsonProperty("authenticated")
public boolean isAuthenticated() {
return authenticated;
}
public void setAuthenticated(boolean authenticated) {
this.authenticated = authenticated;
}
@JsonProperty("email")
public String getEmail() {
return email;
}
public void setEmail(String email) {
this.email = email;
}
@JsonProperty("fullname")
public String getFullname() {
return fullname;
}
public void setFullname(String fullname) {
this.fullname = fullname;
}
@JsonProperty("sourceVersion")
public String getSourceVersion() {
return this.sourceVersion;
}
public void setSourceVersion(String sourceVersion) {
this.sourceVersion = sourceVersion;
}
@JsonProperty("apiVersion")
public String getApiVersion() {
return this.apiVersion;
}
public void setApiVersion(String apiVersion) {
this.apiVersion = apiVersion;
}
}