Yangman - the execution time is not right 64/44964/2
authormichal.kovacik <mikovaci@cisco.com>
Wed, 31 Aug 2016 22:45:32 +0000 (00:45 +0200)
committermichal.kovacik <mikovaci@cisco.com>
Tue, 6 Sep 2016 08:53:59 +0000 (10:53 +0200)
- Bug 6544 - YangMan - the execution time is not right
- service & method renamed

Change-Id: I15176340ff4bcacb1fb9a4d1f69ffd4a1ebc9f0f
Signed-off-by: michal.kovacik <mikovaci@cisco.com>
modules/yangman-resources/src/main/resources/yangman/controllers/request-header.controller.js
modules/yangman-resources/src/main/resources/yangman/services/time-tracking.services.js [new file with mode: 0644]
modules/yangman-resources/src/main/resources/yangman/services/yangman.services.js

index fe75ee906b71c48247fa479af90fb8d96d62ed37..f6e593a0a0ff3b214df3bd23f1894686138c164f 100644 (file)
@@ -1,5 +1,6 @@
 define([
     'app/yangman/controllers/params-admin.controller',
+    'app/yangman/services/time-tracking.services',
 ], function (ParamsAdminCtrl) {
     'use strict';
 
@@ -7,11 +8,12 @@ define([
 
     RequestHeaderCtrl.$inject = [
         '$mdDialog', '$mdToast', '$scope', '$rootScope', 'ENV', 'YangmanService', 'ParametersService',
-        'PathUtilsService', 'RequestsService', '$filter', 'DataBackupService', 'constants'
+        'PathUtilsService', 'RequestsService', '$filter', 'DataBackupService', 'constants', 'TimeTrackingService'
     ];
 
     function RequestHeaderCtrl($mdDialog, $mdToast, $scope, $rootScope, ENV, YangmanService, ParametersService,
-                               PathUtilsService, RequestService, $filter, DataBackupService, constants) {
+                               PathUtilsService, RequestService, $filter, DataBackupService, constants,
+                               TimeTrackingService) {
         var requestHeader = this;
 
         requestHeader.allOperations = [constants.OPERATION_GET, constants.OPERATION_POST, constants.OPERATION_PUT, constants.OPERATION_DELETE];
@@ -345,6 +347,7 @@ define([
          * Execute request operation
          */
         function executeOperation(requestData, executeCbk){
+            TimeTrackingService.startTimer();
             var allowExecuteOperation =
                 requestHeader.selectedShownDataType === constants.DISPLAY_TYPE_FORM && $scope.selectedSubApi ?
                     !PathUtilsService.checkEmptyIdentifiers($scope.selectedSubApi.pathArray) : true;
@@ -424,13 +427,15 @@ define([
                 }
 
                 // create and set history request
+                requestHeader.statusObj.time = TimeTrackingService.returnTime();
+
                 historyReq.setExecutionData(
                     reqInfo.requestSrcData,
                     preparedReceivedData,
                     reqInfo.status,
                     reqInfo.status,
                     reqInfo.statusText,
-                    reqInfo.time
+                    requestHeader.statusObj.time
                 );
 
                 $scope.rootBroadcast(constants.YANGMAN_SAVE_EXECUTED_REQUEST, historyReq, function (){
@@ -452,13 +457,15 @@ define([
 
                 finishRequestProgress();
 
+                requestHeader.statusObj.time = TimeTrackingService.returnTime();
+
                 historyReq.setExecutionData(
                     reqInfo.requestSrcData,
                     response.data,
                     reqInfo.status,
                     reqInfo.status,
                     reqInfo.statusText,
-                    reqInfo.time
+                    requestHeader.statusObj.time
                 );
                 $scope.rootBroadcast(constants.YANGMAN_SAVE_EXECUTED_REQUEST, historyReq, function (){
                     $scope.rootBroadcast(constants.YANGMAN_SELECT_THE_NEWEST_REQUEST);
diff --git a/modules/yangman-resources/src/main/resources/yangman/services/time-tracking.services.js b/modules/yangman-resources/src/main/resources/yangman/services/time-tracking.services.js
new file mode 100644 (file)
index 0000000..fcb9c59
--- /dev/null
@@ -0,0 +1,23 @@
+define([], function () {
+    'use strict';
+
+    angular.module('app.yangman').service('TimeTrackingService', TimeTrackingService);
+
+    function TimeTrackingService(){
+        var service = {
+                startTimer: startTimer,
+                returnTime: returnTime,
+            },
+            timeStarted = 0;
+        return service;
+
+        function startTimer(){
+            timeStarted = new Date().getTime();
+        }
+
+        function returnTime(){
+            return new Date().getTime() - timeStarted;
+        }
+    }
+
+});
index 86d47a93ed9c44fd12fc109de721d0455765255c..6ff2979c2585d44027c325581301d9901ab525e4 100644 (file)
@@ -306,10 +306,6 @@ define([], function () {
          */
         function executeRequestOperation(selectedApi, selectedSubApi, operation, node, dataType, requestUrl,
                                          requestData, params, successCbk, errorCbk) {
-            var time = {
-                started: 0,
-                finished: 0,
-            };
 
             YangUtilsRestangularService.setFullResponse(true);
 
@@ -317,9 +313,6 @@ define([], function () {
             var allPreparedData = prepareAllRequestData(selectedApi, selectedSubApi, operation, node, dataType,
                 requestUrl, requestData, params);
 
-            // start track time response
-            time.started = new Date().getMilliseconds();
-
             // executing operation
             allPreparedData.customRestangular.customOperation(
                 allPreparedData.operation.toLowerCase(),
@@ -338,14 +331,11 @@ define([], function () {
             );
 
             function finishExecuting(response){
-                // finish track time response
-                time.finished = new Date().getMilliseconds();
-                var spentRequestTime = time.finished - time.started;
 
                 return {
                     status: response.status,
                     statusText: response.statusText,
-                    time: spentRequestTime < 0 ? -(spentRequestTime) : spentRequestTime,
+                    time: null,
                     requestData: allPreparedData.reqData,
                     requestSrcData: allPreparedData.srcData,
                 };