3a36e4307dc53bc32234aa425f3ba39f2ac1bfee
[motion2.git] / server / api / jscriptySessionReport / jscriptySessionReport.controller.js
1 // *************************************************************************
2 // *                                                                       *
3 // * xCALLY Motion -  The Omnichannel Contact Center                       *
4 // * Copyright (c) Xenialab s.r.l. All Rights Reserved                     *
5 // *                                                                       *
6 // *************************************************************************
7 // *                                                                       *
8 // * Email: info@xcally.com                                                *
9 // * Website: https://www.xcally.com                                       *
10 // *                                                                       *
11 // *************************************************************************
12 // *                                                                       *
13 // * The SOFTWARE PRODUCT is protected by copyright laws and international *
14 // * copyright treaties, as well as other intellectual property laws and   *
15 // * treaties. The SOFTWARE PRODUCT is licensed, not sold.                         *
16 // *                                                                       *
17 // *************************************************************************
18 var _0xa4f9=['then','destroy','error','stack','name','send','map','JscriptySessionReport','rawAttributes','fieldName','type','key','model','query','keys','filters','intersection','attributes','fields','hasOwnProperty','nolimit','sort','pick','filter','where','merge','options','includeAll','findAll','rows','catch','show','params','length','include','body','describe','getQuestions','findOne','JscriptyQuestionReport','order','SessionId','rimraf','zip-dir','fast-json-patch','request-promise','moment','mustache','util','fs-extra','squel','crypto','desk.js','to-csv','querystring','ioredis','../../components/parsers/qs','../../config/license/hardware','../../config/logger','api','../../config/utils','../../config/environment','../../mysqldb','sendStatus','status','end','json','offset','undefined','limit','count','set','Content-Range','apply','save','update'];(function(_0x513aa5,_0x1fba79){var _0x1a1a7c=function(_0x240e3f){while(--_0x240e3f){_0x513aa5['push'](_0x513aa5['shift']());}};_0x1a1a7c(++_0x1fba79);}(_0xa4f9,0xc2));var _0x9a4f=function(_0x1a3829,_0x281c9f){_0x1a3829=_0x1a3829-0x0;var _0x54c591=_0xa4f9[_0x1a3829];return _0x54c591;};'use strict';var emlformat=require('eml-format');var rimraf=require(_0x9a4f('0x0'));var zipdir=require(_0x9a4f('0x1'));var jsonpatch=require(_0x9a4f('0x2'));var rp=require(_0x9a4f('0x3'));var moment=require(_0x9a4f('0x4'));var BPromise=require('bluebird');var Mustache=require(_0x9a4f('0x5'));var util=require(_0x9a4f('0x6'));var path=require('path');var sox=require('sox');var csv=require('to-csv');var ejs=require('ejs');var fs=require('fs');var fs_extra=require(_0x9a4f('0x7'));var _=require('lodash');var squel=require(_0x9a4f('0x8'));var crypto=require(_0x9a4f('0x9'));var jsforce=require('jsforce');var deskjs=require(_0x9a4f('0xa'));var toCsv=require(_0x9a4f('0xb'));var querystring=require(_0x9a4f('0xc'));var Papa=require('papaparse');var Redis=require(_0x9a4f('0xd'));var authService=require('../../components/auth/service');var qs=require(_0x9a4f('0xe'));var as=require('../../components/parsers/advancedSearch');var hardwareService=require(_0x9a4f('0xf'));var logger=require(_0x9a4f('0x10'))(_0x9a4f('0x11'));var utils=require(_0x9a4f('0x12'));var config=require(_0x9a4f('0x13'));var licenseUtil=require('../../config/license/util');var db=require(_0x9a4f('0x14'))['db'];function respondWithStatusCode(_0x12dbf7,_0x4d4fef){_0x4d4fef=_0x4d4fef||0xcc;return function(_0x2923d3){if(_0x2923d3){return _0x12dbf7[_0x9a4f('0x15')](_0x4d4fef);}return _0x12dbf7[_0x9a4f('0x16')](_0x4d4fef)[_0x9a4f('0x17')]();};}function respondWithResult(_0xb4045,_0x4cb474){_0x4cb474=_0x4cb474||0xc8;return function(_0x449bfe){if(_0x449bfe){return _0xb4045['status'](_0x4cb474)[_0x9a4f('0x18')](_0x449bfe);}};}function respondWithFilteredResult(_0x2f50,_0x4c9754){return function(_0x2b7716){if(_0x2b7716){var _0x1a6e8e=typeof _0x4c9754[_0x9a4f('0x19')]===_0x9a4f('0x1a')&&typeof _0x4c9754[_0x9a4f('0x1b')]===_0x9a4f('0x1a');var _0x42247f=_0x2b7716[_0x9a4f('0x1c')];var _0x1e3723=_0x1a6e8e?0x0:_0x4c9754[_0x9a4f('0x19')];var _0x1eeb80=_0x1a6e8e?_0x2b7716[_0x9a4f('0x1c')]:_0x4c9754['offset']+_0x4c9754[_0x9a4f('0x1b')];var _0x345a23;if(_0x1eeb80>=_0x42247f){_0x1eeb80=_0x42247f;_0x345a23=0xc8;}else{_0x345a23=0xce;}_0x2f50[_0x9a4f('0x16')](_0x345a23);return _0x2f50[_0x9a4f('0x1d')](_0x9a4f('0x1e'),_0x1e3723+'-'+_0x1eeb80+'/'+_0x42247f)['json'](_0x2b7716);}return null;};}function patchUpdates(_0x1c59a0){return function(_0x29344c){try{jsonpatch[_0x9a4f('0x1f')](_0x29344c,_0x1c59a0,!![]);}catch(_0x3a305a){return BPromise['reject'](_0x3a305a);}return _0x29344c[_0x9a4f('0x20')]();};}function saveUpdates(_0x2061e4,_0xdf07eb){return function(_0x432c4b){if(_0x432c4b){return _0x432c4b[_0x9a4f('0x21')](_0x2061e4)[_0x9a4f('0x22')](function(_0x5a16d7){return _0x5a16d7;});}return null;};}function removeEntity(_0x1bf793,_0x42afe1){return function(_0x511222){if(_0x511222){return _0x511222[_0x9a4f('0x23')]()[_0x9a4f('0x22')](function(){_0x1bf793['status'](0xcc)[_0x9a4f('0x17')]();});}};}function handleEntityNotFound(_0x4fb7a7,_0x1fac44){return function(_0x374631){if(!_0x374631){_0x4fb7a7[_0x9a4f('0x15')](0x194);}return _0x374631;};}function handleError(_0x4e3310,_0x55b7cc){_0x55b7cc=_0x55b7cc||0x1f4;return function(_0x348cac){logger[_0x9a4f('0x24')](_0x348cac[_0x9a4f('0x25')]);if(_0x348cac[_0x9a4f('0x26')]){delete _0x348cac[_0x9a4f('0x26')];}_0x4e3310['status'](_0x55b7cc)[_0x9a4f('0x27')](_0x348cac);};}exports['index']=function(_0x584ed2,_0x2434e3){var _0x5e1a9c={},_0x1348a5={},_0x4d4588={'count':0x0,'rows':[]};var _0xff6124=_[_0x9a4f('0x28')](db[_0x9a4f('0x29')][_0x9a4f('0x2a')],function(_0x2ef191){return{'name':_0x2ef191[_0x9a4f('0x2b')],'type':_0x2ef191[_0x9a4f('0x2c')][_0x9a4f('0x2d')]};});_0x1348a5[_0x9a4f('0x2e')]=_[_0x9a4f('0x28')](_0xff6124,_0x9a4f('0x26'));_0x1348a5[_0x9a4f('0x2f')]=_[_0x9a4f('0x30')](_0x584ed2['query']);_0x1348a5[_0x9a4f('0x31')]=_[_0x9a4f('0x32')](_0x1348a5[_0x9a4f('0x2e')],_0x1348a5[_0x9a4f('0x2f')]);_0x5e1a9c[_0x9a4f('0x33')]=_[_0x9a4f('0x32')](_0x1348a5[_0x9a4f('0x2e')],qs[_0x9a4f('0x34')](_0x584ed2[_0x9a4f('0x2f')][_0x9a4f('0x34')]));_0x5e1a9c[_0x9a4f('0x33')]=_0x5e1a9c['attributes']['length']?_0x5e1a9c[_0x9a4f('0x33')]:_0x1348a5[_0x9a4f('0x2e')];if(!_0x584ed2[_0x9a4f('0x2f')][_0x9a4f('0x35')](_0x9a4f('0x36'))){_0x5e1a9c[_0x9a4f('0x1b')]=qs[_0x9a4f('0x1b')](_0x584ed2['query'][_0x9a4f('0x1b')]);_0x5e1a9c[_0x9a4f('0x19')]=qs['offset'](_0x584ed2[_0x9a4f('0x2f')][_0x9a4f('0x19')]);}_0x5e1a9c['order']=qs['sort'](_0x584ed2[_0x9a4f('0x2f')][_0x9a4f('0x37')]);_0x5e1a9c['where']=qs[_0x9a4f('0x31')](_[_0x9a4f('0x38')](_0x584ed2[_0x9a4f('0x2f')],_0x1348a5['filters']),_0xff6124);if(_0x584ed2[_0x9a4f('0x2f')][_0x9a4f('0x39')]){_0x5e1a9c[_0x9a4f('0x3a')]=_[_0x9a4f('0x3b')](_0x5e1a9c[_0x9a4f('0x3a')],{'$or':_[_0x9a4f('0x28')](_0xff6124,function(_0x54b2ff){if(_0x54b2ff[_0x9a4f('0x2c')]!=='VIRTUAL'){var _0x303c16={};_0x303c16[_0x54b2ff[_0x9a4f('0x26')]]={'$like':'%'+_0x584ed2['query']['filter']+'%'};return _0x303c16;}})});}_0x5e1a9c=_['merge']({},_0x5e1a9c,_0x584ed2[_0x9a4f('0x3c')]);var _0xbcfda3={'where':_0x5e1a9c['where']};return db[_0x9a4f('0x29')]['count'](_0xbcfda3)[_0x9a4f('0x22')](function(_0x4d39ed){_0x4d4588[_0x9a4f('0x1c')]=_0x4d39ed;if(_0x584ed2[_0x9a4f('0x2f')][_0x9a4f('0x3d')]){_0x5e1a9c['include']=[{'all':!![]}];}return db['JscriptySessionReport'][_0x9a4f('0x3e')](_0x5e1a9c);})[_0x9a4f('0x22')](function(_0x3d3de2){_0x4d4588[_0x9a4f('0x3f')]=_0x3d3de2;return _0x4d4588;})[_0x9a4f('0x22')](respondWithFilteredResult(_0x2434e3,_0x5e1a9c))[_0x9a4f('0x40')](handleError(_0x2434e3,null));};exports[_0x9a4f('0x41')]=function(_0x4d1cb1,_0x5289c3){var _0x587675={'raw':!![],'where':{'id':_0x4d1cb1[_0x9a4f('0x42')]['id']}},_0x202425={};_0x202425['model']=_['keys'](db[_0x9a4f('0x29')][_0x9a4f('0x2a')]);_0x202425['query']=_[_0x9a4f('0x30')](_0x4d1cb1[_0x9a4f('0x2f')]);_0x202425['filters']=_[_0x9a4f('0x32')](_0x202425['model'],_0x202425['query']);_0x587675[_0x9a4f('0x33')]=_[_0x9a4f('0x32')](_0x202425[_0x9a4f('0x2e')],qs['fields'](_0x4d1cb1[_0x9a4f('0x2f')][_0x9a4f('0x34')]));_0x587675['attributes']=_0x587675[_0x9a4f('0x33')][_0x9a4f('0x43')]?_0x587675[_0x9a4f('0x33')]:_0x202425[_0x9a4f('0x2e')];if(_0x4d1cb1['query'][_0x9a4f('0x3d')]){_0x587675[_0x9a4f('0x44')]=[{'all':!![]}];}_0x587675=_[_0x9a4f('0x3b')]({},_0x587675,_0x4d1cb1['options']);return db[_0x9a4f('0x29')]['find'](_0x587675)[_0x9a4f('0x22')](handleEntityNotFound(_0x5289c3,null))[_0x9a4f('0x22')](respondWithResult(_0x5289c3,null))[_0x9a4f('0x40')](handleError(_0x5289c3,null));};exports['create']=function(_0x5b42e5,_0x284af8){return db[_0x9a4f('0x29')]['create'](_0x5b42e5[_0x9a4f('0x45')],{})['then'](respondWithResult(_0x284af8,0xc9))[_0x9a4f('0x40')](handleError(_0x284af8,null));};exports[_0x9a4f('0x21')]=function(_0x1b1b5b,_0x555a63){if(_0x1b1b5b['body']['id']){delete _0x1b1b5b[_0x9a4f('0x45')]['id'];}return db[_0x9a4f('0x29')]['find']({'where':{'id':_0x1b1b5b[_0x9a4f('0x42')]['id']}})[_0x9a4f('0x22')](handleEntityNotFound(_0x555a63,null))[_0x9a4f('0x22')](saveUpdates(_0x1b1b5b[_0x9a4f('0x45')],null))['then'](respondWithResult(_0x555a63,null))['catch'](handleError(_0x555a63,null));};exports[_0x9a4f('0x23')]=function(_0x193fdf,_0x290bb5){return db[_0x9a4f('0x29')]['find']({'where':{'id':_0x193fdf['params']['id']}})[_0x9a4f('0x22')](handleEntityNotFound(_0x290bb5,null))['then'](removeEntity(_0x290bb5,null))[_0x9a4f('0x40')](handleError(_0x290bb5,null));};exports[_0x9a4f('0x46')]=function(_0x450724,_0x4cca41){return db['JscriptySessionReport'][_0x9a4f('0x46')]()[_0x9a4f('0x22')](respondWithResult(_0x4cca41,null))[_0x9a4f('0x40')](handleError(_0x4cca41,null));};exports[_0x9a4f('0x47')]=function(_0x2734a7,_0x271f23,_0x4eb341){var _0x3ff69c={'raw':!![],'where':{}};var _0x1ffb3a={};var _0xb5258c={'count':0x0,'rows':[]};return db['JscriptySessionReport'][_0x9a4f('0x48')]({'where':{'id':_0x2734a7['params']['id']}})[_0x9a4f('0x22')](handleEntityNotFound(_0x271f23,null))['then'](function(_0x36fcb4){if(_0x36fcb4){_0x1ffb3a[_0x9a4f('0x2e')]=_[_0x9a4f('0x30')](db[_0x9a4f('0x49')]['rawAttributes']);_0x1ffb3a[_0x9a4f('0x2f')]=_[_0x9a4f('0x30')](_0x2734a7['query']);_0x1ffb3a[_0x9a4f('0x31')]=_[_0x9a4f('0x32')](_0x1ffb3a[_0x9a4f('0x2e')],_0x1ffb3a[_0x9a4f('0x2f')]);_0x3ff69c[_0x9a4f('0x33')]=_['intersection'](_0x1ffb3a[_0x9a4f('0x2e')],qs['fields'](_0x2734a7[_0x9a4f('0x2f')]['fields']));_0x3ff69c[_0x9a4f('0x33')]=_0x3ff69c['attributes'][_0x9a4f('0x43')]?_0x3ff69c[_0x9a4f('0x33')]:_0x1ffb3a[_0x9a4f('0x2e')];if(!_0x2734a7[_0x9a4f('0x2f')][_0x9a4f('0x35')]('nolimit')){_0x3ff69c[_0x9a4f('0x1b')]=qs[_0x9a4f('0x1b')](_0x2734a7[_0x9a4f('0x2f')][_0x9a4f('0x1b')]);_0x3ff69c['offset']=qs[_0x9a4f('0x19')](_0x2734a7[_0x9a4f('0x2f')][_0x9a4f('0x19')]);}_0x3ff69c[_0x9a4f('0x4a')]=qs[_0x9a4f('0x37')](_0x2734a7[_0x9a4f('0x2f')][_0x9a4f('0x37')]);_0x3ff69c['where']=qs[_0x9a4f('0x31')](_[_0x9a4f('0x38')](_0x2734a7[_0x9a4f('0x2f')],_0x1ffb3a['filters']));_0x3ff69c[_0x9a4f('0x3a')][_0x9a4f('0x4b')]=_0x36fcb4['id'];if(_0x2734a7['query']['filter']){_0x3ff69c['where']=_['merge'](_0x3ff69c['where'],{'$or':_[_0x9a4f('0x28')](_0x3ff69c['attributes'],function(_0x248586){var _0x3ad04d={};_0x3ad04d[_0x248586]={'$like':'%'+_0x2734a7[_0x9a4f('0x2f')][_0x9a4f('0x39')]+'%'};return _0x3ad04d;})});}_0x3ff69c=_[_0x9a4f('0x3b')]({},_0x3ff69c,_0x2734a7[_0x9a4f('0x3c')]);return db[_0x9a4f('0x49')][_0x9a4f('0x1c')]({'where':_0x3ff69c['where']})['then'](function(_0x2f5585){_0xb5258c[_0x9a4f('0x1c')]=_0x2f5585;if(_0x2734a7['query'][_0x9a4f('0x3d')]){_0x3ff69c['include']=[{'all':!![]}];}return db['JscriptyQuestionReport'][_0x9a4f('0x3e')](_0x3ff69c);})[_0x9a4f('0x22')](function(_0x2d1961){_0xb5258c[_0x9a4f('0x3f')]=_0x2d1961;return _0xb5258c;});}})[_0x9a4f('0x22')](respondWithFilteredResult(_0x271f23,_0x3ff69c))['catch'](handleError(_0x271f23,null));};