0130b50fbb96a7656983ccb5e698393f6f29eba3
[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 _0x9e60=['existsSync','decryptFile','secrets','recording','Sequelize','ValidationError','SquareRecording\x20not\x20found','filename','extname','unlink','message','Not\x20found','Entity\x20not\x20found','info','isNil','File:\x20\x22','\x22\x20trovato\x20eseguo\x20la\x20cancellazione','.cypher','unlinkSync','html-pdf','rimraf','request-promise','moment','bluebird','mustache','util','sox','to-csv','ejs','lodash','squel','crypto','jsforce','desk.js','querystring','ioredis','../../components/auth/service','../../components/parsers/advancedSearch','../../config/license/hardware','../../config/logger','api','../../config/license/util','../../mysqldb','status','json','offset','limit','set','Content-Range','reject','update','then','destroy','stack','name','send','index','map','SquareRecording','rawAttributes','key','model','query','keys','filters','intersection','fields','attributes','length','hasOwnProperty','nolimit','order','sort','pick','filter','where','merge','type','VIRTUAL','options','count','include','findAll','rows','catch','show','includeAll','find','create','body','params','download','uniqueid','savePath','format','%s.cypher'];(function(_0x246148,_0x1358ee){var _0x453d94=function(_0x59920e){while(--_0x59920e){_0x246148['push'](_0x246148['shift']());}};_0x453d94(++_0x1358ee);}(_0x9e60,0x133));var _0x09e6=function(_0x2881cf,_0x64fe64){_0x2881cf=_0x2881cf-0x0;var _0x1d1066=_0x9e60[_0x2881cf];return _0x1d1066;};'use strict';var pdf=require(_0x09e6('0x0'));var emlformat=require('eml-format');var rimraf=require(_0x09e6('0x1'));var zipdir=require('zip-dir');var jsonpatch=require('fast-json-patch');var rp=require(_0x09e6('0x2'));var moment=require(_0x09e6('0x3'));var BPromise=require(_0x09e6('0x4'));var Mustache=require(_0x09e6('0x5'));var util=require(_0x09e6('0x6'));var path=require('path');var sox=require(_0x09e6('0x7'));var csv=require(_0x09e6('0x8'));var ejs=require(_0x09e6('0x9'));var fs=require('fs');var _=require(_0x09e6('0xa'));var squel=require(_0x09e6('0xb'));var crypto=require(_0x09e6('0xc'));var jsforce=require(_0x09e6('0xd'));var deskjs=require(_0x09e6('0xe'));var toCsv=require(_0x09e6('0x8'));var querystring=require(_0x09e6('0xf'));var Papa=require('papaparse');var Redis=require(_0x09e6('0x10'));var authService=require(_0x09e6('0x11'));var qs=require('../../components/parsers/qs');var as=require(_0x09e6('0x12'));var hardwareService=require(_0x09e6('0x13'));var logger=require(_0x09e6('0x14'))(_0x09e6('0x15'));var utils=require('../../config/utils');var config=require('../../config/environment');var licenseUtil=require(_0x09e6('0x16'));var db=require(_0x09e6('0x17'))['db'];function respondWithStatusCode(_0x508724,_0x4fe590){_0x4fe590=_0x4fe590||0xcc;return function(_0x1ba2f2){if(_0x1ba2f2){return _0x508724['sendStatus'](_0x4fe590);}return _0x508724[_0x09e6('0x18')](_0x4fe590)['end']();};}function respondWithResult(_0x26ea99,_0x5b33e8){_0x5b33e8=_0x5b33e8||0xc8;return function(_0x5646ca){if(_0x5646ca){return _0x26ea99[_0x09e6('0x18')](_0x5b33e8)[_0x09e6('0x19')](_0x5646ca);}};}function respondWithFilteredResult(_0x5dac2f,_0x36143f){return function(_0x218d51){if(_0x218d51){var _0x2e8ac8=_0x218d51['count'],_0x1f8381=_0x36143f[_0x09e6('0x1a')],_0x4e18cd=_0x36143f[_0x09e6('0x1a')]+_0x36143f[_0x09e6('0x1b')],_0x28e87f;if(_0x4e18cd>=_0x2e8ac8){_0x4e18cd=_0x2e8ac8;_0x28e87f=0xc8;}else{_0x28e87f=0xce;}_0x5dac2f[_0x09e6('0x18')](_0x28e87f);return _0x5dac2f[_0x09e6('0x1c')](_0x09e6('0x1d'),_0x1f8381+'-'+_0x4e18cd+'/'+_0x2e8ac8)[_0x09e6('0x19')](_0x218d51);}return null;};}function patchUpdates(_0x138527){return function(_0x4fe3d3){try{jsonpatch['apply'](_0x4fe3d3,_0x138527,!![]);}catch(_0x117681){return BPromise[_0x09e6('0x1e')](_0x117681);}return _0x4fe3d3['save']();};}function saveUpdates(_0x3eef2a,_0x2e80f7){return function(_0x367768){if(_0x367768){return _0x367768[_0x09e6('0x1f')](_0x3eef2a)[_0x09e6('0x20')](function(_0x19db90){return _0x19db90;});}return null;};}function removeEntity(_0x4ebf2a,_0x4823b3){return function(_0x5db63a){if(_0x5db63a){return _0x5db63a[_0x09e6('0x21')]()[_0x09e6('0x20')](function(){_0x4ebf2a[_0x09e6('0x18')](0xcc)['end']();});}};}function handleEntityNotFound(_0x8ceab3,_0x153d64){return function(_0x48a923){if(!_0x48a923){_0x8ceab3['sendStatus'](0x194);}return _0x48a923;};}function handleError(_0x5d123d,_0x477a80){_0x477a80=_0x477a80||0x1f4;return function(_0x5abc85){logger['error'](_0x5abc85[_0x09e6('0x22')]);if(_0x5abc85[_0x09e6('0x23')]){delete _0x5abc85[_0x09e6('0x23')];}_0x5d123d[_0x09e6('0x18')](_0x477a80)[_0x09e6('0x24')](_0x5abc85);};}exports[_0x09e6('0x25')]=function(_0x4d1a12,_0x165239){var _0x25563b={},_0x1e43c6={},_0x2c4a00={'count':0x0,'rows':[]};var _0x219d47=_[_0x09e6('0x26')](db[_0x09e6('0x27')][_0x09e6('0x28')],function(_0x5aff35){return{'name':_0x5aff35['fieldName'],'type':_0x5aff35['type'][_0x09e6('0x29')]};});_0x1e43c6[_0x09e6('0x2a')]=_[_0x09e6('0x26')](_0x219d47,_0x09e6('0x23'));_0x1e43c6[_0x09e6('0x2b')]=_[_0x09e6('0x2c')](_0x4d1a12['query']);_0x1e43c6[_0x09e6('0x2d')]=_[_0x09e6('0x2e')](_0x1e43c6['model'],_0x1e43c6[_0x09e6('0x2b')]);_0x25563b['attributes']=_[_0x09e6('0x2e')](_0x1e43c6['model'],qs[_0x09e6('0x2f')](_0x4d1a12[_0x09e6('0x2b')][_0x09e6('0x2f')]));_0x25563b[_0x09e6('0x30')]=_0x25563b[_0x09e6('0x30')][_0x09e6('0x31')]?_0x25563b[_0x09e6('0x30')]:_0x1e43c6[_0x09e6('0x2a')];if(!_0x4d1a12[_0x09e6('0x2b')][_0x09e6('0x32')](_0x09e6('0x33'))){_0x25563b[_0x09e6('0x1b')]=qs[_0x09e6('0x1b')](_0x4d1a12['query'][_0x09e6('0x1b')]);_0x25563b[_0x09e6('0x1a')]=qs[_0x09e6('0x1a')](_0x4d1a12[_0x09e6('0x2b')]['offset']);}_0x25563b[_0x09e6('0x34')]=qs[_0x09e6('0x35')](_0x4d1a12[_0x09e6('0x2b')][_0x09e6('0x35')]);_0x25563b['where']=qs[_0x09e6('0x2d')](_[_0x09e6('0x36')](_0x4d1a12['query'],_0x1e43c6[_0x09e6('0x2d')]),_0x219d47);if(_0x4d1a12[_0x09e6('0x2b')][_0x09e6('0x37')]){_0x25563b[_0x09e6('0x38')]=_[_0x09e6('0x39')](_0x25563b[_0x09e6('0x38')],{'$or':_[_0x09e6('0x26')](_0x219d47,function(_0x569105){if(_0x569105[_0x09e6('0x3a')]!==_0x09e6('0x3b')){var _0x45544a={};_0x45544a[_0x569105['name']]={'$like':'%'+_0x4d1a12[_0x09e6('0x2b')][_0x09e6('0x37')]+'%'};return _0x45544a;}})});}_0x25563b=_[_0x09e6('0x39')]({},_0x25563b,_0x4d1a12[_0x09e6('0x3c')]);var _0x471420={'where':_0x25563b[_0x09e6('0x38')]};return db[_0x09e6('0x27')][_0x09e6('0x3d')](_0x471420)[_0x09e6('0x20')](function(_0x5c995c){_0x2c4a00[_0x09e6('0x3d')]=_0x5c995c;if(_0x4d1a12['query']['includeAll']){_0x25563b[_0x09e6('0x3e')]=[{'all':!![]}];}return db[_0x09e6('0x27')][_0x09e6('0x3f')](_0x25563b);})[_0x09e6('0x20')](function(_0x2d1d43){_0x2c4a00[_0x09e6('0x40')]=_0x2d1d43;return _0x2c4a00;})['then'](respondWithFilteredResult(_0x165239,_0x25563b))[_0x09e6('0x41')](handleError(_0x165239,null));};exports[_0x09e6('0x42')]=function(_0x5aadaa,_0x2c2761){var _0x196f3e={'raw':!![],'where':{'id':_0x5aadaa['params']['id']}},_0x4ccf24={};_0x4ccf24[_0x09e6('0x2a')]=_[_0x09e6('0x2c')](db[_0x09e6('0x27')][_0x09e6('0x28')]);_0x4ccf24[_0x09e6('0x2b')]=_[_0x09e6('0x2c')](_0x5aadaa['query']);_0x4ccf24['filters']=_[_0x09e6('0x2e')](_0x4ccf24[_0x09e6('0x2a')],_0x4ccf24['query']);_0x196f3e[_0x09e6('0x30')]=_[_0x09e6('0x2e')](_0x4ccf24['model'],qs[_0x09e6('0x2f')](_0x5aadaa[_0x09e6('0x2b')][_0x09e6('0x2f')]));_0x196f3e[_0x09e6('0x30')]=_0x196f3e[_0x09e6('0x30')]['length']?_0x196f3e[_0x09e6('0x30')]:_0x4ccf24['model'];if(_0x5aadaa[_0x09e6('0x2b')][_0x09e6('0x43')]){_0x196f3e['include']=[{'all':!![]}];}_0x196f3e=_[_0x09e6('0x39')]({},_0x196f3e,_0x5aadaa['options']);return db[_0x09e6('0x27')][_0x09e6('0x44')](_0x196f3e)[_0x09e6('0x20')](handleEntityNotFound(_0x2c2761,null))[_0x09e6('0x20')](respondWithResult(_0x2c2761,null))[_0x09e6('0x41')](handleError(_0x2c2761,null));};exports[_0x09e6('0x45')]=function(_0x62e8ac,_0x21f648){return db[_0x09e6('0x27')]['create'](_0x62e8ac['body'],{})[_0x09e6('0x20')](respondWithResult(_0x21f648,0xc9))[_0x09e6('0x41')](handleError(_0x21f648,null));};exports['update']=function(_0x50e53d,_0x383245){if(_0x50e53d['body']['id']){delete _0x50e53d[_0x09e6('0x46')]['id'];}return db[_0x09e6('0x27')][_0x09e6('0x44')]({'where':{'id':_0x50e53d[_0x09e6('0x47')]['id']}})[_0x09e6('0x20')](handleEntityNotFound(_0x383245,null))[_0x09e6('0x20')](saveUpdates(_0x50e53d['body'],null))['then'](respondWithResult(_0x383245,null))['catch'](handleError(_0x383245,null));};exports[_0x09e6('0x48')]=function(_0x2eb7ea,_0x48b756,_0xe26393){var _0x1dfa67=require('../../components/encryptor');var _0xab9294=![];var _0x35062b={};if(_0x2eb7ea['query']['type']&&_0x2eb7ea['query'][_0x09e6('0x3a')]===_0x09e6('0x49')){_0x35062b[_0x09e6('0x49')]=_0x2eb7ea[_0x09e6('0x47')]['id'];}else{_0x35062b['id']=_0x2eb7ea['params']['id'];}return db['SquareRecording']['find']({'where':_0x35062b,'attributes':['id','savePath','filename'],'raw':!![]})['then'](handleEntityNotFound(_0x48b756,null))[_0x09e6('0x20')](function(_0x5f07dc){if(_0x5f07dc){var _0xa74028=_0x5f07dc[_0x09e6('0x4a')];var _0x2dcf14=util[_0x09e6('0x4b')](_0x09e6('0x4c'),_0xa74028);if(fs[_0x09e6('0x4d')](_0x2dcf14)){_0xab9294=!![];return _0x1dfa67[_0x09e6('0x4e')](_0x2dcf14,_0xa74028,config[_0x09e6('0x4f')][_0x09e6('0x50')])[_0x09e6('0x20')](function(){return _0x5f07dc;});}return _0x5f07dc;}})['then'](function(_0x4f89a7){if(_0x4f89a7){var _0x1b8666=_0x4f89a7[_0x09e6('0x4a')];if(!fs[_0x09e6('0x4d')](_0x1b8666)){throw new db[(_0x09e6('0x51'))][(_0x09e6('0x52'))](_0x09e6('0x53'));}if(_0x4f89a7[_0x09e6('0x54')]){return _0x48b756['download'](_0x1b8666,_0x4f89a7[_0x09e6('0x54')]+path[_0x09e6('0x55')](_0x1b8666),function(){if(_0xab9294){fs['unlink'](_0x1b8666);}});}else{return _0x48b756[_0x09e6('0x48')](_0x1b8666,function(_0x23395b){if(_0xab9294){fs[_0x09e6('0x56')](_0x1b8666);}});}}})[_0x09e6('0x41')](function(_0x4a5e4a){if(_0x4a5e4a[_0x09e6('0x57')]==='SquareRecording\x20not\x20found'){_0x48b756[_0x09e6('0x18')](0x194)[_0x09e6('0x24')](_0x09e6('0x58'));}else{return handleError(_0x48b756,null);}});};exports['destroy']=function(_0x339c75,_0x148b3c){return db[_0x09e6('0x27')][_0x09e6('0x44')]({'where':{'id':_0x339c75[_0x09e6('0x47')]['id']}})[_0x09e6('0x20')](function(_0x5af286){if(!_0x5af286)throw new ReferenceError(_0x09e6('0x59'));return _0x5af286;})[_0x09e6('0x20')](function(_0x851290){var _0x327634=_0x851290[_0x09e6('0x4a')];logger[_0x09e6('0x5a')]('cancellazione\x20fisica\x20documento\x20%s',_0x327634);if(!_[_0x09e6('0x5b')](_0x851290[_0x09e6('0x4a')])&&fs[_0x09e6('0x4d')](_0x327634)){logger['info'](_0x09e6('0x5c')+_0x327634+_0x09e6('0x5d'));fs['unlinkSync'](_0x327634);}_0x327634=_0x327634+_0x09e6('0x5e');if(!_['isNil'](_0x851290[_0x09e6('0x4a')])&&fs[_0x09e6('0x4d')](_0x327634)){logger[_0x09e6('0x5a')](_0x09e6('0x5c')+_0x327634+_0x09e6('0x5d'));fs[_0x09e6('0x5f')](_0x327634);}return _0x851290;})['then'](function(_0xa5280c){if(!_0xa5280c)throw new InternalError();return _0xa5280c[_0x09e6('0x21')]();})[_0x09e6('0x20')](function(){_0x148b3c['status'](0xcc)['end']();})[_0x09e6('0x41')](handleError(_0x148b3c,null));};