[Service] Integrate DeviceHome and SignalingServer
[platform/framework/web/wrtjs.git] / device_home / service / service.js
index b15753f..ff0d819 100755 (executable)
@@ -41,34 +41,29 @@ var g = {
 var MODE_WT = false;
 
 function addD2Ddata(appPkgID, appAppID, appName, iconPath) {
-  let metaDataArray = tizen.application.getAppMetaData(appAppID),
-    app = null,
-    metaAppID = '';
+  let app = {};
+  let metaAppID = '';
+  let metaDataArray = tizen.application.getAppMetaData(appAppID);
   metaDataArray = metaDataArray.filter(function(metaData) {
-    if (metaData.key === "d2dservice") {
-      if (metaData.value !== "enable") {
-        metaAppID = metaData.value;
-      }
-      return true;
-    }
-    return false;
+    if (metaData.key !== "d2dservice")
+      return false;
+
+    if (metaData.value !== "enable")
+      metaAppID = metaData.value;
+    return true;
   });
   metaDataArray.forEach(function() {
-    let appPath = path.join(platform_app_path, appPkgID, TIZEN_WEB_APP_SHARED_RESOURCES);
-
-    app = {
-      d2dApp: {
-        appPkgID: appPkgID,
-        appAppID: metaAppID === '' ? appAppID : metaAppID,
-        appName: appName,
-        iconPath: iconPath
-      },
-      path: path.join(appPath)
-    }
+    const appPath = path.join(platform_app_path, appPkgID, TIZEN_WEB_APP_SHARED_RESOURCES);
+    app.d2dApp = {
+      appPkgID: appPkgID,
+      appAppID: metaAppID === '' ? appAppID : metaAppID,
+      appName: appName,
+      iconPath: iconPath
+    },
+    app.path = path.join(appPath);
     console.log(`${TAG} app : ${JSON.stringify(app)}`);
     dataApps.push(app);
   });
-
   return app;
 }
 
@@ -81,9 +76,7 @@ function removeD2Ddata(packageId) {
 }
 
 function setData() {
-  var i;
-
-  for (i = 0; i < apps.length; i++) {
+  for (let i = 0; i < apps.length; i++) {
     addD2Ddata(apps[i].packageId, apps[i].id, apps[i].name, apps[i].iconPath);
   }
 }
@@ -105,9 +98,9 @@ function getAppList() {
 }
 
 function getWebclipsManifestByApp(app) {
-  var fileHandle;
-  var filePath = path.join(app.path, WEBCLIP_DIRECTORY, WEBCLIP_MANIFEST);
-  var data;
+  let fileHandle = undefined;
+  let data = '';
+  const filePath = path.join(app.path, WEBCLIP_DIRECTORY, WEBCLIP_MANIFEST);
 
   console.log(`${TAG} webclip path : ${filePath}`);
   try {
@@ -138,10 +131,10 @@ function getWebclipsManifest() {
 }
 
 function setPackageInfoEventListener() {
-  var packageEventCallback = {
+  const packageEventCallback = {
     oninstalled: function(packageInfo) {
       console.log(`${TAG} The package ${packageInfo.name} is installed`);
-      let app = addD2Ddata(packageInfo.id, packageInfo.appIds[0], packageInfo.name, packageInfo.iconPath);
+      const app = addD2Ddata(packageInfo.id, packageInfo.appIds[0], packageInfo.name, packageInfo.iconPath);
       if (app !== null)
         getWebclipsManifestByApp(app);
       evtEmit.emit("updateapplist", "message", dataApps);
@@ -163,8 +156,8 @@ function unsetPackageInfoEventListener() {
 }
 
 function getWebClipsList() {
-  var result = [];
-  var webclips = [];
+  let result = [];
+  let webclips = [];
 
   dataApps.forEach(function(app) {
     webclips = [];
@@ -187,11 +180,11 @@ function getWebClipsList() {
 }
 
 function sendLoginIdAndDeviceName(login_id, device_ip) {
-  let device_name = webapis.mde.getDeviceName();
+  const device_name = webapis.mde.getDeviceName();
   console.log(`${TAG} login_id = ${login_id}, device_name = ${device_name}`);
 
-  var xhr = new XMLHttpRequest();
-  var keyVal = {
+  const xhr = new XMLHttpRequest();
+  const keyVal = {
     login_id: login_id,
     device_name: device_name,
     device_ip: device_ip
@@ -217,7 +210,7 @@ function updateDNSresolver(device_ip) {
   console.log(`${TAG} Server is listening on ${device_ip}:${g.port}`);
   let login_id = 'stester81@gmail.com';
   if (is_tv)
-     login_id = webapis.mde.getCurrentLoginId();
+    login_id = webapis.mde.getCurrentLoginId();
   sendLoginIdAndDeviceName(login_id, device_ip);
 }
 
@@ -225,12 +218,12 @@ function comparePincode(req, res, encrypted) {
   console.log(`${TAG} comparePincode`);
   console.log(`${TAG} encrypted : ${encrypted}`);
   // Decrypt pincode using private key
-  var decrypt = new JSEncryptLib.JSEncrypt();
+  const decrypt = new JSEncryptLib.JSEncrypt();
   decrypt.setPrivateKey(security.getPrivateKey());
-  var decrypted = decrypt.decrypt(encrypted);
+  const decrypted = decrypt.decrypt(encrypted);
   console.log(`${TAG} decrypted : ${decrypted}`);
 
-  let pincode_passed = decrypted === pincode ? true : false;
+  const pincode_passed = decrypted === pincode ? true : false;
   console.log(`${TAG} pincode result : ${pincode_passed}`);
   if (pincode_passed) {
     req.session.pincode = pincode;
@@ -240,14 +233,14 @@ function comparePincode(req, res, encrypted) {
 }
 
 function generatePinCodeNumber() {
-  var byteData = crypto.randomBytes(256);
-  pinNumber = parseInt(byteData.toString('hex').substr(0, 8), 16).toString().substr(0, 4);
+  const byteData = crypto.randomBytes(256);
+  const pinNumber = parseInt(byteData.toString('hex').substr(0, 8), 16).toString().substr(0, 4);
   webapis.postPlainNotification("PIN Code", pinNumber, 10);
 }
 
 var HTTPserverStart = function() {
   evtEmit = new EventEmitter();
-  var app = express();
+  const app = express();
   app.engine('html', require('ejs').renderFile);
   app.set('view engine', 'ejs');
   app.set('views', `${g.baseDir}/../`);
@@ -289,7 +282,7 @@ var HTTPserverStart = function() {
   if (!MODE_WT)
     app.use(sessionChecker);
 
-  var appProxy = require('./app_proxy');
+  const appProxy = require('./app_proxy');
   app.use('/app', appProxy(app, g.port));
   app.use('/client', clientRouter);
   console.log(`${TAG} __dirname: ${__dirname}`);
@@ -307,18 +300,16 @@ var HTTPserverStart = function() {
 
   clientRouter.get('/webclip/*', function(req, res) {
     let file = req.originalUrl.replace('/client/webclip/', '').replace(/\?.+$/, '');
-
     let webclipName = '';
-    let appId;
-
-    let match = file.match(/^[^\/]+/);
+    let appId = '';
+    const match = file.match(/^[^\/]+/);
     if (match) {
       webclipName = match[0];
     }
     console.log(`${TAG} webclip name: ${webclipName}`);
 
     // find appId by webclip name
-    let app = dataApps.filter(function(app) {
+    const app = dataApps.filter(function(app) {
       return !!app.webclip && app.webclip.manifest.name === webclipName;
     })[0];
     if (app) {
@@ -326,7 +317,7 @@ var HTTPserverStart = function() {
     }
 
     console.log(`${TAG} root : ${platform_app_path}/${appId}/${TIZEN_WEB_APP_SHARED_RESOURCES}/${WEBCLIP_DIRECTORY}`);
-    let options = {
+    const options = {
       root: path.join(platform_app_path, appId, TIZEN_WEB_APP_SHARED_RESOURCES, WEBCLIP_DIRECTORY)
     };
 
@@ -344,8 +335,8 @@ var HTTPserverStart = function() {
 
   clientRouter.get('/updateWebclip', function(req, res) {
     console.log(`${TAG} get(/updateWebclip)`);
-    var apps = getWebClipsList();
-    var result = {
+    const apps = getWebClipsList();
+    const result = {
       type: "full",
       data: {
         apps: apps
@@ -356,9 +347,9 @@ var HTTPserverStart = function() {
   });
 
   clientRouter.get('/*', function(req, res) {
-    let file = req.originalUrl.replace('/client/', '').replace(/\?.+$/, '');
-    let pkgId = webapis.getPackageId();
-    let fullPath = require('path').join(g.baseDir, pkgId, '/res/wgt/client', file);
+    const file = req.originalUrl.replace('/client/', '').replace(/\?.+$/, '');
+    const pkgId = webapis.getPackageId();
+    const fullPath = require('path').join(g.baseDir, pkgId, '/res/wgt/client', file);
     console.log(`${TAG} pkgId: ${pkgId}, fullPath: ${fullPath}`);
     res.sendFile(fullPath);
   });
@@ -402,7 +393,7 @@ var HTTPserverStart = function() {
 
   app.get('/pincode/publicKey', async (req, res) => {
     // Getnerate pincode
-    var byteData = crypto.randomBytes(256);
+    const byteData = crypto.randomBytes(256);
     pincode = parseInt(byteData.toString('hex').substr(0, 8), 16).toString().substr(0, 4);
     // Getnerate RSA keys
     await security.awaitKeyPair();
@@ -415,10 +406,8 @@ var HTTPserverStart = function() {
   });
 
   app.post('/pincode/pinCodeToServer', express.json(), (req, res) => {
-    var revData = JSON.stringify(req.body);
-    var resultData = revData.replace(/"/g, "").replace(/{/g, "").replace(/}/g, "").replace(/:/g, "").replace(/[\s]/g, "+");
     // Verify encrypted pincode
-    resultData = req.body['pincode'];
+    const resultData = req.body['pincode'];
     console.log(`${TAG} pinCodeToServer resultData : ${resultData}`);
     comparePincode(req, res, resultData);
   });
@@ -453,12 +442,12 @@ var HTTPserverStart = function() {
 
   httpserver = http.createServer(app);
   httpserver.listen(g.port, function() {
-    var interfaces = require('os').networkInterfaces();
-    for (var devName in interfaces) {
+    const interfaces = require('os').networkInterfaces();
+    for (const devName in interfaces) {
       if (interfaces.hasOwnProperty(devName)) {
-        var iface = interfaces[devName];
-        for (var i = 0; i < iface.length; i++) {
-          var alias = iface[i];
+        const iface = interfaces[devName];
+        for (let i = 0; i < iface.length; i++) {
+          const alias = iface[i];
           if (alias.family === 'IPv4' && !non_ip_list.includes(alias.address) && !alias.internal)
             updateDNSresolver(alias.address);
         }