package io.evercam.connect.helper;
import org.json.JSONArray;
import org.json.JSONException;
import org.json.JSONObject;
import java.util.ArrayList;
import java.util.Iterator;
import io.evercam.connect.db.Camera;
import io.evercam.connect.net.NetInfo;
import io.evercam.network.discovery.NetworkInfo;
/**
* JsonMessage
* <p/>
* Convert local camera objects to JSON for data collection.
*/
public class JsonMessage
{
public String getAllDataJsonMsg(ArrayList<Camera> cameraList, String name, String email,
NetInfo netInfo)
{
JSONObject userDataObject = new JSONObject();
JSONArray cameraArray = getJsonArrayFromCameras(cameraList);
JSONObject userInfoObject = new JSONObject();
JSONObject netInfoObject = new JSONObject();
try
{
userInfoObject.put("name", name);
userInfoObject.put("email", email);
netInfoObject.put("external ip", NetworkInfo.getExternalIP());
netInfoObject.put("internal ip", netInfo.getLocalIp());
netInfoObject.put("network interface", netInfo.getInterfaceName());
netInfoObject.put("mac address", netInfo.getMacAddress());
netInfoObject.put("subnet mask", netInfo.getNetmaskIp());
netInfoObject.put("ssid", netInfo.getSsid());
userDataObject.put("user", userInfoObject);
userDataObject.put("device", cameraArray);
userDataObject.put("network", netInfoObject);
}
catch(JSONException e)
{
e.printStackTrace();
}
try
{
return userDataObject.toString(1);
}
catch(JSONException e)
{
return userDataObject.toString();
}
}
private JSONArray getJsonArrayFromCameras(ArrayList<Camera> cameraList)
{
JSONArray cameraArray = new JSONArray();
Iterator<Camera> iterator = cameraList.iterator();
while(iterator.hasNext())
{
Camera camera = iterator.next();
JSONObject cameraObject = getJsonObjectFromCamera(camera);
cameraArray.put(cameraObject);
}
return cameraArray;
}
private JSONObject getJsonObjectFromCamera(Camera camera)
{
JSONObject cameraJsonObject = new JSONObject();
try
{
cameraJsonObject.put("ip", camera.getIP());
cameraJsonObject.put("mac", camera.getMAC());
cameraJsonObject.put("vendor", camera.getVendor());
cameraJsonObject.put("model", camera.getModel());
cameraJsonObject.put("upnp", camera.getUpnp());
cameraJsonObject.put("onvif", camera.getOnvif());
cameraJsonObject.put("bonjour", camera.getBonjour());
cameraJsonObject.put("http", camera.getHttp());
cameraJsonObject.put("https", camera.getHttps());
cameraJsonObject.put("rtsp", camera.getRtsp());
cameraJsonObject.put("ftp", camera.getFtp());
cameraJsonObject.put("ssh", camera.getSsh());
cameraJsonObject.put("portforwarded", camera.getPortForwarded());
cameraJsonObject.put("evercam", camera.getEvercamConnected());
cameraJsonObject.put("exthttp", camera.getExthttp());
cameraJsonObject.put("exthttps", camera.getExthttps());
cameraJsonObject.put("extrtsp", camera.getExtrtsp());
cameraJsonObject.put("extftp", camera.getExtftp());
cameraJsonObject.put("extssh", camera.getExtssh());
cameraJsonObject.put("flag", camera.getFlag());
cameraJsonObject.put("firstseen", camera.getFirstSeen());
cameraJsonObject.put("lastseen", camera.getLastSeen());
cameraJsonObject.put("username", camera.getUsername());
cameraJsonObject.put("password", camera.getPassword());
cameraJsonObject.put("ssid", camera.getSsid());
}
catch(JSONException e)
{
e.printStackTrace();
}
return cameraJsonObject;
}
}