|
|
|
@ -18,136 +18,166 @@
|
|
|
|
|
|
|
|
|
|
function onRequest(context) {
|
|
|
|
|
// var log = new Log("view.js");
|
|
|
|
|
var deviceType = context.uriParams.deviceType;
|
|
|
|
|
var deviceType = context["uriParams"]["deviceType"];
|
|
|
|
|
var deviceId = request.getParameter("id");
|
|
|
|
|
var deviceData = {};
|
|
|
|
|
var deviceViewData = {};
|
|
|
|
|
|
|
|
|
|
if (deviceType && deviceId) {
|
|
|
|
|
var deviceModule = require("/app/modules/business-controllers/device.js")["deviceModule"];
|
|
|
|
|
var response = deviceModule.viewDevice(deviceType, deviceId);
|
|
|
|
|
if (response["status"] == "success") {
|
|
|
|
|
deviceData["deviceFound"] = true;
|
|
|
|
|
deviceData["isAuthorized"] = true;
|
|
|
|
|
deviceViewData["deviceFound"] = true;
|
|
|
|
|
deviceViewData["isAuthorized"] = true;
|
|
|
|
|
|
|
|
|
|
var device = response["content"];
|
|
|
|
|
var filteredDeviceData = response["content"];
|
|
|
|
|
|
|
|
|
|
// creating deviceView information model from filtered device data
|
|
|
|
|
var viewModel = {};
|
|
|
|
|
var deviceInfo = device["properties"]["DEVICE_INFO"];
|
|
|
|
|
if (deviceInfo && String(deviceInfo.toString()).length > 0) {
|
|
|
|
|
deviceInfo = parse(stringify(deviceInfo));
|
|
|
|
|
if (device["type"] == "ios") {
|
|
|
|
|
deviceInfo = parse(deviceInfo);
|
|
|
|
|
viewModel["imei"] = device["properties"]["IMEI"];
|
|
|
|
|
viewModel["phoneNumber"] = deviceInfo["PhoneNumber"];
|
|
|
|
|
viewModel["udid"] = deviceInfo["UDID"];
|
|
|
|
|
viewModel["BatteryLevel"] = Math.round(deviceInfo["BatteryLevel"] * 100);
|
|
|
|
|
viewModel["DeviceCapacity"] = Math.round(deviceInfo["DeviceCapacity"] * 100) / 100;
|
|
|
|
|
viewModel["AvailableDeviceCapacity"] = Math.
|
|
|
|
|
round(deviceInfo["AvailableDeviceCapacity"] * 100) / 100;
|
|
|
|
|
viewModel["DeviceCapacityUsed"] = Math.
|
|
|
|
|
round((viewModel["DeviceCapacity"] - viewModel["AvailableDeviceCapacity"]) * 100) / 100;
|
|
|
|
|
viewModel["DeviceCapacityPercentage"] = Math.
|
|
|
|
|
round(viewModel["AvailableDeviceCapacity"] / viewModel["DeviceCapacity"] * 10000) / 100;
|
|
|
|
|
viewModel["location"] = {
|
|
|
|
|
latitude: device["properties"]["LATITUDE"],
|
|
|
|
|
longitude: device["properties"]["LONGITUDE"]
|
|
|
|
|
};
|
|
|
|
|
viewModel["ownership"] = device["ownership"];
|
|
|
|
|
} else if (device["type"] == "android") {
|
|
|
|
|
viewModel["deviceIdentifier"] = device["deviceIdentifier"];
|
|
|
|
|
viewModel["deviceName"] = device["name"];
|
|
|
|
|
viewModel["owner"] = device["owner"];
|
|
|
|
|
viewModel["ownership"] = device["ownership"];
|
|
|
|
|
viewModel["imei"] = device["properties"]["IMEI"];
|
|
|
|
|
var osBuildDate = device["properties"]["OS_BUILD_DATE"];
|
|
|
|
|
if (osBuildDate != null && osBuildDate != "0") {
|
|
|
|
|
viewModel["os_build_date"] = new Date(osBuildDate * 1000);
|
|
|
|
|
if (filteredDeviceData["type"]) {
|
|
|
|
|
viewModel["deviceType"] = filteredDeviceData["type"];
|
|
|
|
|
}
|
|
|
|
|
if (filteredDeviceData["deviceIdentifier"]) {
|
|
|
|
|
viewModel["deviceIdentifier"] = filteredDeviceData["deviceIdentifier"];
|
|
|
|
|
}
|
|
|
|
|
if (filteredDeviceData["name"]) {
|
|
|
|
|
viewModel["name"] = filteredDeviceData["name"];
|
|
|
|
|
}
|
|
|
|
|
if (filteredDeviceData["enrolmentInfo"]) {
|
|
|
|
|
if (filteredDeviceData["enrolmentInfo"]["status"]) {
|
|
|
|
|
viewModel["status"] = filteredDeviceData["enrolmentInfo"]["status"];
|
|
|
|
|
}
|
|
|
|
|
if (filteredDeviceData["enrolmentInfo"]["owner"]) {
|
|
|
|
|
viewModel["owner"] = filteredDeviceData["enrolmentInfo"]["owner"];
|
|
|
|
|
}
|
|
|
|
|
if (filteredDeviceData["enrolmentInfo"]["ownership"]) {
|
|
|
|
|
viewModel["ownership"] = filteredDeviceData["enrolmentInfo"]["ownership"];
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
if (filteredDeviceData["initialDeviceInfo"]) {
|
|
|
|
|
viewModel["deviceInfoAvailable"] = true;
|
|
|
|
|
if (filteredDeviceData["initialDeviceInfo"]["IMEI"]) {
|
|
|
|
|
viewModel["imei"] = filteredDeviceData["initialDeviceInfo"]["IMEI"];
|
|
|
|
|
}
|
|
|
|
|
if (!filteredDeviceData["latestDeviceInfo"]) {
|
|
|
|
|
if (filteredDeviceData["initialDeviceInfo"]["OS_BUILD_DATE"]) {
|
|
|
|
|
if (filteredDeviceData["initialDeviceInfo"]["OS_BUILD_DATE"] != "0") {
|
|
|
|
|
viewModel["osBuildDate"] = new Date(filteredDeviceData["initialDeviceInfo"]["OS_BUILD_DATE"] * 1000);
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
if (filteredDeviceData["initialDeviceInfo"]["LATITUDE"] && filteredDeviceData["initialDeviceInfo"]["LONGITUDE"]) {
|
|
|
|
|
viewModel["location"] = {};
|
|
|
|
|
viewModel["location"]["latitude"] = filteredDeviceData["initialDeviceInfo"]["LATITUDE"];
|
|
|
|
|
viewModel["location"]["longitude"] = filteredDeviceData["initialDeviceInfo"]["LONGITUDE"];
|
|
|
|
|
}
|
|
|
|
|
if (filteredDeviceData["initialDeviceInfo"]["VENDOR"] && filteredDeviceData["initialDeviceInfo"]["DEVICE_MODEL"]) {
|
|
|
|
|
viewModel["vendor"] = filteredDeviceData["initialDeviceInfo"]["VENDOR"];
|
|
|
|
|
viewModel["model"] = filteredDeviceData["initialDeviceInfo"]["DEVICE_MODEL"];
|
|
|
|
|
}
|
|
|
|
|
if (filteredDeviceData["initialDeviceInfo"]["DEVICE_INFO"]) {
|
|
|
|
|
viewModel["BatteryLevel"] = {};
|
|
|
|
|
viewModel["BatteryLevel"]["value"] = filteredDeviceData["initialDeviceInfo"]["DEVICE_INFO"]["BATTERY_LEVEL"];
|
|
|
|
|
|
|
|
|
|
viewModel["location"] = {
|
|
|
|
|
latitude: device["properties"]["LATITUDE"],
|
|
|
|
|
longitude: device["properties"]["LONGITUDE"]
|
|
|
|
|
};
|
|
|
|
|
var info = {};
|
|
|
|
|
var infoList = parse(deviceInfo);
|
|
|
|
|
if (infoList != null && infoList != undefined) {
|
|
|
|
|
for (var j = 0; j < infoList.length; j++) {
|
|
|
|
|
info[infoList[j].name] = infoList[j].value;
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
deviceInfo = info;
|
|
|
|
|
|
|
|
|
|
if (device["deviceInfo"]) {
|
|
|
|
|
viewModel["location"] = {
|
|
|
|
|
latitude: device["deviceInfo"]["location"]["latitude"],
|
|
|
|
|
longitude: device["deviceInfo"]["location"]["longitude"]
|
|
|
|
|
};
|
|
|
|
|
viewModel["deviceInfo"] = true;
|
|
|
|
|
|
|
|
|
|
viewModel["model"] = device["deviceInfo"]["deviceModel"];
|
|
|
|
|
viewModel["vendor"] = device["deviceInfo"]["vendor"];
|
|
|
|
|
viewModel["lastUpdatedTime"] = device["deviceInfo"]["updatedTime"].
|
|
|
|
|
substr(0, device["deviceInfo"]["updatedTime"].indexOf("+"));
|
|
|
|
|
viewModel["internalMemory"] = {};
|
|
|
|
|
viewModel["internalMemory"]["total"] = Math.
|
|
|
|
|
round(filteredDeviceData["initialDeviceInfo"]["DEVICE_INFO"]["INTERNAL_TOTAL_MEMORY"] * 100) / 100;
|
|
|
|
|
if (filteredDeviceData["initialDeviceInfo"]["DEVICE_INFO"]["INTERNAL_TOTAL_MEMORY"] != 0) {
|
|
|
|
|
viewModel["internalMemory"]["usage"] = Math.
|
|
|
|
|
round((filteredDeviceData["initialDeviceInfo"]["DEVICE_INFO"]["INTERNAL_TOTAL_MEMORY"] -
|
|
|
|
|
filteredDeviceData["initialDeviceInfo"]["DEVICE_INFO"]["INTERNAL_AVAILABLE_MEMORY"])
|
|
|
|
|
/ filteredDeviceData["initialDeviceInfo"]["DEVICE_INFO"]["INTERNAL_TOTAL_MEMORY"] * 10000) / 100;
|
|
|
|
|
} else {
|
|
|
|
|
viewModel["internalMemory"]["usage"] = 0;
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
viewModel["externalMemory"] = {};
|
|
|
|
|
viewModel["externalMemory"]["total"] = Math.
|
|
|
|
|
round(filteredDeviceData["initialDeviceInfo"]["DEVICE_INFO"]["EXTERNAL_TOTAL_MEMORY"] * 100) / 100;
|
|
|
|
|
if (filteredDeviceData["initialDeviceInfo"]["DEVICE_INFO"]["EXTERNAL_TOTAL_MEMORY"] != 0) {
|
|
|
|
|
viewModel["externalMemory"]["usage"] = Math.
|
|
|
|
|
round((filteredDeviceData["initialDeviceInfo"]["DEVICE_INFO"]["EXTERNAL_TOTAL_MEMORY"] -
|
|
|
|
|
filteredDeviceData["initialDeviceInfo"]["DEVICE_INFO"]["EXTERNAL_AVAILABLE_MEMORY"])
|
|
|
|
|
/ filteredDeviceData["initialDeviceInfo"]["DEVICE_INFO"]["EXTERNAL_TOTAL_MEMORY"] * 10000) / 100;
|
|
|
|
|
} else {
|
|
|
|
|
viewModel["externalMemory"]["usage"] = 0;
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
if (filteredDeviceData["latestDeviceInfo"]) {
|
|
|
|
|
viewModel["deviceInfoAvailable"] = true;
|
|
|
|
|
if (filteredDeviceData["latestDeviceInfo"]["osBuildDate"]) {
|
|
|
|
|
if (filteredDeviceData["latestDeviceInfo"]["osBuildDate"] != "0") {
|
|
|
|
|
viewModel["osBuildDate"] = new Date(filteredDeviceData["latestDeviceInfo"]["osBuildDate"] * 1000);
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
if (filteredDeviceData["latestDeviceInfo"]["location"]["latitude"] &&
|
|
|
|
|
filteredDeviceData["latestDeviceInfo"]["location"]["longitude"]) {
|
|
|
|
|
viewModel["location"] = {};
|
|
|
|
|
viewModel["location"]["latitude"] = filteredDeviceData["latestDeviceInfo"]["location"]["latitude"];
|
|
|
|
|
viewModel["location"]["longitude"] = filteredDeviceData["latestDeviceInfo"]["location"]["longitude"];
|
|
|
|
|
}
|
|
|
|
|
if (filteredDeviceData["latestDeviceInfo"]["vendor"] && filteredDeviceData["latestDeviceInfo"]["deviceModel"]) {
|
|
|
|
|
viewModel["vendor"] = filteredDeviceData["latestDeviceInfo"]["vendor"];
|
|
|
|
|
viewModel["model"] = filteredDeviceData["latestDeviceInfo"]["deviceModel"];
|
|
|
|
|
}
|
|
|
|
|
if (filteredDeviceData["latestDeviceInfo"]["updatedTime"]) {
|
|
|
|
|
viewModel["lastUpdatedTime"] = filteredDeviceData["latestDeviceInfo"]["updatedTime"].
|
|
|
|
|
substr(0, filteredDeviceData["latestDeviceInfo"]["updatedTime"].indexOf("+"));
|
|
|
|
|
}
|
|
|
|
|
viewModel["BatteryLevel"] = {};
|
|
|
|
|
viewModel["BatteryLevel"]["value"] = device["deviceInfo"]["batteryLevel"];
|
|
|
|
|
viewModel["BatteryLevel"]["value"] = filteredDeviceData["latestDeviceInfo"]["batteryLevel"];
|
|
|
|
|
|
|
|
|
|
viewModel["cpuUsage"] = {};
|
|
|
|
|
viewModel["cpuUsage"]["value"] = device["deviceInfo"]["cpuUsage"];
|
|
|
|
|
viewModel["cpuUsage"]["value"] = filteredDeviceData["latestDeviceInfo"]["cpuUsage"];
|
|
|
|
|
|
|
|
|
|
viewModel["ramUsage"] = {};
|
|
|
|
|
if (device["deviceInfo"]["totalRAMMemory"] != 0) {
|
|
|
|
|
if (filteredDeviceData["latestDeviceInfo"]["totalRAMMemory"] != 0) {
|
|
|
|
|
viewModel["ramUsage"]["value"] = Math.
|
|
|
|
|
round((device["deviceInfo"]["totalRAMMemory"] - device["deviceInfo"]["availableRAMMemory"])
|
|
|
|
|
/ device["deviceInfo"]["totalRAMMemory"] * 10000) / 100;
|
|
|
|
|
round((filteredDeviceData["latestDeviceInfo"]["totalRAMMemory"] -
|
|
|
|
|
filteredDeviceData["latestDeviceInfo"]["availableRAMMemory"])
|
|
|
|
|
/ filteredDeviceData["latestDeviceInfo"]["totalRAMMemory"] * 10000) / 100;
|
|
|
|
|
} else {
|
|
|
|
|
viewModel["ramUsage"]["value"] = 0;
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
viewModel["internalMemory"] = {};
|
|
|
|
|
viewModel["externalMemory"] = {};
|
|
|
|
|
viewModel["internalMemory"]["total"] = Math.
|
|
|
|
|
round(device["deviceInfo"]["internalTotalMemory"] * 100) / 100;
|
|
|
|
|
if (device["deviceInfo"]["internalTotalMemory"] != 0) {
|
|
|
|
|
round(filteredDeviceData["latestDeviceInfo"]["internalTotalMemory"] * 100) / 100;
|
|
|
|
|
if (filteredDeviceData["latestDeviceInfo"]["internalTotalMemory"] != 0) {
|
|
|
|
|
viewModel["internalMemory"]["usage"] = Math.
|
|
|
|
|
round((device["deviceInfo"]["internalTotalMemory"] - device["deviceInfo"]["internalAvailableMemory"])
|
|
|
|
|
/ device["deviceInfo"]["internalTotalMemory"] * 10000) / 100;
|
|
|
|
|
round((filteredDeviceData["latestDeviceInfo"]["internalTotalMemory"] -
|
|
|
|
|
filteredDeviceData["latestDeviceInfo"]["internalAvailableMemory"])
|
|
|
|
|
/ filteredDeviceData["latestDeviceInfo"]["internalTotalMemory"] * 10000) / 100;
|
|
|
|
|
} else {
|
|
|
|
|
viewModel["internalMemory"]["usage"] = 0;
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
viewModel["externalMemory"] = {};
|
|
|
|
|
viewModel["externalMemory"]["total"] = Math.
|
|
|
|
|
round(device["deviceInfo"]["externalTotalMemory"] * 100) / 100;
|
|
|
|
|
if (device["deviceInfo"]["externalTotalMemory"] != 0) {
|
|
|
|
|
round(filteredDeviceData["latestDeviceInfo"]["externalTotalMemory"] * 100) / 100;
|
|
|
|
|
if (filteredDeviceData["latestDeviceInfo"]["externalTotalMemory"] != 0) {
|
|
|
|
|
viewModel["externalMemory"]["usage"] = Math.
|
|
|
|
|
round((device["deviceInfo"]["externalTotalMemory"] - device["deviceInfo"]["externalAvailableMemory"])
|
|
|
|
|
/ device["deviceInfo"]["externalTotalMemory"] * 10000) / 100;
|
|
|
|
|
round((filteredDeviceData["latestDeviceInfo"]["externalTotalMemory"] -
|
|
|
|
|
filteredDeviceData["latestDeviceInfo"]["externalAvailableMemory"])
|
|
|
|
|
/ filteredDeviceData["latestDeviceInfo"]["externalTotalMemory"] * 10000) / 100;
|
|
|
|
|
} else {
|
|
|
|
|
viewModel["externalMemory"]["usage"] = 0;
|
|
|
|
|
}
|
|
|
|
|
} else {
|
|
|
|
|
viewModel["deviceInfo"] = false;
|
|
|
|
|
}
|
|
|
|
|
} else if (device["type"] == "windows") {
|
|
|
|
|
viewModel["imei"] = device["properties"]["IMEI"];
|
|
|
|
|
viewModel["model"] = device["properties"]["DEVICE_MODEL"];
|
|
|
|
|
viewModel["vendor"] = device["properties"]["VENDOR"];
|
|
|
|
|
viewModel["internalMemory"] = {};
|
|
|
|
|
viewModel["externalMemory"] = {};
|
|
|
|
|
viewModel["location"] = {
|
|
|
|
|
latitude: device["properties"]["LATITUDE"],
|
|
|
|
|
longitude: device["properties"]["LONGITUDE"]
|
|
|
|
|
};
|
|
|
|
|
viewModel["ownership"] = device["ownership"];
|
|
|
|
|
}
|
|
|
|
|
device["viewModel"] = viewModel;
|
|
|
|
|
if (!filteredDeviceData["initialDeviceInfo"] && !filteredDeviceData["latestDeviceInfo"]) {
|
|
|
|
|
viewModel["deviceInfoAvailable"] = false;
|
|
|
|
|
}
|
|
|
|
|
deviceData["device"] = device;
|
|
|
|
|
|
|
|
|
|
deviceViewData["deviceView"] = viewModel;
|
|
|
|
|
} else if (response["status"] == "unauthorized") {
|
|
|
|
|
deviceData["deviceFound"] = true;
|
|
|
|
|
deviceData["isAuthorized"] = false;
|
|
|
|
|
deviceViewData["deviceFound"] = true;
|
|
|
|
|
deviceViewData["isAuthorized"] = false;
|
|
|
|
|
} else if (response["status"] == "notFound") {
|
|
|
|
|
deviceData["deviceFound"] = false;
|
|
|
|
|
deviceViewData["deviceFound"] = false;
|
|
|
|
|
}
|
|
|
|
|
return deviceData;
|
|
|
|
|
} else {
|
|
|
|
|
deviceViewData["deviceFound"] = false;
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
return deviceViewData;
|
|
|
|
|
}
|