2f33e099758058379023debac1866e034ee77bf1
[motion2.git] / server / api / jscriptyProject / jscriptyProject.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 _0xd1d3=['jsforce','to-csv','papaparse','../../components/auth/service','../../components/parsers/advancedSearch','../../config/license/hardware','../../config/logger','../../mysqldb','status','end','json','offset','undefined','count','limit','set','Content-Range','apply','save','update','then','destroy','Projects','UserProfileResource','sendStatus','error','name','index','map','JscriptyProject','rawAttributes','fieldName','type','key','model','query','keys','intersection','fields','attributes','length','hasOwnProperty','nolimit','sort','where','filters','pick','filter','VIRTUAL','merge','options','includeAll','findAll','rows','catch','show','params','find','create','body','Unable\x20to\x20retrieve\x20the\x20current\x20user','user','get','UserProfileSection','autoAssociation','Unable\x20to\x20associate\x20the\x20resource\x20to\x20the\x20User\x20Profile:\x20%s','clone','include','omit','createdAt','updatedAt','role','userProfileId','getSessions','findOne','JscriptySessionReport','getAnswers','order','ProjectId','JscriptyAnswerReport','fromCharCode','toString','indexOf','replace','getSummary','starttime','parse','startTime','JscriptyQuestionReport','-createdAt','questionId','question','format','answer','isEmpty','now','writeFileSync','/tmp/Jscripty_Project_%d_Summary_%s.csv','setHeader','Content-disposition','attachment;\x20filename=','Jscripty_Project_%d_Summary_%s.csv','Content-type','text/csv','rimraf','zip-dir','bluebird','mustache','path','sox','ejs','fs-extra','lodash','crypto'];(function(_0xd22d95,_0xc59f8f){var _0x15d7a3=function(_0x3db95c){while(--_0x3db95c){_0xd22d95['push'](_0xd22d95['shift']());}};_0x15d7a3(++_0xc59f8f);}(_0xd1d3,0x68));var _0x3d1d=function(_0xd45f98,_0x26b435){_0xd45f98=_0xd45f98-0x0;var _0x4387fa=_0xd1d3[_0xd45f98];return _0x4387fa;};'use strict';var emlformat=require('eml-format');var rimraf=require(_0x3d1d('0x0'));var zipdir=require(_0x3d1d('0x1'));var jsonpatch=require('fast-json-patch');var rp=require('request-promise');var moment=require('moment');var BPromise=require(_0x3d1d('0x2'));var Mustache=require(_0x3d1d('0x3'));var util=require('util');var path=require(_0x3d1d('0x4'));var sox=require(_0x3d1d('0x5'));var csv=require('to-csv');var ejs=require(_0x3d1d('0x6'));var fs=require('fs');var fs_extra=require(_0x3d1d('0x7'));var _=require(_0x3d1d('0x8'));var squel=require('squel');var crypto=require(_0x3d1d('0x9'));var jsforce=require(_0x3d1d('0xa'));var deskjs=require('desk.js');var toCsv=require(_0x3d1d('0xb'));var querystring=require('querystring');var Papa=require(_0x3d1d('0xc'));var Redis=require('ioredis');var authService=require(_0x3d1d('0xd'));var qs=require('../../components/parsers/qs');var as=require(_0x3d1d('0xe'));var hardwareService=require(_0x3d1d('0xf'));var logger=require(_0x3d1d('0x10'))('api');var utils=require('../../config/utils');var config=require('../../config/environment');var licenseUtil=require('../../config/license/util');var db=require(_0x3d1d('0x11'))['db'];function respondWithStatusCode(_0x4a5005,_0xd725fe){_0xd725fe=_0xd725fe||0xcc;return function(_0x1bc123){if(_0x1bc123){return _0x4a5005['sendStatus'](_0xd725fe);}return _0x4a5005[_0x3d1d('0x12')](_0xd725fe)[_0x3d1d('0x13')]();};}function respondWithResult(_0x28e129,_0x374296){_0x374296=_0x374296||0xc8;return function(_0x36aede){if(_0x36aede){return _0x28e129['status'](_0x374296)[_0x3d1d('0x14')](_0x36aede);}};}function respondWithFilteredResult(_0x3e1f54,_0x2614db){return function(_0x3f7fbb){if(_0x3f7fbb){var _0x2453bc=typeof _0x2614db[_0x3d1d('0x15')]===_0x3d1d('0x16')&&typeof _0x2614db['limit']===_0x3d1d('0x16');var _0x3c52ba=_0x3f7fbb[_0x3d1d('0x17')];var _0x630b4a=_0x2453bc?0x0:_0x2614db[_0x3d1d('0x15')];var _0x257dc2=_0x2453bc?_0x3f7fbb[_0x3d1d('0x17')]:_0x2614db[_0x3d1d('0x15')]+_0x2614db[_0x3d1d('0x18')];var _0x5e0cf2;if(_0x257dc2>=_0x3c52ba){_0x257dc2=_0x3c52ba;_0x5e0cf2=0xc8;}else{_0x5e0cf2=0xce;}_0x3e1f54[_0x3d1d('0x12')](_0x5e0cf2);return _0x3e1f54[_0x3d1d('0x19')](_0x3d1d('0x1a'),_0x630b4a+'-'+_0x257dc2+'/'+_0x3c52ba)[_0x3d1d('0x14')](_0x3f7fbb);}return null;};}function patchUpdates(_0xca4143){return function(_0x129b25){try{jsonpatch[_0x3d1d('0x1b')](_0x129b25,_0xca4143,!![]);}catch(_0x568673){return BPromise['reject'](_0x568673);}return _0x129b25[_0x3d1d('0x1c')]();};}function saveUpdates(_0x452929,_0x30fa6f){return function(_0x1cab9a){if(_0x1cab9a){return _0x1cab9a[_0x3d1d('0x1d')](_0x452929)[_0x3d1d('0x1e')](function(_0x4bb782){return _0x4bb782;});}return null;};}function removeEntity(_0x596af5,_0x4420fb){return function(_0x4e3686){if(_0x4e3686){return _0x4e3686[_0x3d1d('0x1f')]()['then'](function(){var _0x265686=_0x4e3686['get']({'plain':!![]});var _0x5c8952=_0x3d1d('0x20');return db[_0x3d1d('0x21')][_0x3d1d('0x1f')]({'where':{'type':_0x5c8952,'resourceId':_0x265686['id']}})['then'](function(){return _0x4e3686;});})[_0x3d1d('0x1e')](function(){_0x596af5[_0x3d1d('0x12')](0xcc)[_0x3d1d('0x13')]();});}};}function handleEntityNotFound(_0x4cc223,_0x4b0e1d){return function(_0x18d7d5){if(!_0x18d7d5){_0x4cc223[_0x3d1d('0x22')](0x194);}return _0x18d7d5;};}function handleError(_0x155486,_0x3beaac){_0x3beaac=_0x3beaac||0x1f4;return function(_0x3b399b){logger[_0x3d1d('0x23')](_0x3b399b['stack']);if(_0x3b399b[_0x3d1d('0x24')]){delete _0x3b399b['name'];}_0x155486['status'](_0x3beaac)['send'](_0x3b399b);};}exports[_0x3d1d('0x25')]=function(_0x42de03,_0x5ee1fd){var _0x215d5e={},_0x1029b6={},_0x330146={'count':0x0,'rows':[]};var _0x35f7f9=_[_0x3d1d('0x26')](db[_0x3d1d('0x27')][_0x3d1d('0x28')],function(_0x4f0d9d){return{'name':_0x4f0d9d[_0x3d1d('0x29')],'type':_0x4f0d9d[_0x3d1d('0x2a')][_0x3d1d('0x2b')]};});_0x1029b6[_0x3d1d('0x2c')]=_[_0x3d1d('0x26')](_0x35f7f9,'name');_0x1029b6[_0x3d1d('0x2d')]=_[_0x3d1d('0x2e')](_0x42de03[_0x3d1d('0x2d')]);_0x1029b6['filters']=_[_0x3d1d('0x2f')](_0x1029b6[_0x3d1d('0x2c')],_0x1029b6[_0x3d1d('0x2d')]);_0x215d5e['attributes']=_['intersection'](_0x1029b6['model'],qs[_0x3d1d('0x30')](_0x42de03['query'][_0x3d1d('0x30')]));_0x215d5e[_0x3d1d('0x31')]=_0x215d5e[_0x3d1d('0x31')][_0x3d1d('0x32')]?_0x215d5e['attributes']:_0x1029b6[_0x3d1d('0x2c')];if(!_0x42de03[_0x3d1d('0x2d')][_0x3d1d('0x33')](_0x3d1d('0x34'))){_0x215d5e[_0x3d1d('0x18')]=qs[_0x3d1d('0x18')](_0x42de03[_0x3d1d('0x2d')][_0x3d1d('0x18')]);_0x215d5e['offset']=qs['offset'](_0x42de03[_0x3d1d('0x2d')][_0x3d1d('0x15')]);}_0x215d5e['order']=qs[_0x3d1d('0x35')](_0x42de03[_0x3d1d('0x2d')][_0x3d1d('0x35')]);_0x215d5e[_0x3d1d('0x36')]=qs[_0x3d1d('0x37')](_[_0x3d1d('0x38')](_0x42de03[_0x3d1d('0x2d')],_0x1029b6[_0x3d1d('0x37')]),_0x35f7f9);if(_0x42de03[_0x3d1d('0x2d')][_0x3d1d('0x39')]){_0x215d5e[_0x3d1d('0x36')]=_['merge'](_0x215d5e[_0x3d1d('0x36')],{'$or':_[_0x3d1d('0x26')](_0x35f7f9,function(_0x3b1c01){if(_0x3b1c01[_0x3d1d('0x2a')]!==_0x3d1d('0x3a')){var _0x2b7cbe={};_0x2b7cbe[_0x3b1c01[_0x3d1d('0x24')]]={'$like':'%'+_0x42de03[_0x3d1d('0x2d')][_0x3d1d('0x39')]+'%'};return _0x2b7cbe;}})});}_0x215d5e=_[_0x3d1d('0x3b')]({},_0x215d5e,_0x42de03[_0x3d1d('0x3c')]);var _0x2f4caf={'where':_0x215d5e[_0x3d1d('0x36')]};return db[_0x3d1d('0x27')][_0x3d1d('0x17')](_0x2f4caf)['then'](function(_0x4a58d5){_0x330146[_0x3d1d('0x17')]=_0x4a58d5;if(_0x42de03[_0x3d1d('0x2d')][_0x3d1d('0x3d')]){_0x215d5e['include']=[{'all':!![]}];}return db['JscriptyProject'][_0x3d1d('0x3e')](_0x215d5e);})[_0x3d1d('0x1e')](function(_0x326177){_0x330146[_0x3d1d('0x3f')]=_0x326177;return _0x330146;})[_0x3d1d('0x1e')](respondWithFilteredResult(_0x5ee1fd,_0x215d5e))[_0x3d1d('0x40')](handleError(_0x5ee1fd,null));};exports[_0x3d1d('0x41')]=function(_0x15c424,_0x199285){var _0x1edb1b={'raw':![],'where':{'id':_0x15c424[_0x3d1d('0x42')]['id']}},_0x496a8e={};_0x496a8e[_0x3d1d('0x2c')]=_[_0x3d1d('0x2e')](db['JscriptyProject']['rawAttributes']);_0x496a8e[_0x3d1d('0x2d')]=_['keys'](_0x15c424['query']);_0x496a8e['filters']=_[_0x3d1d('0x2f')](_0x496a8e[_0x3d1d('0x2c')],_0x496a8e[_0x3d1d('0x2d')]);_0x1edb1b['attributes']=_['intersection'](_0x496a8e[_0x3d1d('0x2c')],qs[_0x3d1d('0x30')](_0x15c424[_0x3d1d('0x2d')]['fields']));_0x1edb1b[_0x3d1d('0x31')]=_0x1edb1b['attributes'][_0x3d1d('0x32')]?_0x1edb1b[_0x3d1d('0x31')]:_0x496a8e[_0x3d1d('0x2c')];if(_0x15c424[_0x3d1d('0x2d')][_0x3d1d('0x3d')]){_0x1edb1b['include']=[{'all':!![]}];}_0x1edb1b=_[_0x3d1d('0x3b')]({},_0x1edb1b,_0x15c424[_0x3d1d('0x3c')]);return db[_0x3d1d('0x27')][_0x3d1d('0x43')](_0x1edb1b)[_0x3d1d('0x1e')](handleEntityNotFound(_0x199285,null))[_0x3d1d('0x1e')](respondWithResult(_0x199285,null))[_0x3d1d('0x40')](handleError(_0x199285,null));};exports[_0x3d1d('0x44')]=function(_0x21c54b,_0x31658b){return db['JscriptyProject']['create'](_0x21c54b[_0x3d1d('0x45')],{})[_0x3d1d('0x1e')](function(_0xbdf332){var _0x2a5a0d=_0x21c54b['user']['get']({'plain':!![]});if(!_0x2a5a0d)throw new Error(_0x3d1d('0x46'));if(_0x2a5a0d['role']===_0x3d1d('0x47')){var _0x1009da=_0xbdf332[_0x3d1d('0x48')]({'plain':!![]});var _0x35c2f9=_0x3d1d('0x20');return db[_0x3d1d('0x49')][_0x3d1d('0x43')]({'where':{'name':_0x35c2f9,'userProfileId':_0x2a5a0d['userProfileId']},'raw':!![]})['then'](function(_0x13c88a){if(_0x13c88a&&_0x13c88a[_0x3d1d('0x4a')]===0x0){return db[_0x3d1d('0x21')][_0x3d1d('0x44')]({'name':_0x1009da[_0x3d1d('0x24')],'resourceId':_0x1009da['id'],'type':_0x13c88a[_0x3d1d('0x24')],'sectionId':_0x13c88a['id']},{})[_0x3d1d('0x1e')](function(){return _0xbdf332;});}else{return _0xbdf332;}})['catch'](function(_0x1db497){logger[_0x3d1d('0x23')](_0x3d1d('0x4b'),_0x1db497);throw _0x1db497;});}return _0xbdf332;})['then'](respondWithResult(_0x31658b,0xc9))[_0x3d1d('0x40')](handleError(_0x31658b,null));};exports[_0x3d1d('0x4c')]=function(_0x11b3a3,_0xdf6a0){var _0x5b1dd2={'where':{'id':_0x11b3a3[_0x3d1d('0x42')]['id']}},_0x4b3b18={};_0x4b3b18[_0x3d1d('0x2c')]=_[_0x3d1d('0x2e')](db[_0x3d1d('0x27')]['rawAttributes']);_0x5b1dd2[_0x3d1d('0x31')]=_[_0x3d1d('0x2f')](_0x4b3b18[_0x3d1d('0x2c')],qs[_0x3d1d('0x30')](_0x11b3a3[_0x3d1d('0x2d')]['fields']));_0x5b1dd2[_0x3d1d('0x31')]=_0x5b1dd2[_0x3d1d('0x31')][_0x3d1d('0x32')]?_0x5b1dd2[_0x3d1d('0x31')]:_0x4b3b18['model'];if(_0x11b3a3[_0x3d1d('0x2d')][_0x3d1d('0x3d')]){_0x5b1dd2[_0x3d1d('0x4d')]=[{'all':!![]}];}_0x5b1dd2=_[_0x3d1d('0x3b')]({},_0x5b1dd2,_0x11b3a3['options']);return db['JscriptyProject'][_0x3d1d('0x43')](_0x5b1dd2)['then'](handleEntityNotFound(_0xdf6a0,null))[_0x3d1d('0x1e')](function(_0x4e2dcb){if(_0x4e2dcb){var _0x9c44ff=_0x4e2dcb['get']({'plain':!![]});_0x9c44ff=qs[_0x3d1d('0x4e')](_0x9c44ff,['id',_0x3d1d('0x4f'),_0x3d1d('0x50')]);_0x11b3a3[_0x3d1d('0x45')]=_[_0x3d1d('0x4e')](_0x11b3a3[_0x3d1d('0x45')],['id',_0x3d1d('0x4f'),_0x3d1d('0x50')]);return db[_0x3d1d('0x27')][_0x3d1d('0x44')](_[_0x3d1d('0x3b')](_0x9c44ff,_0x11b3a3[_0x3d1d('0x45')]),{'include':_0x11b3a3['query'][_0x3d1d('0x3d')]?[{'all':!![]}]:undefined})[_0x3d1d('0x1e')](function(_0x3f5c45){var _0x5452b8=_0x11b3a3[_0x3d1d('0x47')][_0x3d1d('0x48')]({'plain':!![]});if(!_0x5452b8)throw new Error(_0x3d1d('0x46'));if(_0x5452b8[_0x3d1d('0x51')]==='user'){var _0x584387=_0x3f5c45[_0x3d1d('0x48')]({'plain':!![]});var _0x59490a=_0x3d1d('0x20');return db['UserProfileSection'][_0x3d1d('0x43')]({'where':{'name':_0x59490a,'userProfileId':_0x5452b8[_0x3d1d('0x52')]},'raw':!![]})[_0x3d1d('0x1e')](function(_0x2a86f1){if(_0x2a86f1&&_0x2a86f1[_0x3d1d('0x4a')]===0x0){return db[_0x3d1d('0x21')][_0x3d1d('0x44')]({'name':_0x584387[_0x3d1d('0x24')],'resourceId':_0x584387['id'],'type':_0x2a86f1['name'],'sectionId':_0x2a86f1['id']},{})[_0x3d1d('0x1e')](function(){return _0x3f5c45;});}else{return _0x3f5c45;}})['catch'](function(_0x9d219d){logger[_0x3d1d('0x23')]('Unable\x20to\x20associate\x20the\x20resource\x20to\x20the\x20User\x20Profile:\x20%s',_0x9d219d);throw _0x9d219d;});}return _0x3f5c45;});}})[_0x3d1d('0x1e')](respondWithResult(_0xdf6a0,0xc9))[_0x3d1d('0x40')](handleError(_0xdf6a0,null));};exports[_0x3d1d('0x1d')]=function(_0x22fb54,_0x278ad6){if(_0x22fb54[_0x3d1d('0x45')]['id']){delete _0x22fb54[_0x3d1d('0x45')]['id'];}return db['JscriptyProject'][_0x3d1d('0x43')]({'where':{'id':_0x22fb54[_0x3d1d('0x42')]['id']}})[_0x3d1d('0x1e')](handleEntityNotFound(_0x278ad6,null))['then'](saveUpdates(_0x22fb54[_0x3d1d('0x45')],null))['then'](respondWithResult(_0x278ad6,null))[_0x3d1d('0x40')](handleError(_0x278ad6,null));};exports['destroy']=function(_0x2fe10e,_0x9db056){return db[_0x3d1d('0x27')]['find']({'where':{'id':_0x2fe10e['params']['id']}})['then'](handleEntityNotFound(_0x9db056,null))['then'](removeEntity(_0x9db056,null))[_0x3d1d('0x40')](handleError(_0x9db056,null));};exports[_0x3d1d('0x53')]=function(_0x2f0c5c,_0x1a4f28,_0x4f8f7b){var _0x53eda1={'raw':!![],'where':{}};var _0x21ae9e={};var _0x3ed221={'count':0x0,'rows':[]};return db[_0x3d1d('0x27')][_0x3d1d('0x54')]({'where':{'id':_0x2f0c5c[_0x3d1d('0x42')]['id']}})['then'](handleEntityNotFound(_0x1a4f28,null))['then'](function(_0x7c771f){if(_0x7c771f){_0x21ae9e['model']=_[_0x3d1d('0x2e')](db[_0x3d1d('0x55')][_0x3d1d('0x28')]);_0x21ae9e[_0x3d1d('0x2d')]=_[_0x3d1d('0x2e')](_0x2f0c5c[_0x3d1d('0x2d')]);_0x21ae9e['filters']=_['intersection'](_0x21ae9e[_0x3d1d('0x2c')],_0x21ae9e[_0x3d1d('0x2d')]);_0x53eda1[_0x3d1d('0x31')]=_[_0x3d1d('0x2f')](_0x21ae9e[_0x3d1d('0x2c')],qs['fields'](_0x2f0c5c['query'][_0x3d1d('0x30')]));_0x53eda1['attributes']=_0x53eda1[_0x3d1d('0x31')][_0x3d1d('0x32')]?_0x53eda1[_0x3d1d('0x31')]:_0x21ae9e['model'];if(!_0x2f0c5c[_0x3d1d('0x2d')][_0x3d1d('0x33')]('nolimit')){_0x53eda1['limit']=qs[_0x3d1d('0x18')](_0x2f0c5c[_0x3d1d('0x2d')][_0x3d1d('0x18')]);_0x53eda1[_0x3d1d('0x15')]=qs['offset'](_0x2f0c5c[_0x3d1d('0x2d')]['offset']);}_0x53eda1['order']=qs[_0x3d1d('0x35')](_0x2f0c5c['query'][_0x3d1d('0x35')]);_0x53eda1[_0x3d1d('0x36')]=qs[_0x3d1d('0x37')](_['pick'](_0x2f0c5c['query'],_0x21ae9e[_0x3d1d('0x37')]));_0x53eda1[_0x3d1d('0x36')]['ProjectId']=_0x7c771f['id'];if(_0x2f0c5c[_0x3d1d('0x2d')][_0x3d1d('0x39')]){_0x53eda1[_0x3d1d('0x36')]=_[_0x3d1d('0x3b')](_0x53eda1[_0x3d1d('0x36')],{'$or':_[_0x3d1d('0x26')](_0x53eda1['attributes'],function(_0x4b1629){var _0x41d6d5={};_0x41d6d5[_0x4b1629]={'$like':'%'+_0x2f0c5c[_0x3d1d('0x2d')][_0x3d1d('0x39')]+'%'};return _0x41d6d5;})});}_0x53eda1=_[_0x3d1d('0x3b')]({},_0x53eda1,_0x2f0c5c[_0x3d1d('0x3c')]);return db['JscriptySessionReport'][_0x3d1d('0x17')]({'where':_0x53eda1[_0x3d1d('0x36')]})[_0x3d1d('0x1e')](function(_0x74eb92){_0x3ed221[_0x3d1d('0x17')]=_0x74eb92;if(_0x2f0c5c[_0x3d1d('0x2d')][_0x3d1d('0x3d')]){_0x53eda1[_0x3d1d('0x4d')]=[{'all':!![]}];}return db[_0x3d1d('0x55')][_0x3d1d('0x3e')](_0x53eda1);})[_0x3d1d('0x1e')](function(_0x15db8a){_0x3ed221['rows']=_0x15db8a;return _0x3ed221;});}})[_0x3d1d('0x1e')](respondWithFilteredResult(_0x1a4f28,_0x53eda1))[_0x3d1d('0x40')](handleError(_0x1a4f28,null));};exports[_0x3d1d('0x56')]=function(_0x1cc57f,_0x2a1f31,_0x54fe64){var _0x4886af={'raw':!![],'where':{}};var _0x54a6df={};var _0x49759d={'count':0x0,'rows':[]};return db['JscriptyProject'][_0x3d1d('0x54')]({'where':{'id':_0x1cc57f[_0x3d1d('0x42')]['id']}})[_0x3d1d('0x1e')](handleEntityNotFound(_0x2a1f31,null))[_0x3d1d('0x1e')](function(_0x2bc0fc){if(_0x2bc0fc){_0x54a6df[_0x3d1d('0x2c')]=_[_0x3d1d('0x2e')](db['JscriptyAnswerReport'][_0x3d1d('0x28')]);_0x54a6df['query']=_[_0x3d1d('0x2e')](_0x1cc57f[_0x3d1d('0x2d')]);_0x54a6df['filters']=_['intersection'](_0x54a6df[_0x3d1d('0x2c')],_0x54a6df['query']);_0x4886af[_0x3d1d('0x31')]=_[_0x3d1d('0x2f')](_0x54a6df[_0x3d1d('0x2c')],qs['fields'](_0x1cc57f['query']['fields']));_0x4886af[_0x3d1d('0x31')]=_0x4886af[_0x3d1d('0x31')][_0x3d1d('0x32')]?_0x4886af[_0x3d1d('0x31')]:_0x54a6df[_0x3d1d('0x2c')];if(!_0x1cc57f['query'][_0x3d1d('0x33')](_0x3d1d('0x34'))){_0x4886af[_0x3d1d('0x18')]=qs[_0x3d1d('0x18')](_0x1cc57f[_0x3d1d('0x2d')][_0x3d1d('0x18')]);_0x4886af[_0x3d1d('0x15')]=qs['offset'](_0x1cc57f['query'][_0x3d1d('0x15')]);}_0x4886af[_0x3d1d('0x57')]=qs[_0x3d1d('0x35')](_0x1cc57f[_0x3d1d('0x2d')]['sort']);_0x4886af[_0x3d1d('0x36')]=qs[_0x3d1d('0x37')](_[_0x3d1d('0x38')](_0x1cc57f[_0x3d1d('0x2d')],_0x54a6df[_0x3d1d('0x37')]));_0x4886af[_0x3d1d('0x36')][_0x3d1d('0x58')]=_0x2bc0fc['id'];if(_0x1cc57f[_0x3d1d('0x2d')]['filter']){_0x4886af[_0x3d1d('0x36')]=_[_0x3d1d('0x3b')](_0x4886af[_0x3d1d('0x36')],{'$or':_[_0x3d1d('0x26')](_0x4886af[_0x3d1d('0x31')],function(_0x2a6530){var _0x42b8e9={};_0x42b8e9[_0x2a6530]={'$like':'%'+_0x1cc57f['query'][_0x3d1d('0x39')]+'%'};return _0x42b8e9;})});}_0x4886af=_[_0x3d1d('0x3b')]({},_0x4886af,_0x1cc57f['options']);return db['JscriptyAnswerReport'][_0x3d1d('0x17')]({'where':_0x4886af[_0x3d1d('0x36')]})[_0x3d1d('0x1e')](function(_0x89f6e1){_0x49759d[_0x3d1d('0x17')]=_0x89f6e1;if(_0x1cc57f['query'][_0x3d1d('0x3d')]){_0x4886af['include']=[{'all':!![]}];}return db[_0x3d1d('0x59')]['findAll'](_0x4886af);})[_0x3d1d('0x1e')](function(_0x1ce410){_0x49759d['rows']=_0x1ce410;return _0x49759d;});}})['then'](respondWithFilteredResult(_0x2a1f31,_0x4886af))[_0x3d1d('0x40')](handleError(_0x2a1f31,null));};function char(_0x391461){return'number'===typeof _0x391461?String[_0x3d1d('0x5a')][_0x3d1d('0x1b')](null,arguments):_0x391461;}function needsEncapsulation(_0x2a6bb5){return!!_0x2a6bb5&&(_0x2a6bb5[_0x3d1d('0x5b')]()['indexOf'](char(0xd))>=0x0||_0x2a6bb5[_0x3d1d('0x5b')]()['indexOf'](char(0xa))>=0x0||_0x2a6bb5['toString']()[_0x3d1d('0x5c')](char(0x2c))>=0x0||_0x2a6bb5['toString']()[_0x3d1d('0x5c')](char(0x22))>=0x0);}function encapsulate(_0x159e1c){var _0x50273b=char(0x22),_0x1f8cfc='\x5c'+char(0x22),_0x178d87=_0x159e1c[_0x3d1d('0x5b')]()[_0x3d1d('0x5d')](new RegExp(_0x50273b,'g'),_0x1f8cfc);return _0x50273b+_0x178d87+_0x50273b;}exports[_0x3d1d('0x5e')]=function(_0x563860,_0x4eab92,_0x546380){var _0x265417,_0x47112a;var _0x27ad24={'where':{'ProjectId':_0x563860[_0x3d1d('0x42')]['id']}};if(_0x563860[_0x3d1d('0x2d')]['startTime']){_0x27ad24[_0x3d1d('0x36')][_0x3d1d('0x5f')]=JSON[_0x3d1d('0x60')](_0x563860[_0x3d1d('0x2d')][_0x3d1d('0x61')]);}return db[_0x3d1d('0x55')][_0x3d1d('0x3e')](_0x27ad24)['then'](handleEntityNotFound(_0x4eab92,null))[_0x3d1d('0x1e')](function(_0x8cdf34){if(_0x8cdf34){_0x265417=_0x8cdf34;return db[_0x3d1d('0x62')][_0x3d1d('0x3e')]({'where':{'SessionId':{'$in':_[_0x3d1d('0x26')](_0x265417,'id')},'ProjectId':_0x563860['params']['id']},'order':_0x3d1d('0x63')});}})[_0x3d1d('0x1e')](handleEntityNotFound(_0x4eab92,null))[_0x3d1d('0x1e')](function(_0x1be4df){if(_0x1be4df){_0x47112a=_0x1be4df;var _0x3e5f44={};for(var _0x163adb=0x0,_0x29e6b1=_0x47112a[_0x3d1d('0x32')];_0x163adb<_0x29e6b1;_0x163adb++){if(!_0x3e5f44[_0x3d1d('0x33')](_0x47112a[_0x163adb][_0x3d1d('0x64')])){_0x3e5f44[_0x47112a[_0x163adb][_0x3d1d('0x64')]]=needsEncapsulation(_0x47112a[_0x163adb][_0x3d1d('0x65')])?encapsulate(_0x47112a[_0x163adb][_0x3d1d('0x65')]):_0x47112a[_0x163adb][_0x3d1d('0x65')];}}var _0x3f0744=[],_0x38bf0e={};for(var _0x41b4c4=0x0,_0x327b08=_0x265417[_0x3d1d('0x32')];_0x41b4c4<_0x327b08;_0x41b4c4++){_0x38bf0e={'ProjectId':_0x563860['params']['id'],'SessionId':_0x265417[_0x41b4c4]['id'],'StartTime':moment(_0x265417[_0x41b4c4][_0x3d1d('0x5f')])[_0x3d1d('0x66')]('YYYY-MM-DD\x20HH:mm:ss')};for(var _0x42b563=0x0,_0x317436=_0x47112a[_0x3d1d('0x32')];_0x42b563<_0x317436;_0x42b563++){if(_0x47112a[_0x42b563]['SessionId']==_0x265417[_0x41b4c4]['id']&&_0x3e5f44[_0x3d1d('0x33')](_0x47112a[_0x42b563][_0x3d1d('0x64')])){_0x38bf0e[_0x3e5f44[_0x47112a[_0x42b563]['questionId']]]=_0x47112a[_0x42b563][_0x3d1d('0x67')];}}for(var _0x540a95 in _0x3e5f44){if(!_0x38bf0e['hasOwnProperty'](_0x3e5f44[_0x540a95])){_0x38bf0e[_0x3e5f44[_0x540a95]]=null;}}_0x3f0744['push'](_0x38bf0e);}return _0x3f0744;}})['then'](function(_0x3f05aa){if(!_[_0x3d1d('0x68')](_0x3f05aa)){var _0x251c58=toCsv(_0x3f05aa);var _0x4197f3=Date[_0x3d1d('0x69')]();fs[_0x3d1d('0x6a')](util[_0x3d1d('0x66')](_0x3d1d('0x6b'),_0x563860[_0x3d1d('0x42')]['id'],_0x4197f3),_0x251c58);_0x4eab92[_0x3d1d('0x6c')](_0x3d1d('0x6d'),_0x3d1d('0x6e')+util[_0x3d1d('0x66')](_0x3d1d('0x6f'),_0x563860[_0x3d1d('0x42')]['id'],_0x4197f3));_0x4eab92['setHeader'](_0x3d1d('0x70'),_0x3d1d('0x71'));return _0x4eab92['download'](util[_0x3d1d('0x66')](_0x3d1d('0x6b'),_0x563860[_0x3d1d('0x42')]['id'],_0x4197f3));}else{return _0x4eab92['sendStatus'](0xcc);}})[_0x3d1d('0x40')](handleError(_0x4eab92,null));};