Built motion from commit efa66e19.|2.6.22
[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 _0x8032=['fieldName','type','model','query','keys','filters','attributes','fields','hasOwnProperty','nolimit','order','sort','where','pick','filter','merge','map','options','findAll','catch','show','params','intersection','length','includeAll','create','body','find','download','../../components/encryptor','uniqueid','filename','savePath','format','%s.cypher','decryptFile','recording','existsSync','Sequelize','ValidationError','SquareRecording\x20not\x20found','extname','unlink','message','Not\x20found','destroy','isNil','Entity\x20not\x20found','info','cancellazione\x20fisica\x20documento\x20%s','File:\x20\x22','\x22\x20trovato\x20eseguo\x20la\x20cancellazione','unlinkSync','.cypher','eml-format','rimraf','zip-dir','moment','bluebird','mustache','sox','to-csv','ejs','fs-extra','lodash','crypto','jsforce','querystring','papaparse','ioredis','../../components/parsers/qs','../../config/license/hardware','../../config/logger','../../config/utils','../../config/environment','../../config/license/util','../../mysqldb','sendStatus','status','end','offset','limit','undefined','count','set','Content-Range','json','reject','save','update','then','error','stack','name','index','SquareRecording','rawAttributes'];(function(_0x32454c,_0x411ba7){var _0xcc4c08=function(_0xefef7d){while(--_0xefef7d){_0x32454c['push'](_0x32454c['shift']());}};_0xcc4c08(++_0x411ba7);}(_0x8032,0x97));var _0x2803=function(_0x54d9fd,_0x3d2f76){_0x54d9fd=_0x54d9fd-0x0;var _0x5370e1=_0x8032[_0x54d9fd];return _0x5370e1;};'use strict';var emlformat=require(_0x2803('0x0'));var rimraf=require(_0x2803('0x1'));var zipdir=require(_0x2803('0x2'));var jsonpatch=require('fast-json-patch');var rp=require('request-promise');var moment=require(_0x2803('0x3'));var BPromise=require(_0x2803('0x4'));var Mustache=require(_0x2803('0x5'));var util=require('util');var path=require('path');var sox=require(_0x2803('0x6'));var csv=require(_0x2803('0x7'));var ejs=require(_0x2803('0x8'));var fs=require('fs');var fs_extra=require(_0x2803('0x9'));var _=require(_0x2803('0xa'));var squel=require('squel');var crypto=require(_0x2803('0xb'));var jsforce=require(_0x2803('0xc'));var deskjs=require('desk.js');var toCsv=require(_0x2803('0x7'));var querystring=require(_0x2803('0xd'));var Papa=require(_0x2803('0xe'));var Redis=require(_0x2803('0xf'));var authService=require('../../components/auth/service');var qs=require(_0x2803('0x10'));var as=require('../../components/parsers/advancedSearch');var hardwareService=require(_0x2803('0x11'));var logger=require(_0x2803('0x12'))('api');var utils=require(_0x2803('0x13'));var config=require(_0x2803('0x14'));var licenseUtil=require(_0x2803('0x15'));var db=require(_0x2803('0x16'))['db'];function respondWithStatusCode(_0x4f6dc3,_0x47a532){_0x47a532=_0x47a532||0xcc;return function(_0x2cc502){if(_0x2cc502){return _0x4f6dc3[_0x2803('0x17')](_0x47a532);}return _0x4f6dc3[_0x2803('0x18')](_0x47a532)[_0x2803('0x19')]();};}function respondWithResult(_0x154caa,_0x2e7300){_0x2e7300=_0x2e7300||0xc8;return function(_0x2dd8e7){if(_0x2dd8e7){return _0x154caa[_0x2803('0x18')](_0x2e7300)['json'](_0x2dd8e7);}};}function respondWithFilteredResult(_0x251625,_0x23b23c){return function(_0x26dd2a){if(_0x26dd2a){var _0x4df3a0=typeof _0x23b23c[_0x2803('0x1a')]==='undefined'&&typeof _0x23b23c[_0x2803('0x1b')]===_0x2803('0x1c');var _0x87c3ff=_0x26dd2a[_0x2803('0x1d')];var _0x4ecce1=_0x4df3a0?0x0:_0x23b23c['offset'];var _0xb787f7=_0x4df3a0?_0x26dd2a[_0x2803('0x1d')]:_0x23b23c[_0x2803('0x1a')]+_0x23b23c[_0x2803('0x1b')];var _0x4a0aa5;if(_0xb787f7>=_0x87c3ff){_0xb787f7=_0x87c3ff;_0x4a0aa5=0xc8;}else{_0x4a0aa5=0xce;}_0x251625[_0x2803('0x18')](_0x4a0aa5);return _0x251625[_0x2803('0x1e')](_0x2803('0x1f'),_0x4ecce1+'-'+_0xb787f7+'/'+_0x87c3ff)[_0x2803('0x20')](_0x26dd2a);}return null;};}function patchUpdates(_0x560ea4){return function(_0xe60331){try{jsonpatch['apply'](_0xe60331,_0x560ea4,!![]);}catch(_0x224b04){return BPromise[_0x2803('0x21')](_0x224b04);}return _0xe60331[_0x2803('0x22')]();};}function saveUpdates(_0x32b48e,_0x3a23f4){return function(_0x40b742){if(_0x40b742){return _0x40b742[_0x2803('0x23')](_0x32b48e)[_0x2803('0x24')](function(_0x37399a){return _0x37399a;});}return null;};}function removeEntity(_0x2e5acf,_0x3f730b){return function(_0x5b4631){if(_0x5b4631){return _0x5b4631['destroy']()[_0x2803('0x24')](function(){_0x2e5acf[_0x2803('0x18')](0xcc)['end']();});}};}function handleEntityNotFound(_0x3451e1,_0x5306ec){return function(_0xc8b790){if(!_0xc8b790){_0x3451e1[_0x2803('0x17')](0x194);}return _0xc8b790;};}function handleError(_0x4f7198,_0x3fb5f3){_0x3fb5f3=_0x3fb5f3||0x1f4;return function(_0xacfe6e){logger[_0x2803('0x25')](_0xacfe6e[_0x2803('0x26')]);if(_0xacfe6e['name']){delete _0xacfe6e[_0x2803('0x27')];}_0x4f7198[_0x2803('0x18')](_0x3fb5f3)['send'](_0xacfe6e);};}exports[_0x2803('0x28')]=function(_0x4e0fbb,_0x34afc5){var _0x20cb91={},_0x1285e4={},_0x75b53a={'count':0x0,'rows':[]};var _0xafab8c=_['map'](db[_0x2803('0x29')][_0x2803('0x2a')],function(_0x4eb936){return{'name':_0x4eb936[_0x2803('0x2b')],'type':_0x4eb936[_0x2803('0x2c')]['key']};});_0x1285e4[_0x2803('0x2d')]=_['map'](_0xafab8c,'name');_0x1285e4[_0x2803('0x2e')]=_[_0x2803('0x2f')](_0x4e0fbb[_0x2803('0x2e')]);_0x1285e4[_0x2803('0x30')]=_['intersection'](_0x1285e4[_0x2803('0x2d')],_0x1285e4[_0x2803('0x2e')]);_0x20cb91[_0x2803('0x31')]=_['intersection'](_0x1285e4[_0x2803('0x2d')],qs[_0x2803('0x32')](_0x4e0fbb['query'][_0x2803('0x32')]));_0x20cb91[_0x2803('0x31')]=_0x20cb91['attributes']['length']?_0x20cb91[_0x2803('0x31')]:_0x1285e4[_0x2803('0x2d')];if(!_0x4e0fbb[_0x2803('0x2e')][_0x2803('0x33')](_0x2803('0x34'))){_0x20cb91[_0x2803('0x1b')]=qs['limit'](_0x4e0fbb[_0x2803('0x2e')][_0x2803('0x1b')]);_0x20cb91[_0x2803('0x1a')]=qs[_0x2803('0x1a')](_0x4e0fbb[_0x2803('0x2e')][_0x2803('0x1a')]);}_0x20cb91[_0x2803('0x35')]=qs[_0x2803('0x36')](_0x4e0fbb[_0x2803('0x2e')][_0x2803('0x36')]);_0x20cb91[_0x2803('0x37')]=qs[_0x2803('0x30')](_[_0x2803('0x38')](_0x4e0fbb['query'],_0x1285e4[_0x2803('0x30')]),_0xafab8c);if(_0x4e0fbb[_0x2803('0x2e')][_0x2803('0x39')]){_0x20cb91['where']=_[_0x2803('0x3a')](_0x20cb91['where'],{'$or':_[_0x2803('0x3b')](_0xafab8c,function(_0x351485){if(_0x351485[_0x2803('0x2c')]!=='VIRTUAL'){var _0x3640ba={};_0x3640ba[_0x351485[_0x2803('0x27')]]={'$like':'%'+_0x4e0fbb[_0x2803('0x2e')]['filter']+'%'};return _0x3640ba;}})});}_0x20cb91=_[_0x2803('0x3a')]({},_0x20cb91,_0x4e0fbb[_0x2803('0x3c')]);var _0x4d8083={'where':_0x20cb91['where']};return db[_0x2803('0x29')][_0x2803('0x1d')](_0x4d8083)[_0x2803('0x24')](function(_0x49eba4){_0x75b53a['count']=_0x49eba4;if(_0x4e0fbb[_0x2803('0x2e')]['includeAll']){_0x20cb91['include']=[{'all':!![]}];}return db[_0x2803('0x29')][_0x2803('0x3d')](_0x20cb91);})['then'](function(_0x50db83){_0x75b53a['rows']=_0x50db83;return _0x75b53a;})[_0x2803('0x24')](respondWithFilteredResult(_0x34afc5,_0x20cb91))[_0x2803('0x3e')](handleError(_0x34afc5,null));};exports[_0x2803('0x3f')]=function(_0x538bfd,_0x540334){var _0x3291d5={'raw':!![],'where':{'id':_0x538bfd[_0x2803('0x40')]['id']}},_0x38e979={};_0x38e979[_0x2803('0x2d')]=_[_0x2803('0x2f')](db[_0x2803('0x29')][_0x2803('0x2a')]);_0x38e979[_0x2803('0x2e')]=_[_0x2803('0x2f')](_0x538bfd[_0x2803('0x2e')]);_0x38e979[_0x2803('0x30')]=_[_0x2803('0x41')](_0x38e979[_0x2803('0x2d')],_0x38e979[_0x2803('0x2e')]);_0x3291d5['attributes']=_['intersection'](_0x38e979[_0x2803('0x2d')],qs['fields'](_0x538bfd[_0x2803('0x2e')][_0x2803('0x32')]));_0x3291d5[_0x2803('0x31')]=_0x3291d5[_0x2803('0x31')][_0x2803('0x42')]?_0x3291d5['attributes']:_0x38e979[_0x2803('0x2d')];if(_0x538bfd[_0x2803('0x2e')][_0x2803('0x43')]){_0x3291d5['include']=[{'all':!![]}];}_0x3291d5=_['merge']({},_0x3291d5,_0x538bfd[_0x2803('0x3c')]);return db[_0x2803('0x29')]['find'](_0x3291d5)['then'](handleEntityNotFound(_0x540334,null))[_0x2803('0x24')](respondWithResult(_0x540334,null))[_0x2803('0x3e')](handleError(_0x540334,null));};exports[_0x2803('0x44')]=function(_0x415f17,_0x13ebb5){return db['SquareRecording'][_0x2803('0x44')](_0x415f17[_0x2803('0x45')],{})[_0x2803('0x24')](respondWithResult(_0x13ebb5,0xc9))[_0x2803('0x3e')](handleError(_0x13ebb5,null));};exports[_0x2803('0x23')]=function(_0x2d4786,_0x32b268){if(_0x2d4786[_0x2803('0x45')]['id']){delete _0x2d4786['body']['id'];}return db['SquareRecording'][_0x2803('0x46')]({'where':{'id':_0x2d4786[_0x2803('0x40')]['id']}})['then'](handleEntityNotFound(_0x32b268,null))[_0x2803('0x24')](saveUpdates(_0x2d4786['body'],null))[_0x2803('0x24')](respondWithResult(_0x32b268,null))[_0x2803('0x3e')](handleError(_0x32b268,null));};exports[_0x2803('0x47')]=function(_0x1d3a2f,_0x28873c,_0x339be6){var _0x315337=require(_0x2803('0x48'));var _0x432e3d=![];var _0x3ba83e={};if(_0x1d3a2f['query'][_0x2803('0x2c')]&&_0x1d3a2f[_0x2803('0x2e')][_0x2803('0x2c')]===_0x2803('0x49')){_0x3ba83e[_0x2803('0x49')]=_0x1d3a2f['params']['id'];}else{_0x3ba83e['id']=_0x1d3a2f[_0x2803('0x40')]['id'];}return db[_0x2803('0x29')][_0x2803('0x46')]({'where':_0x3ba83e,'attributes':['id','savePath',_0x2803('0x4a')],'raw':!![]})[_0x2803('0x24')](handleEntityNotFound(_0x28873c,null))[_0x2803('0x24')](function(_0xa0fc31){if(_0xa0fc31){var _0x2da621=_0xa0fc31[_0x2803('0x4b')];var _0x14d54e=util[_0x2803('0x4c')](_0x2803('0x4d'),_0x2da621);if(fs['existsSync'](_0x14d54e)){_0x432e3d=!![];return _0x315337[_0x2803('0x4e')](_0x14d54e,_0x2da621,config['secrets'][_0x2803('0x4f')])[_0x2803('0x24')](function(){return _0xa0fc31;});}return _0xa0fc31;}})['then'](function(_0x5e20d0){if(_0x5e20d0){var _0x18f8f4=_0x5e20d0[_0x2803('0x4b')];if(!fs[_0x2803('0x50')](_0x18f8f4)){throw new db[(_0x2803('0x51'))][(_0x2803('0x52'))](_0x2803('0x53'));}if(_0x5e20d0[_0x2803('0x4a')]){return _0x28873c[_0x2803('0x47')](_0x18f8f4,_0x5e20d0['filename']+path[_0x2803('0x54')](_0x18f8f4),function(){if(_0x432e3d){fs['unlink'](_0x18f8f4);}});}else{return _0x28873c[_0x2803('0x47')](_0x18f8f4,function(_0x14cc62){if(_0x432e3d){fs[_0x2803('0x55')](_0x18f8f4);}});}}})[_0x2803('0x3e')](function(_0xa4b257){if(_0xa4b257[_0x2803('0x56')]===_0x2803('0x53')){_0x28873c[_0x2803('0x18')](0x194)['send'](_0x2803('0x57'));}else{return handleError(_0x28873c,null);}});};exports[_0x2803('0x58')]=function(_0x44f15b,_0x4badd5){return db[_0x2803('0x29')][_0x2803('0x46')]({'where':{'id':_0x44f15b[_0x2803('0x40')]['id']}})['then'](function(_0x2e4fac){if(_[_0x2803('0x59')](_0x2e4fac)){throw new ReferenceError(_0x2803('0x5a'));}return _0x2e4fac;})[_0x2803('0x24')](function(_0x1857cf){var _0x1e1545=_0x1857cf['savePath'];logger[_0x2803('0x5b')](_0x2803('0x5c'),_0x1e1545);if(!_['isNil'](_0x1857cf[_0x2803('0x4b')])&&fs['existsSync'](_0x1e1545)){logger[_0x2803('0x5b')](_0x2803('0x5d')+_0x1e1545+_0x2803('0x5e'));fs[_0x2803('0x5f')](_0x1e1545);}_0x1e1545=_0x1e1545+_0x2803('0x60');if(!_[_0x2803('0x59')](_0x1857cf[_0x2803('0x4b')])&&fs['existsSync'](_0x1e1545)){logger['info'](_0x2803('0x5d')+_0x1e1545+_0x2803('0x5e'));fs['unlinkSync'](_0x1e1545);}return _0x1857cf;})['then'](function(_0x122e25){if(!_0x122e25)throw new InternalError();return _0x122e25['destroy']();})['then'](function(){_0x4badd5[_0x2803('0x18')](0xcc)[_0x2803('0x19')]();})[_0x2803('0x3e')](handleError(_0x4badd5,null));};