Built motion from commit 936e8062.|2.5.33
[motion2.git] / server / api / squareRecording / squareRecording.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 _0x53ba=['uniqueid','savePath','filename','format','%s.cypher','existsSync','decryptFile','secrets','recording','Sequelize','ValidationError','extname','unlink','message','destroy','Entity\x20not\x20found','info','cancellazione\x20fisica\x20documento\x20%s','isNil','File:\x20\x22','unlinkSync','.cypher','eml-format','rimraf','fast-json-patch','bluebird','sox','to-csv','ejs','squel','crypto','jsforce','querystring','../../components/parsers/advancedSearch','../../config/utils','../../config/environment','../../config/license/util','../../mysqldb','sendStatus','status','offset','undefined','count','set','Content-Range','json','apply','reject','save','update','then','end','error','stack','name','send','SquareRecording','rawAttributes','key','model','map','query','filters','intersection','attributes','fields','length','hasOwnProperty','nolimit','limit','order','sort','where','pick','filter','merge','VIRTUAL','options','includeAll','findAll','catch','show','params','keys','find','create','body','download','type'];(function(_0x1aa46a,_0x320caa){var _0x3cfaa2=function(_0x205403){while(--_0x205403){_0x1aa46a['push'](_0x1aa46a['shift']());}};_0x3cfaa2(++_0x320caa);}(_0x53ba,0x17a));var _0xa53b=function(_0x2458ed,_0x5376b7){_0x2458ed=_0x2458ed-0x0;var _0x54d832=_0x53ba[_0x2458ed];return _0x54d832;};'use strict';var emlformat=require(_0xa53b('0x0'));var rimraf=require(_0xa53b('0x1'));var zipdir=require('zip-dir');var jsonpatch=require(_0xa53b('0x2'));var rp=require('request-promise');var moment=require('moment');var BPromise=require(_0xa53b('0x3'));var Mustache=require('mustache');var util=require('util');var path=require('path');var sox=require(_0xa53b('0x4'));var csv=require(_0xa53b('0x5'));var ejs=require(_0xa53b('0x6'));var fs=require('fs');var fs_extra=require('fs-extra');var _=require('lodash');var squel=require(_0xa53b('0x7'));var crypto=require(_0xa53b('0x8'));var jsforce=require(_0xa53b('0x9'));var deskjs=require('desk.js');var toCsv=require(_0xa53b('0x5'));var querystring=require(_0xa53b('0xa'));var Papa=require('papaparse');var Redis=require('ioredis');var authService=require('../../components/auth/service');var qs=require('../../components/parsers/qs');var as=require(_0xa53b('0xb'));var hardwareService=require('../../config/license/hardware');var logger=require('../../config/logger')('api');var utils=require(_0xa53b('0xc'));var config=require(_0xa53b('0xd'));var licenseUtil=require(_0xa53b('0xe'));var db=require(_0xa53b('0xf'))['db'];function respondWithStatusCode(_0x4cc131,_0xa2f0b1){_0xa2f0b1=_0xa2f0b1||0xcc;return function(_0x4e1fed){if(_0x4e1fed){return _0x4cc131[_0xa53b('0x10')](_0xa2f0b1);}return _0x4cc131[_0xa53b('0x11')](_0xa2f0b1)['end']();};}function respondWithResult(_0x9d3cdb,_0x2258f9){_0x2258f9=_0x2258f9||0xc8;return function(_0x5d064b){if(_0x5d064b){return _0x9d3cdb[_0xa53b('0x11')](_0x2258f9)['json'](_0x5d064b);}};}function respondWithFilteredResult(_0xacfd39,_0x30a192){return function(_0x465d27){if(_0x465d27){var _0x120db9=typeof _0x30a192[_0xa53b('0x12')]==='undefined'&&typeof _0x30a192['limit']===_0xa53b('0x13');var _0x3a7ae8=_0x465d27[_0xa53b('0x14')];var _0x521eb4=_0x120db9?0x0:_0x30a192[_0xa53b('0x12')];var _0x423eb2=_0x120db9?_0x465d27[_0xa53b('0x14')]:_0x30a192[_0xa53b('0x12')]+_0x30a192['limit'];var _0x4f23d6;if(_0x423eb2>=_0x3a7ae8){_0x423eb2=_0x3a7ae8;_0x4f23d6=0xc8;}else{_0x4f23d6=0xce;}_0xacfd39[_0xa53b('0x11')](_0x4f23d6);return _0xacfd39[_0xa53b('0x15')](_0xa53b('0x16'),_0x521eb4+'-'+_0x423eb2+'/'+_0x3a7ae8)[_0xa53b('0x17')](_0x465d27);}return null;};}function patchUpdates(_0x27aa23){return function(_0x47ff7d){try{jsonpatch[_0xa53b('0x18')](_0x47ff7d,_0x27aa23,!![]);}catch(_0x205e91){return BPromise[_0xa53b('0x19')](_0x205e91);}return _0x47ff7d[_0xa53b('0x1a')]();};}function saveUpdates(_0x5a13bc,_0x40e8f9){return function(_0x7ee937){if(_0x7ee937){return _0x7ee937[_0xa53b('0x1b')](_0x5a13bc)[_0xa53b('0x1c')](function(_0x2787f){return _0x2787f;});}return null;};}function removeEntity(_0x1299d6,_0x49fa68){return function(_0x5b6b7e){if(_0x5b6b7e){return _0x5b6b7e['destroy']()[_0xa53b('0x1c')](function(){_0x1299d6[_0xa53b('0x11')](0xcc)[_0xa53b('0x1d')]();});}};}function handleEntityNotFound(_0x244796,_0x251b5a){return function(_0x30a4e4){if(!_0x30a4e4){_0x244796[_0xa53b('0x10')](0x194);}return _0x30a4e4;};}function handleError(_0x5f0331,_0x115c72){_0x115c72=_0x115c72||0x1f4;return function(_0xc4fb75){logger[_0xa53b('0x1e')](_0xc4fb75[_0xa53b('0x1f')]);if(_0xc4fb75[_0xa53b('0x20')]){delete _0xc4fb75[_0xa53b('0x20')];}_0x5f0331[_0xa53b('0x11')](_0x115c72)[_0xa53b('0x21')](_0xc4fb75);};}exports['index']=function(_0xf1c2a0,_0x3c0c03){var _0x12ebf7={},_0x4ca388={},_0x1c4e9b={'count':0x0,'rows':[]};var _0x2f6d0e=_['map'](db[_0xa53b('0x22')][_0xa53b('0x23')],function(_0x1ae913){return{'name':_0x1ae913['fieldName'],'type':_0x1ae913['type'][_0xa53b('0x24')]};});_0x4ca388[_0xa53b('0x25')]=_[_0xa53b('0x26')](_0x2f6d0e,'name');_0x4ca388[_0xa53b('0x27')]=_['keys'](_0xf1c2a0['query']);_0x4ca388[_0xa53b('0x28')]=_[_0xa53b('0x29')](_0x4ca388[_0xa53b('0x25')],_0x4ca388[_0xa53b('0x27')]);_0x12ebf7[_0xa53b('0x2a')]=_[_0xa53b('0x29')](_0x4ca388[_0xa53b('0x25')],qs[_0xa53b('0x2b')](_0xf1c2a0[_0xa53b('0x27')][_0xa53b('0x2b')]));_0x12ebf7[_0xa53b('0x2a')]=_0x12ebf7['attributes'][_0xa53b('0x2c')]?_0x12ebf7[_0xa53b('0x2a')]:_0x4ca388[_0xa53b('0x25')];if(!_0xf1c2a0[_0xa53b('0x27')][_0xa53b('0x2d')](_0xa53b('0x2e'))){_0x12ebf7[_0xa53b('0x2f')]=qs[_0xa53b('0x2f')](_0xf1c2a0[_0xa53b('0x27')]['limit']);_0x12ebf7[_0xa53b('0x12')]=qs[_0xa53b('0x12')](_0xf1c2a0[_0xa53b('0x27')][_0xa53b('0x12')]);}_0x12ebf7[_0xa53b('0x30')]=qs[_0xa53b('0x31')](_0xf1c2a0[_0xa53b('0x27')][_0xa53b('0x31')]);_0x12ebf7[_0xa53b('0x32')]=qs['filters'](_[_0xa53b('0x33')](_0xf1c2a0['query'],_0x4ca388['filters']),_0x2f6d0e);if(_0xf1c2a0[_0xa53b('0x27')][_0xa53b('0x34')]){_0x12ebf7[_0xa53b('0x32')]=_[_0xa53b('0x35')](_0x12ebf7['where'],{'$or':_[_0xa53b('0x26')](_0x2f6d0e,function(_0x521e53){if(_0x521e53['type']!==_0xa53b('0x36')){var _0x106ab9={};_0x106ab9[_0x521e53['name']]={'$like':'%'+_0xf1c2a0[_0xa53b('0x27')]['filter']+'%'};return _0x106ab9;}})});}_0x12ebf7=_[_0xa53b('0x35')]({},_0x12ebf7,_0xf1c2a0[_0xa53b('0x37')]);var _0x34fad2={'where':_0x12ebf7[_0xa53b('0x32')]};return db[_0xa53b('0x22')]['count'](_0x34fad2)[_0xa53b('0x1c')](function(_0x5776bc){_0x1c4e9b[_0xa53b('0x14')]=_0x5776bc;if(_0xf1c2a0[_0xa53b('0x27')][_0xa53b('0x38')]){_0x12ebf7['include']=[{'all':!![]}];}return db[_0xa53b('0x22')][_0xa53b('0x39')](_0x12ebf7);})['then'](function(_0x52e2de){_0x1c4e9b['rows']=_0x52e2de;return _0x1c4e9b;})['then'](respondWithFilteredResult(_0x3c0c03,_0x12ebf7))[_0xa53b('0x3a')](handleError(_0x3c0c03,null));};exports[_0xa53b('0x3b')]=function(_0x3fed88,_0x51f873){var _0x1761fe={'raw':!![],'where':{'id':_0x3fed88[_0xa53b('0x3c')]['id']}},_0x5a723a={};_0x5a723a['model']=_[_0xa53b('0x3d')](db[_0xa53b('0x22')][_0xa53b('0x23')]);_0x5a723a[_0xa53b('0x27')]=_[_0xa53b('0x3d')](_0x3fed88[_0xa53b('0x27')]);_0x5a723a[_0xa53b('0x28')]=_['intersection'](_0x5a723a[_0xa53b('0x25')],_0x5a723a['query']);_0x1761fe[_0xa53b('0x2a')]=_[_0xa53b('0x29')](_0x5a723a[_0xa53b('0x25')],qs[_0xa53b('0x2b')](_0x3fed88[_0xa53b('0x27')]['fields']));_0x1761fe[_0xa53b('0x2a')]=_0x1761fe[_0xa53b('0x2a')][_0xa53b('0x2c')]?_0x1761fe[_0xa53b('0x2a')]:_0x5a723a['model'];if(_0x3fed88[_0xa53b('0x27')][_0xa53b('0x38')]){_0x1761fe['include']=[{'all':!![]}];}_0x1761fe=_[_0xa53b('0x35')]({},_0x1761fe,_0x3fed88['options']);return db[_0xa53b('0x22')][_0xa53b('0x3e')](_0x1761fe)['then'](handleEntityNotFound(_0x51f873,null))[_0xa53b('0x1c')](respondWithResult(_0x51f873,null))[_0xa53b('0x3a')](handleError(_0x51f873,null));};exports[_0xa53b('0x3f')]=function(_0x203b7c,_0x4f84a6){return db[_0xa53b('0x22')][_0xa53b('0x3f')](_0x203b7c['body'],{})[_0xa53b('0x1c')](respondWithResult(_0x4f84a6,0xc9))[_0xa53b('0x3a')](handleError(_0x4f84a6,null));};exports[_0xa53b('0x1b')]=function(_0x2af272,_0x277ee8){if(_0x2af272['body']['id']){delete _0x2af272[_0xa53b('0x40')]['id'];}return db[_0xa53b('0x22')][_0xa53b('0x3e')]({'where':{'id':_0x2af272[_0xa53b('0x3c')]['id']}})[_0xa53b('0x1c')](handleEntityNotFound(_0x277ee8,null))['then'](saveUpdates(_0x2af272[_0xa53b('0x40')],null))[_0xa53b('0x1c')](respondWithResult(_0x277ee8,null))['catch'](handleError(_0x277ee8,null));};exports[_0xa53b('0x41')]=function(_0x24e59d,_0x200955,_0x3c03c4){var _0x414220=require('../../components/encryptor');var _0x5264bf=![];var _0x1918fd={};if(_0x24e59d[_0xa53b('0x27')][_0xa53b('0x42')]&&_0x24e59d[_0xa53b('0x27')][_0xa53b('0x42')]===_0xa53b('0x43')){_0x1918fd[_0xa53b('0x43')]=_0x24e59d[_0xa53b('0x3c')]['id'];}else{_0x1918fd['id']=_0x24e59d[_0xa53b('0x3c')]['id'];}return db[_0xa53b('0x22')][_0xa53b('0x3e')]({'where':_0x1918fd,'attributes':['id',_0xa53b('0x44'),_0xa53b('0x45')],'raw':!![]})[_0xa53b('0x1c')](handleEntityNotFound(_0x200955,null))['then'](function(_0xa61e52){if(_0xa61e52){var _0xccbac8=_0xa61e52['savePath'];var _0x18ef13=util[_0xa53b('0x46')](_0xa53b('0x47'),_0xccbac8);if(fs[_0xa53b('0x48')](_0x18ef13)){_0x5264bf=!![];return _0x414220[_0xa53b('0x49')](_0x18ef13,_0xccbac8,config[_0xa53b('0x4a')][_0xa53b('0x4b')])['then'](function(){return _0xa61e52;});}return _0xa61e52;}})[_0xa53b('0x1c')](function(_0x5931e7){if(_0x5931e7){var _0x11de0f=_0x5931e7['savePath'];if(!fs[_0xa53b('0x48')](_0x11de0f)){throw new db[(_0xa53b('0x4c'))][(_0xa53b('0x4d'))]('SquareRecording\x20not\x20found');}if(_0x5931e7[_0xa53b('0x45')]){return _0x200955[_0xa53b('0x41')](_0x11de0f,_0x5931e7['filename']+path[_0xa53b('0x4e')](_0x11de0f),function(){if(_0x5264bf){fs[_0xa53b('0x4f')](_0x11de0f);}});}else{return _0x200955[_0xa53b('0x41')](_0x11de0f,function(_0x44b4ce){if(_0x5264bf){fs[_0xa53b('0x4f')](_0x11de0f);}});}}})['catch'](function(_0x551757){if(_0x551757[_0xa53b('0x50')]==='SquareRecording\x20not\x20found'){_0x200955[_0xa53b('0x11')](0x194)[_0xa53b('0x21')]('Not\x20found');}else{return handleError(_0x200955,null);}});};exports[_0xa53b('0x51')]=function(_0xcb1aa3,_0x473d11){return db[_0xa53b('0x22')][_0xa53b('0x3e')]({'where':{'id':_0xcb1aa3['params']['id']}})[_0xa53b('0x1c')](function(_0x73113c){if(_['isNil'](_0x73113c)){throw new ReferenceError(_0xa53b('0x52'));}return _0x73113c;})[_0xa53b('0x1c')](function(_0x1c37ec){var _0x4ee876=_0x1c37ec['savePath'];logger[_0xa53b('0x53')](_0xa53b('0x54'),_0x4ee876);if(!_[_0xa53b('0x55')](_0x1c37ec[_0xa53b('0x44')])&&fs[_0xa53b('0x48')](_0x4ee876)){logger[_0xa53b('0x53')](_0xa53b('0x56')+_0x4ee876+'\x22\x20trovato\x20eseguo\x20la\x20cancellazione');fs[_0xa53b('0x57')](_0x4ee876);}_0x4ee876=_0x4ee876+_0xa53b('0x58');if(!_[_0xa53b('0x55')](_0x1c37ec['savePath'])&&fs[_0xa53b('0x48')](_0x4ee876)){logger[_0xa53b('0x53')](_0xa53b('0x56')+_0x4ee876+'\x22\x20trovato\x20eseguo\x20la\x20cancellazione');fs['unlinkSync'](_0x4ee876);}return _0x1c37ec;})[_0xa53b('0x1c')](function(_0x55053b){if(!_0x55053b)throw new InternalError();return _0x55053b[_0xa53b('0x51')]();})['then'](function(){_0x473d11[_0xa53b('0x11')](0xcc)[_0xa53b('0x1d')]();})[_0xa53b('0x3a')](handleError(_0x473d11,null));};