package info.nightscout.androidaps.plugins.NSClientInternal.data;
import org.json.JSONException;
import org.json.JSONObject;
import java.util.Date;
/**
{
status: 'ok'
, name: env.name
, version: env.version
, versionNum: versionNum (for ver 1.2.3 contains 10203)
, serverTime: new Date().toISOString()
, apiEnabled: apiEnabled
, careportalEnabled: apiEnabled && env.settings.enable.indexOf('careportal') > -1
, boluscalcEnabled: apiEnabled && env.settings.enable.indexOf('boluscalc') > -1
, head: env.head
, settings: env.settings
, extendedSettings: ctx.plugins && ctx.plugins.extendedClientSettings ? ctx.plugins.extendedClientSettings(env.extendedSettings) : {}
, activeProfile ..... calculated from treatments or missing
}
*/
public class NSStatus {
private JSONObject data;
public NSStatus(JSONObject obj) {
this.data = obj;
}
public String getName () { return getStringOrNull("name"); }
public String getVersion () { return getStringOrNull("version"); }
public Integer getVersionNum () { return getIntegerOrNull("versionNum"); }
public Date getServerTime () { return getDateOrNull("versionNum"); }
public boolean getApiEnabled () { return getBooleanOrNull("apiEnabled"); }
public boolean getCareportalEnabled () { return getBooleanOrNull("careportalEnabled"); }
public boolean getBoluscalcEnabled () { return getBooleanOrNull("boluscalcEnabled"); }
public String getHead () { return getStringOrNull("head"); }
public String getSettings () { return getStringOrNull("settings"); }
public String getExtendedSettings () { return getStringOrNull("extendedSettings"); }
public String getActiveProfile () { return getStringOrNull("activeProfile"); }
private String getStringOrNull(String key) {
String ret = null;
if (data.has(key)) {
try {
ret = data.getString(key);
} catch (JSONException e) {
e.printStackTrace();
}
}
return ret;
};
private Integer getIntegerOrNull(String key) {
Integer ret = null;
if (data.has(key)) {
try {
ret = data.getInt(key);
} catch (JSONException e) {
e.printStackTrace();
}
}
return ret;
};
private Long getLongOrNull(String key) {
Long ret = null;
if (data.has(key)) {
try {
ret = data.getLong(key);
} catch (JSONException e) {
e.printStackTrace();
}
}
return ret;
};
private Date getDateOrNull(String key) {
Date ret = null;
if (data.has(key)) {
try {
ret = new Date(data.getString(key));
} catch (JSONException e) {
e.printStackTrace();
}
}
return ret;
};
private boolean getBooleanOrNull(String key) {
boolean ret = false;
if (data.has(key)) {
try {
ret = data.getBoolean(key);
} catch (JSONException e) {
e.printStackTrace();
}
}
return ret;
};
public JSONObject getData () { return data; }
}