ff4fa022debd65b54bcdaccadc94286d8839f593
[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 _0xb5fb=['-createdAt','questionId','question','format','YYYY-MM-DD\x20HH:mm:ss','SessionId','answer','push','isEmpty','/tmp/Jscripty_Project_%d_Summary_%s.csv','setHeader','Content-disposition','Jscripty_Project_%d_Summary_%s.csv','Content-type','text/csv','download','eml-format','rimraf','zip-dir','fast-json-patch','request-promise','moment','bluebird','mustache','util','path','sox','to-csv','ejs','fs-extra','crypto','desk.js','ioredis','../../components/parsers/qs','../../components/parsers/advancedSearch','../../config/license/hardware','../../config/logger','api','../../config/utils','../../config/environment','../../config/license/util','sendStatus','status','json','offset','limit','undefined','count','Content-Range','apply','reject','then','Projects','UserProfileResource','destroy','end','error','name','index','map','rawAttributes','fieldName','type','key','model','query','keys','filters','intersection','fields','attributes','length','hasOwnProperty','nolimit','order','sort','pick','filter','merge','where','options','JscriptyProject','includeAll','include','findAll','rows','catch','show','create','get','Unable\x20to\x20retrieve\x20the\x20current\x20user','user','find','autoAssociation','Unable\x20to\x20associate\x20the\x20resource\x20to\x20the\x20User\x20Profile:\x20%s','clone','createdAt','body','omit','updatedAt','role','UserProfileSection','userProfileId','update','params','getSessions','findOne','JscriptySessionReport','getAnswers','JscriptyAnswerReport','ProjectId','fromCharCode','toString','indexOf','replace','getSummary','starttime','startTime'];(function(_0x338442,_0x327f9d){var _0x3f96b6=function(_0x3cc8dc){while(--_0x3cc8dc){_0x338442['push'](_0x338442['shift']());}};_0x3f96b6(++_0x327f9d);}(_0xb5fb,0x172));var _0xbb5f=function(_0x2484be,_0x12368d){_0x2484be=_0x2484be-0x0;var _0x2953f1=_0xb5fb[_0x2484be];return _0x2953f1;};'use strict';var emlformat=require(_0xbb5f('0x0'));var rimraf=require(_0xbb5f('0x1'));var zipdir=require(_0xbb5f('0x2'));var jsonpatch=require(_0xbb5f('0x3'));var rp=require(_0xbb5f('0x4'));var moment=require(_0xbb5f('0x5'));var BPromise=require(_0xbb5f('0x6'));var Mustache=require(_0xbb5f('0x7'));var util=require(_0xbb5f('0x8'));var path=require(_0xbb5f('0x9'));var sox=require(_0xbb5f('0xa'));var csv=require(_0xbb5f('0xb'));var ejs=require(_0xbb5f('0xc'));var fs=require('fs');var fs_extra=require(_0xbb5f('0xd'));var _=require('lodash');var squel=require('squel');var crypto=require(_0xbb5f('0xe'));var jsforce=require('jsforce');var deskjs=require(_0xbb5f('0xf'));var toCsv=require(_0xbb5f('0xb'));var querystring=require('querystring');var Papa=require('papaparse');var Redis=require(_0xbb5f('0x10'));var authService=require('../../components/auth/service');var qs=require(_0xbb5f('0x11'));var as=require(_0xbb5f('0x12'));var hardwareService=require(_0xbb5f('0x13'));var logger=require(_0xbb5f('0x14'))(_0xbb5f('0x15'));var utils=require(_0xbb5f('0x16'));var config=require(_0xbb5f('0x17'));var licenseUtil=require(_0xbb5f('0x18'));var db=require('../../mysqldb')['db'];function respondWithStatusCode(_0xb6c375,_0x5754e0){_0x5754e0=_0x5754e0||0xcc;return function(_0xc0e15a){if(_0xc0e15a){return _0xb6c375[_0xbb5f('0x19')](_0x5754e0);}return _0xb6c375[_0xbb5f('0x1a')](_0x5754e0)['end']();};}function respondWithResult(_0x4315ba,_0xb68b5){_0xb68b5=_0xb68b5||0xc8;return function(_0x5db765){if(_0x5db765){return _0x4315ba[_0xbb5f('0x1a')](_0xb68b5)[_0xbb5f('0x1b')](_0x5db765);}};}function respondWithFilteredResult(_0x3078a8,_0x4085a1){return function(_0x59d9e0){if(_0x59d9e0){var _0x5cf99d=typeof _0x4085a1[_0xbb5f('0x1c')]==='undefined'&&typeof _0x4085a1[_0xbb5f('0x1d')]===_0xbb5f('0x1e');var _0x4efe3a=_0x59d9e0[_0xbb5f('0x1f')];var _0x4cc050=_0x5cf99d?0x0:_0x4085a1[_0xbb5f('0x1c')];var _0xca33c1=_0x5cf99d?_0x59d9e0[_0xbb5f('0x1f')]:_0x4085a1['offset']+_0x4085a1[_0xbb5f('0x1d')];var _0x82ce7e;if(_0xca33c1>=_0x4efe3a){_0xca33c1=_0x4efe3a;_0x82ce7e=0xc8;}else{_0x82ce7e=0xce;}_0x3078a8[_0xbb5f('0x1a')](_0x82ce7e);return _0x3078a8['set'](_0xbb5f('0x20'),_0x4cc050+'-'+_0xca33c1+'/'+_0x4efe3a)['json'](_0x59d9e0);}return null;};}function patchUpdates(_0x7ebb8e){return function(_0x63f1ad){try{jsonpatch[_0xbb5f('0x21')](_0x63f1ad,_0x7ebb8e,!![]);}catch(_0x5533c3){return BPromise[_0xbb5f('0x22')](_0x5533c3);}return _0x63f1ad['save']();};}function saveUpdates(_0x2127d7,_0x540b43){return function(_0x33633f){if(_0x33633f){return _0x33633f['update'](_0x2127d7)[_0xbb5f('0x23')](function(_0x488886){return _0x488886;});}return null;};}function removeEntity(_0x3f5f92,_0xb35efe){return function(_0x1649b8){if(_0x1649b8){return _0x1649b8['destroy']()[_0xbb5f('0x23')](function(){var _0x4de835=_0x1649b8['get']({'plain':!![]});var _0x41be1c=_0xbb5f('0x24');return db[_0xbb5f('0x25')][_0xbb5f('0x26')]({'where':{'type':_0x41be1c,'resourceId':_0x4de835['id']}})[_0xbb5f('0x23')](function(){return _0x1649b8;});})[_0xbb5f('0x23')](function(){_0x3f5f92[_0xbb5f('0x1a')](0xcc)[_0xbb5f('0x27')]();});}};}function handleEntityNotFound(_0x16f5bc,_0x229757){return function(_0xa87ebb){if(!_0xa87ebb){_0x16f5bc[_0xbb5f('0x19')](0x194);}return _0xa87ebb;};}function handleError(_0x187477,_0x26fd51){_0x26fd51=_0x26fd51||0x1f4;return function(_0x14566f){logger[_0xbb5f('0x28')](_0x14566f['stack']);if(_0x14566f['name']){delete _0x14566f[_0xbb5f('0x29')];}_0x187477[_0xbb5f('0x1a')](_0x26fd51)['send'](_0x14566f);};}exports[_0xbb5f('0x2a')]=function(_0x56ca55,_0x3ea574){var _0x30641a={},_0xa2adf2={},_0x24e8c2={'count':0x0,'rows':[]};var _0x22d528=_[_0xbb5f('0x2b')](db['JscriptyProject'][_0xbb5f('0x2c')],function(_0x3c720b){return{'name':_0x3c720b[_0xbb5f('0x2d')],'type':_0x3c720b[_0xbb5f('0x2e')][_0xbb5f('0x2f')]};});_0xa2adf2[_0xbb5f('0x30')]=_[_0xbb5f('0x2b')](_0x22d528,_0xbb5f('0x29'));_0xa2adf2[_0xbb5f('0x31')]=_[_0xbb5f('0x32')](_0x56ca55[_0xbb5f('0x31')]);_0xa2adf2[_0xbb5f('0x33')]=_['intersection'](_0xa2adf2[_0xbb5f('0x30')],_0xa2adf2[_0xbb5f('0x31')]);_0x30641a['attributes']=_[_0xbb5f('0x34')](_0xa2adf2['model'],qs[_0xbb5f('0x35')](_0x56ca55['query']['fields']));_0x30641a[_0xbb5f('0x36')]=_0x30641a[_0xbb5f('0x36')][_0xbb5f('0x37')]?_0x30641a[_0xbb5f('0x36')]:_0xa2adf2[_0xbb5f('0x30')];if(!_0x56ca55[_0xbb5f('0x31')][_0xbb5f('0x38')](_0xbb5f('0x39'))){_0x30641a[_0xbb5f('0x1d')]=qs[_0xbb5f('0x1d')](_0x56ca55[_0xbb5f('0x31')][_0xbb5f('0x1d')]);_0x30641a[_0xbb5f('0x1c')]=qs['offset'](_0x56ca55[_0xbb5f('0x31')][_0xbb5f('0x1c')]);}_0x30641a[_0xbb5f('0x3a')]=qs[_0xbb5f('0x3b')](_0x56ca55['query'][_0xbb5f('0x3b')]);_0x30641a['where']=qs[_0xbb5f('0x33')](_[_0xbb5f('0x3c')](_0x56ca55[_0xbb5f('0x31')],_0xa2adf2[_0xbb5f('0x33')]),_0x22d528);if(_0x56ca55[_0xbb5f('0x31')][_0xbb5f('0x3d')]){_0x30641a['where']=_[_0xbb5f('0x3e')](_0x30641a[_0xbb5f('0x3f')],{'$or':_[_0xbb5f('0x2b')](_0x22d528,function(_0x20f0ad){if(_0x20f0ad['type']!=='VIRTUAL'){var _0x5dc398={};_0x5dc398[_0x20f0ad[_0xbb5f('0x29')]]={'$like':'%'+_0x56ca55[_0xbb5f('0x31')][_0xbb5f('0x3d')]+'%'};return _0x5dc398;}})});}_0x30641a=_['merge']({},_0x30641a,_0x56ca55[_0xbb5f('0x40')]);var _0x408c84={'where':_0x30641a['where']};return db[_0xbb5f('0x41')][_0xbb5f('0x1f')](_0x408c84)['then'](function(_0x313a67){_0x24e8c2[_0xbb5f('0x1f')]=_0x313a67;if(_0x56ca55[_0xbb5f('0x31')][_0xbb5f('0x42')]){_0x30641a[_0xbb5f('0x43')]=[{'all':!![]}];}return db[_0xbb5f('0x41')][_0xbb5f('0x44')](_0x30641a);})[_0xbb5f('0x23')](function(_0x4a8af4){_0x24e8c2[_0xbb5f('0x45')]=_0x4a8af4;return _0x24e8c2;})[_0xbb5f('0x23')](respondWithFilteredResult(_0x3ea574,_0x30641a))[_0xbb5f('0x46')](handleError(_0x3ea574,null));};exports[_0xbb5f('0x47')]=function(_0x50ebe7,_0x2e0608){var _0x4d8961={'raw':![],'where':{'id':_0x50ebe7['params']['id']}},_0x3c6fee={};_0x3c6fee[_0xbb5f('0x30')]=_[_0xbb5f('0x32')](db[_0xbb5f('0x41')][_0xbb5f('0x2c')]);_0x3c6fee[_0xbb5f('0x31')]=_[_0xbb5f('0x32')](_0x50ebe7['query']);_0x3c6fee[_0xbb5f('0x33')]=_[_0xbb5f('0x34')](_0x3c6fee['model'],_0x3c6fee['query']);_0x4d8961[_0xbb5f('0x36')]=_[_0xbb5f('0x34')](_0x3c6fee['model'],qs[_0xbb5f('0x35')](_0x50ebe7[_0xbb5f('0x31')][_0xbb5f('0x35')]));_0x4d8961['attributes']=_0x4d8961[_0xbb5f('0x36')][_0xbb5f('0x37')]?_0x4d8961[_0xbb5f('0x36')]:_0x3c6fee['model'];if(_0x50ebe7['query'][_0xbb5f('0x42')]){_0x4d8961[_0xbb5f('0x43')]=[{'all':!![]}];}_0x4d8961=_[_0xbb5f('0x3e')]({},_0x4d8961,_0x50ebe7[_0xbb5f('0x40')]);return db['JscriptyProject']['find'](_0x4d8961)[_0xbb5f('0x23')](handleEntityNotFound(_0x2e0608,null))[_0xbb5f('0x23')](respondWithResult(_0x2e0608,null))['catch'](handleError(_0x2e0608,null));};exports[_0xbb5f('0x48')]=function(_0x3f1fe6,_0x5a21cc){return db[_0xbb5f('0x41')][_0xbb5f('0x48')](_0x3f1fe6['body'],{})[_0xbb5f('0x23')](function(_0x144305){var _0x4a062c=_0x3f1fe6['user'][_0xbb5f('0x49')]({'plain':!![]});if(!_0x4a062c)throw new Error(_0xbb5f('0x4a'));if(_0x4a062c['role']===_0xbb5f('0x4b')){var _0x9b1906=_0x144305[_0xbb5f('0x49')]({'plain':!![]});var _0x3fc42d='Projects';return db['UserProfileSection'][_0xbb5f('0x4c')]({'where':{'name':_0x3fc42d,'userProfileId':_0x4a062c['userProfileId']},'raw':!![]})['then'](function(_0xe88d9e){if(_0xe88d9e&&_0xe88d9e[_0xbb5f('0x4d')]===0x0){return db['UserProfileResource'][_0xbb5f('0x48')]({'name':_0x9b1906[_0xbb5f('0x29')],'resourceId':_0x9b1906['id'],'type':_0xe88d9e[_0xbb5f('0x29')],'sectionId':_0xe88d9e['id']},{})['then'](function(){return _0x144305;});}else{return _0x144305;}})[_0xbb5f('0x46')](function(_0x118de3){logger[_0xbb5f('0x28')](_0xbb5f('0x4e'),_0x118de3);throw _0x118de3;});}return _0x144305;})['then'](respondWithResult(_0x5a21cc,0xc9))['catch'](handleError(_0x5a21cc,null));};exports[_0xbb5f('0x4f')]=function(_0x5dbe1a,_0x52cad4){var _0x44de07={'where':{'id':_0x5dbe1a['params']['id']}},_0xcbbbc7={};_0xcbbbc7[_0xbb5f('0x30')]=_[_0xbb5f('0x32')](db['JscriptyProject'][_0xbb5f('0x2c')]);_0x44de07[_0xbb5f('0x36')]=_[_0xbb5f('0x34')](_0xcbbbc7['model'],qs[_0xbb5f('0x35')](_0x5dbe1a[_0xbb5f('0x31')][_0xbb5f('0x35')]));_0x44de07[_0xbb5f('0x36')]=_0x44de07[_0xbb5f('0x36')][_0xbb5f('0x37')]?_0x44de07[_0xbb5f('0x36')]:_0xcbbbc7[_0xbb5f('0x30')];if(_0x5dbe1a[_0xbb5f('0x31')][_0xbb5f('0x42')]){_0x44de07['include']=[{'all':!![]}];}_0x44de07=_[_0xbb5f('0x3e')]({},_0x44de07,_0x5dbe1a[_0xbb5f('0x40')]);return db['JscriptyProject'][_0xbb5f('0x4c')](_0x44de07)[_0xbb5f('0x23')](handleEntityNotFound(_0x52cad4,null))[_0xbb5f('0x23')](function(_0x337485){if(_0x337485){var _0x1f73cf=_0x337485[_0xbb5f('0x49')]({'plain':!![]});_0x1f73cf=qs['omit'](_0x1f73cf,['id',_0xbb5f('0x50'),'updatedAt']);_0x5dbe1a[_0xbb5f('0x51')]=_[_0xbb5f('0x52')](_0x5dbe1a[_0xbb5f('0x51')],['id',_0xbb5f('0x50'),_0xbb5f('0x53')]);return db['JscriptyProject'][_0xbb5f('0x48')](_[_0xbb5f('0x3e')](_0x1f73cf,_0x5dbe1a[_0xbb5f('0x51')]),{'include':_0x5dbe1a['query'][_0xbb5f('0x42')]?[{'all':!![]}]:undefined})[_0xbb5f('0x23')](function(_0x4b2d0f){var _0x50731c=_0x5dbe1a[_0xbb5f('0x4b')][_0xbb5f('0x49')]({'plain':!![]});if(!_0x50731c)throw new Error('Unable\x20to\x20retrieve\x20the\x20current\x20user');if(_0x50731c[_0xbb5f('0x54')]==='user'){var _0x588a31=_0x4b2d0f['get']({'plain':!![]});var _0x4d69a8=_0xbb5f('0x24');return db[_0xbb5f('0x55')][_0xbb5f('0x4c')]({'where':{'name':_0x4d69a8,'userProfileId':_0x50731c[_0xbb5f('0x56')]},'raw':!![]})[_0xbb5f('0x23')](function(_0x1706a6){if(_0x1706a6&&_0x1706a6['autoAssociation']===0x0){return db[_0xbb5f('0x25')][_0xbb5f('0x48')]({'name':_0x588a31[_0xbb5f('0x29')],'resourceId':_0x588a31['id'],'type':_0x1706a6[_0xbb5f('0x29')],'sectionId':_0x1706a6['id']},{})[_0xbb5f('0x23')](function(){return _0x4b2d0f;});}else{return _0x4b2d0f;}})[_0xbb5f('0x46')](function(_0x235a73){logger[_0xbb5f('0x28')](_0xbb5f('0x4e'),_0x235a73);throw _0x235a73;});}return _0x4b2d0f;});}})[_0xbb5f('0x23')](respondWithResult(_0x52cad4,0xc9))[_0xbb5f('0x46')](handleError(_0x52cad4,null));};exports[_0xbb5f('0x57')]=function(_0x743f3b,_0x35640e){if(_0x743f3b['body']['id']){delete _0x743f3b[_0xbb5f('0x51')]['id'];}return db[_0xbb5f('0x41')][_0xbb5f('0x4c')]({'where':{'id':_0x743f3b[_0xbb5f('0x58')]['id']}})[_0xbb5f('0x23')](handleEntityNotFound(_0x35640e,null))[_0xbb5f('0x23')](saveUpdates(_0x743f3b['body'],null))[_0xbb5f('0x23')](respondWithResult(_0x35640e,null))['catch'](handleError(_0x35640e,null));};exports[_0xbb5f('0x26')]=function(_0x3e260c,_0x23d18b){return db['JscriptyProject'][_0xbb5f('0x4c')]({'where':{'id':_0x3e260c['params']['id']}})[_0xbb5f('0x23')](handleEntityNotFound(_0x23d18b,null))[_0xbb5f('0x23')](removeEntity(_0x23d18b,null))[_0xbb5f('0x46')](handleError(_0x23d18b,null));};exports[_0xbb5f('0x59')]=function(_0x34e20b,_0x5cb244,_0xf8442a){var _0x516ba8={'raw':!![],'where':{}};var _0x3f84df={};var _0x221fdd={'count':0x0,'rows':[]};return db[_0xbb5f('0x41')][_0xbb5f('0x5a')]({'where':{'id':_0x34e20b[_0xbb5f('0x58')]['id']}})[_0xbb5f('0x23')](handleEntityNotFound(_0x5cb244,null))[_0xbb5f('0x23')](function(_0x31ef4c){if(_0x31ef4c){_0x3f84df['model']=_[_0xbb5f('0x32')](db['JscriptySessionReport'][_0xbb5f('0x2c')]);_0x3f84df[_0xbb5f('0x31')]=_['keys'](_0x34e20b[_0xbb5f('0x31')]);_0x3f84df['filters']=_[_0xbb5f('0x34')](_0x3f84df[_0xbb5f('0x30')],_0x3f84df['query']);_0x516ba8[_0xbb5f('0x36')]=_[_0xbb5f('0x34')](_0x3f84df[_0xbb5f('0x30')],qs[_0xbb5f('0x35')](_0x34e20b[_0xbb5f('0x31')][_0xbb5f('0x35')]));_0x516ba8['attributes']=_0x516ba8[_0xbb5f('0x36')]['length']?_0x516ba8['attributes']:_0x3f84df[_0xbb5f('0x30')];if(!_0x34e20b[_0xbb5f('0x31')][_0xbb5f('0x38')]('nolimit')){_0x516ba8['limit']=qs[_0xbb5f('0x1d')](_0x34e20b[_0xbb5f('0x31')]['limit']);_0x516ba8[_0xbb5f('0x1c')]=qs[_0xbb5f('0x1c')](_0x34e20b[_0xbb5f('0x31')]['offset']);}_0x516ba8[_0xbb5f('0x3a')]=qs[_0xbb5f('0x3b')](_0x34e20b[_0xbb5f('0x31')][_0xbb5f('0x3b')]);_0x516ba8[_0xbb5f('0x3f')]=qs[_0xbb5f('0x33')](_['pick'](_0x34e20b[_0xbb5f('0x31')],_0x3f84df['filters']));_0x516ba8[_0xbb5f('0x3f')]['ProjectId']=_0x31ef4c['id'];if(_0x34e20b[_0xbb5f('0x31')][_0xbb5f('0x3d')]){_0x516ba8['where']=_[_0xbb5f('0x3e')](_0x516ba8[_0xbb5f('0x3f')],{'$or':_['map'](_0x516ba8[_0xbb5f('0x36')],function(_0x19ebee){var _0x35b138={};_0x35b138[_0x19ebee]={'$like':'%'+_0x34e20b[_0xbb5f('0x31')][_0xbb5f('0x3d')]+'%'};return _0x35b138;})});}_0x516ba8=_['merge']({},_0x516ba8,_0x34e20b[_0xbb5f('0x40')]);return db[_0xbb5f('0x5b')][_0xbb5f('0x1f')]({'where':_0x516ba8[_0xbb5f('0x3f')]})[_0xbb5f('0x23')](function(_0x50c3b4){_0x221fdd[_0xbb5f('0x1f')]=_0x50c3b4;if(_0x34e20b[_0xbb5f('0x31')][_0xbb5f('0x42')]){_0x516ba8[_0xbb5f('0x43')]=[{'all':!![]}];}return db[_0xbb5f('0x5b')]['findAll'](_0x516ba8);})[_0xbb5f('0x23')](function(_0x5eb1b2){_0x221fdd['rows']=_0x5eb1b2;return _0x221fdd;});}})[_0xbb5f('0x23')](respondWithFilteredResult(_0x5cb244,_0x516ba8))[_0xbb5f('0x46')](handleError(_0x5cb244,null));};exports[_0xbb5f('0x5c')]=function(_0x4dc0da,_0x1cf2e7,_0x495382){var _0x111acb={'raw':!![],'where':{}};var _0x13fe18={};var _0x5284b7={'count':0x0,'rows':[]};return db[_0xbb5f('0x41')][_0xbb5f('0x5a')]({'where':{'id':_0x4dc0da[_0xbb5f('0x58')]['id']}})[_0xbb5f('0x23')](handleEntityNotFound(_0x1cf2e7,null))[_0xbb5f('0x23')](function(_0x37279c){if(_0x37279c){_0x13fe18[_0xbb5f('0x30')]=_[_0xbb5f('0x32')](db[_0xbb5f('0x5d')][_0xbb5f('0x2c')]);_0x13fe18['query']=_[_0xbb5f('0x32')](_0x4dc0da[_0xbb5f('0x31')]);_0x13fe18[_0xbb5f('0x33')]=_[_0xbb5f('0x34')](_0x13fe18['model'],_0x13fe18[_0xbb5f('0x31')]);_0x111acb[_0xbb5f('0x36')]=_[_0xbb5f('0x34')](_0x13fe18[_0xbb5f('0x30')],qs[_0xbb5f('0x35')](_0x4dc0da[_0xbb5f('0x31')][_0xbb5f('0x35')]));_0x111acb[_0xbb5f('0x36')]=_0x111acb[_0xbb5f('0x36')]['length']?_0x111acb['attributes']:_0x13fe18[_0xbb5f('0x30')];if(!_0x4dc0da[_0xbb5f('0x31')]['hasOwnProperty']('nolimit')){_0x111acb[_0xbb5f('0x1d')]=qs[_0xbb5f('0x1d')](_0x4dc0da['query'][_0xbb5f('0x1d')]);_0x111acb[_0xbb5f('0x1c')]=qs[_0xbb5f('0x1c')](_0x4dc0da[_0xbb5f('0x31')]['offset']);}_0x111acb['order']=qs[_0xbb5f('0x3b')](_0x4dc0da[_0xbb5f('0x31')][_0xbb5f('0x3b')]);_0x111acb[_0xbb5f('0x3f')]=qs[_0xbb5f('0x33')](_[_0xbb5f('0x3c')](_0x4dc0da[_0xbb5f('0x31')],_0x13fe18[_0xbb5f('0x33')]));_0x111acb[_0xbb5f('0x3f')][_0xbb5f('0x5e')]=_0x37279c['id'];if(_0x4dc0da[_0xbb5f('0x31')][_0xbb5f('0x3d')]){_0x111acb['where']=_[_0xbb5f('0x3e')](_0x111acb[_0xbb5f('0x3f')],{'$or':_[_0xbb5f('0x2b')](_0x111acb[_0xbb5f('0x36')],function(_0x268f39){var _0x2b2594={};_0x2b2594[_0x268f39]={'$like':'%'+_0x4dc0da[_0xbb5f('0x31')][_0xbb5f('0x3d')]+'%'};return _0x2b2594;})});}_0x111acb=_[_0xbb5f('0x3e')]({},_0x111acb,_0x4dc0da['options']);return db[_0xbb5f('0x5d')][_0xbb5f('0x1f')]({'where':_0x111acb[_0xbb5f('0x3f')]})[_0xbb5f('0x23')](function(_0x2dfb5c){_0x5284b7[_0xbb5f('0x1f')]=_0x2dfb5c;if(_0x4dc0da['query'][_0xbb5f('0x42')]){_0x111acb[_0xbb5f('0x43')]=[{'all':!![]}];}return db[_0xbb5f('0x5d')]['findAll'](_0x111acb);})[_0xbb5f('0x23')](function(_0x28f36d){_0x5284b7[_0xbb5f('0x45')]=_0x28f36d;return _0x5284b7;});}})[_0xbb5f('0x23')](respondWithFilteredResult(_0x1cf2e7,_0x111acb))['catch'](handleError(_0x1cf2e7,null));};function char(_0x44b665){return'number'===typeof _0x44b665?String[_0xbb5f('0x5f')][_0xbb5f('0x21')](null,arguments):_0x44b665;}function needsEncapsulation(_0x5cfd26){return!!_0x5cfd26&&(_0x5cfd26[_0xbb5f('0x60')]()['indexOf'](char(0xd))>=0x0||_0x5cfd26[_0xbb5f('0x60')]()[_0xbb5f('0x61')](char(0xa))>=0x0||_0x5cfd26[_0xbb5f('0x60')]()['indexOf'](char(0x2c))>=0x0||_0x5cfd26[_0xbb5f('0x60')]()[_0xbb5f('0x61')](char(0x22))>=0x0);}function encapsulate(_0x5901a7){var _0xac3000=char(0x22),_0x2928f4='\x5c'+char(0x22),_0x427c4e=_0x5901a7[_0xbb5f('0x60')]()[_0xbb5f('0x62')](new RegExp(_0xac3000,'g'),_0x2928f4);return _0xac3000+_0x427c4e+_0xac3000;}exports[_0xbb5f('0x63')]=function(_0x571b2b,_0x42908a,_0x1814fd){var _0x275fe7,_0x2f7e50;var _0x1f9286={'where':{'ProjectId':_0x571b2b['params']['id']}};if(_0x571b2b[_0xbb5f('0x31')]['startTime']){_0x1f9286[_0xbb5f('0x3f')][_0xbb5f('0x64')]=JSON['parse'](_0x571b2b[_0xbb5f('0x31')][_0xbb5f('0x65')]);}return db['JscriptySessionReport'][_0xbb5f('0x44')](_0x1f9286)[_0xbb5f('0x23')](handleEntityNotFound(_0x42908a,null))[_0xbb5f('0x23')](function(_0x523536){if(_0x523536){_0x275fe7=_0x523536;return db['JscriptyQuestionReport'][_0xbb5f('0x44')]({'where':{'SessionId':{'$in':_[_0xbb5f('0x2b')](_0x275fe7,'id')},'ProjectId':_0x571b2b[_0xbb5f('0x58')]['id']},'order':_0xbb5f('0x66')});}})[_0xbb5f('0x23')](handleEntityNotFound(_0x42908a,null))['then'](function(_0x33cf16){if(_0x33cf16){_0x2f7e50=_0x33cf16;var _0x4c7aac={};for(var _0x544a1e=0x0,_0x5262b8=_0x2f7e50['length'];_0x544a1e<_0x5262b8;_0x544a1e++){if(!_0x4c7aac[_0xbb5f('0x38')](_0x2f7e50[_0x544a1e][_0xbb5f('0x67')])){_0x4c7aac[_0x2f7e50[_0x544a1e]['questionId']]=needsEncapsulation(_0x2f7e50[_0x544a1e][_0xbb5f('0x68')])?encapsulate(_0x2f7e50[_0x544a1e][_0xbb5f('0x68')]):_0x2f7e50[_0x544a1e][_0xbb5f('0x68')];}}var _0x4144bc=[],_0xa934da={};for(var _0x2a110a=0x0,_0x396250=_0x275fe7[_0xbb5f('0x37')];_0x2a110a<_0x396250;_0x2a110a++){_0xa934da={'ProjectId':_0x571b2b['params']['id'],'SessionId':_0x275fe7[_0x2a110a]['id'],'StartTime':moment(_0x275fe7[_0x2a110a]['starttime'])[_0xbb5f('0x69')](_0xbb5f('0x6a'))};for(var _0x11a992=0x0,_0x431411=_0x2f7e50[_0xbb5f('0x37')];_0x11a992<_0x431411;_0x11a992++){if(_0x2f7e50[_0x11a992][_0xbb5f('0x6b')]==_0x275fe7[_0x2a110a]['id']&&_0x4c7aac[_0xbb5f('0x38')](_0x2f7e50[_0x11a992][_0xbb5f('0x67')])){_0xa934da[_0x4c7aac[_0x2f7e50[_0x11a992][_0xbb5f('0x67')]]]=_0x2f7e50[_0x11a992][_0xbb5f('0x6c')];}}for(var _0x27a4c0 in _0x4c7aac){if(!_0xa934da[_0xbb5f('0x38')](_0x4c7aac[_0x27a4c0])){_0xa934da[_0x4c7aac[_0x27a4c0]]=null;}}_0x4144bc[_0xbb5f('0x6d')](_0xa934da);}return _0x4144bc;}})[_0xbb5f('0x23')](function(_0x1affe6){if(!_[_0xbb5f('0x6e')](_0x1affe6)){var _0x12f99a=toCsv(_0x1affe6);var _0x1b7061=Date['now']();fs['writeFileSync'](util['format'](_0xbb5f('0x6f'),_0x571b2b[_0xbb5f('0x58')]['id'],_0x1b7061),_0x12f99a);_0x42908a[_0xbb5f('0x70')](_0xbb5f('0x71'),'attachment;\x20filename='+util[_0xbb5f('0x69')](_0xbb5f('0x72'),_0x571b2b['params']['id'],_0x1b7061));_0x42908a[_0xbb5f('0x70')](_0xbb5f('0x73'),_0xbb5f('0x74'));return _0x42908a[_0xbb5f('0x75')](util[_0xbb5f('0x69')](_0xbb5f('0x6f'),_0x571b2b[_0xbb5f('0x58')]['id'],_0x1b7061));}else{return _0x42908a[_0xbb5f('0x19')](0xcc);}})['catch'](handleError(_0x42908a,null));};