12664ebf3a41e57bf7c1637fdb745864b06a732b
[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 _0xa06c=['SquareRecording\x20not\x20found','extname','unlink','message','send','Not\x20found','destroy','Entity\x20not\x20found','info','cancellazione\x20fisica\x20documento\x20%s','File:\x20\x22','unlinkSync','.cypher','isNil','eml-format','rimraf','zip-dir','fast-json-patch','request-promise','moment','mustache','path','sox','to-csv','ejs','squel','jsforce','querystring','papaparse','../../components/auth/service','../../config/logger','../../config/utils','../../config/license/util','../../mysqldb','sendStatus','end','status','json','count','limit','set','reject','save','update','then','error','name','index','map','SquareRecording','rawAttributes','fieldName','type','key','model','query','filters','attributes','fields','offset','order','sort','where','pick','merge','VIRTUAL','filter','options','includeAll','include','findAll','rows','catch','show','params','keys','intersection','length','find','create','body','download','../../components/encryptor','uniqueid','savePath','filename','format','%s.cypher','existsSync','decryptFile','secrets','recording','ValidationError'];(function(_0x1c2221,_0x3b4237){var _0xd0ee8d=function(_0x39d171){while(--_0x39d171){_0x1c2221['push'](_0x1c2221['shift']());}};_0xd0ee8d(++_0x3b4237);}(_0xa06c,0x125));var _0xca06=function(_0xab8596,_0x1d3ba1){_0xab8596=_0xab8596-0x0;var _0x19af88=_0xa06c[_0xab8596];return _0x19af88;};'use strict';var pdf=require('html-pdf');var emlformat=require(_0xca06('0x0'));var rimraf=require(_0xca06('0x1'));var zipdir=require(_0xca06('0x2'));var jsonpatch=require(_0xca06('0x3'));var rp=require(_0xca06('0x4'));var moment=require(_0xca06('0x5'));var BPromise=require('bluebird');var Mustache=require(_0xca06('0x6'));var util=require('util');var path=require(_0xca06('0x7'));var sox=require(_0xca06('0x8'));var csv=require(_0xca06('0x9'));var ejs=require(_0xca06('0xa'));var fs=require('fs');var _=require('lodash');var squel=require(_0xca06('0xb'));var crypto=require('crypto');var jsforce=require(_0xca06('0xc'));var deskjs=require('desk.js');var toCsv=require(_0xca06('0x9'));var querystring=require(_0xca06('0xd'));var Papa=require(_0xca06('0xe'));var Redis=require('ioredis');var authService=require(_0xca06('0xf'));var qs=require('../../components/parsers/qs');var as=require('../../components/parsers/advancedSearch');var hardwareService=require('../../config/license/hardware');var logger=require(_0xca06('0x10'))('api');var utils=require(_0xca06('0x11'));var config=require('../../config/environment');var licenseUtil=require(_0xca06('0x12'));var db=require(_0xca06('0x13'))['db'];function respondWithStatusCode(_0x3516a4,_0x293b13){_0x293b13=_0x293b13||0xcc;return function(_0x3a7618){if(_0x3a7618){return _0x3516a4[_0xca06('0x14')](_0x293b13);}return _0x3516a4['status'](_0x293b13)[_0xca06('0x15')]();};}function respondWithResult(_0xd6a08d,_0x14fb61){_0x14fb61=_0x14fb61||0xc8;return function(_0x19142f){if(_0x19142f){return _0xd6a08d[_0xca06('0x16')](_0x14fb61)[_0xca06('0x17')](_0x19142f);}};}function respondWithFilteredResult(_0x3c26f3,_0x3af934){return function(_0x408fb7){if(_0x408fb7){var _0x471243=_0x408fb7[_0xca06('0x18')],_0x4f6f2f=_0x3af934['offset'],_0x1af4ec=_0x3af934['offset']+_0x3af934[_0xca06('0x19')],_0x278f75;if(_0x1af4ec>=_0x471243){_0x1af4ec=_0x471243;_0x278f75=0xc8;}else{_0x278f75=0xce;}_0x3c26f3[_0xca06('0x16')](_0x278f75);return _0x3c26f3[_0xca06('0x1a')]('Content-Range',_0x4f6f2f+'-'+_0x1af4ec+'/'+_0x471243)[_0xca06('0x17')](_0x408fb7);}return null;};}function patchUpdates(_0x327d6e){return function(_0x5726e0){try{jsonpatch['apply'](_0x5726e0,_0x327d6e,!![]);}catch(_0x2cc3ad){return BPromise[_0xca06('0x1b')](_0x2cc3ad);}return _0x5726e0[_0xca06('0x1c')]();};}function saveUpdates(_0x1a8fe,_0x53e7b8){return function(_0xd2ffa0){if(_0xd2ffa0){return _0xd2ffa0[_0xca06('0x1d')](_0x1a8fe)[_0xca06('0x1e')](function(_0x3fa92f){return _0x3fa92f;});}return null;};}function removeEntity(_0x2f3e11,_0x250c10){return function(_0x15a8a3){if(_0x15a8a3){return _0x15a8a3['destroy']()[_0xca06('0x1e')](function(){_0x2f3e11[_0xca06('0x16')](0xcc)['end']();});}};}function handleEntityNotFound(_0x1a2657,_0x54e603){return function(_0x3a14f5){if(!_0x3a14f5){_0x1a2657['sendStatus'](0x194);}return _0x3a14f5;};}function handleError(_0x24ee72,_0x2bf66b){_0x2bf66b=_0x2bf66b||0x1f4;return function(_0x4ebd0f){logger[_0xca06('0x1f')](_0x4ebd0f['stack']);if(_0x4ebd0f[_0xca06('0x20')]){delete _0x4ebd0f[_0xca06('0x20')];}_0x24ee72[_0xca06('0x16')](_0x2bf66b)['send'](_0x4ebd0f);};}exports[_0xca06('0x21')]=function(_0x1f6d54,_0x3619b9){var _0x241906={},_0x38e65c={},_0xd1f4e4={'count':0x0,'rows':[]};var _0x4d2358=_[_0xca06('0x22')](db[_0xca06('0x23')][_0xca06('0x24')],function(_0x4d0cac){return{'name':_0x4d0cac[_0xca06('0x25')],'type':_0x4d0cac[_0xca06('0x26')][_0xca06('0x27')]};});_0x38e65c[_0xca06('0x28')]=_[_0xca06('0x22')](_0x4d2358,_0xca06('0x20'));_0x38e65c[_0xca06('0x29')]=_['keys'](_0x1f6d54[_0xca06('0x29')]);_0x38e65c[_0xca06('0x2a')]=_['intersection'](_0x38e65c[_0xca06('0x28')],_0x38e65c[_0xca06('0x29')]);_0x241906[_0xca06('0x2b')]=_['intersection'](_0x38e65c['model'],qs[_0xca06('0x2c')](_0x1f6d54[_0xca06('0x29')]['fields']));_0x241906[_0xca06('0x2b')]=_0x241906[_0xca06('0x2b')]['length']?_0x241906['attributes']:_0x38e65c[_0xca06('0x28')];if(!_0x1f6d54['query']['hasOwnProperty']('nolimit')){_0x241906[_0xca06('0x19')]=qs[_0xca06('0x19')](_0x1f6d54['query']['limit']);_0x241906['offset']=qs[_0xca06('0x2d')](_0x1f6d54['query']['offset']);}_0x241906[_0xca06('0x2e')]=qs['sort'](_0x1f6d54[_0xca06('0x29')][_0xca06('0x2f')]);_0x241906[_0xca06('0x30')]=qs[_0xca06('0x2a')](_[_0xca06('0x31')](_0x1f6d54[_0xca06('0x29')],_0x38e65c[_0xca06('0x2a')]),_0x4d2358);if(_0x1f6d54[_0xca06('0x29')]['filter']){_0x241906[_0xca06('0x30')]=_[_0xca06('0x32')](_0x241906[_0xca06('0x30')],{'$or':_['map'](_0x4d2358,function(_0x1172f2){if(_0x1172f2[_0xca06('0x26')]!==_0xca06('0x33')){var _0x3d2dce={};_0x3d2dce[_0x1172f2[_0xca06('0x20')]]={'$like':'%'+_0x1f6d54[_0xca06('0x29')][_0xca06('0x34')]+'%'};return _0x3d2dce;}})});}_0x241906=_[_0xca06('0x32')]({},_0x241906,_0x1f6d54[_0xca06('0x35')]);var _0x42f5a5={'where':_0x241906[_0xca06('0x30')]};return db['SquareRecording'][_0xca06('0x18')](_0x42f5a5)[_0xca06('0x1e')](function(_0x3ecd2f){_0xd1f4e4[_0xca06('0x18')]=_0x3ecd2f;if(_0x1f6d54['query'][_0xca06('0x36')]){_0x241906[_0xca06('0x37')]=[{'all':!![]}];}return db[_0xca06('0x23')][_0xca06('0x38')](_0x241906);})[_0xca06('0x1e')](function(_0x5a93e6){_0xd1f4e4[_0xca06('0x39')]=_0x5a93e6;return _0xd1f4e4;})[_0xca06('0x1e')](respondWithFilteredResult(_0x3619b9,_0x241906))[_0xca06('0x3a')](handleError(_0x3619b9,null));};exports[_0xca06('0x3b')]=function(_0x4f514f,_0x1b66b3){var _0x502b60={'raw':!![],'where':{'id':_0x4f514f[_0xca06('0x3c')]['id']}},_0x10cd1c={};_0x10cd1c[_0xca06('0x28')]=_[_0xca06('0x3d')](db[_0xca06('0x23')]['rawAttributes']);_0x10cd1c[_0xca06('0x29')]=_[_0xca06('0x3d')](_0x4f514f[_0xca06('0x29')]);_0x10cd1c['filters']=_['intersection'](_0x10cd1c['model'],_0x10cd1c[_0xca06('0x29')]);_0x502b60['attributes']=_[_0xca06('0x3e')](_0x10cd1c[_0xca06('0x28')],qs[_0xca06('0x2c')](_0x4f514f[_0xca06('0x29')][_0xca06('0x2c')]));_0x502b60[_0xca06('0x2b')]=_0x502b60['attributes'][_0xca06('0x3f')]?_0x502b60['attributes']:_0x10cd1c[_0xca06('0x28')];if(_0x4f514f[_0xca06('0x29')][_0xca06('0x36')]){_0x502b60[_0xca06('0x37')]=[{'all':!![]}];}_0x502b60=_[_0xca06('0x32')]({},_0x502b60,_0x4f514f[_0xca06('0x35')]);return db[_0xca06('0x23')][_0xca06('0x40')](_0x502b60)[_0xca06('0x1e')](handleEntityNotFound(_0x1b66b3,null))[_0xca06('0x1e')](respondWithResult(_0x1b66b3,null))[_0xca06('0x3a')](handleError(_0x1b66b3,null));};exports[_0xca06('0x41')]=function(_0x1877e3,_0x333e31){return db[_0xca06('0x23')][_0xca06('0x41')](_0x1877e3[_0xca06('0x42')],{})[_0xca06('0x1e')](respondWithResult(_0x333e31,0xc9))['catch'](handleError(_0x333e31,null));};exports[_0xca06('0x1d')]=function(_0x3ba880,_0x595480){if(_0x3ba880['body']['id']){delete _0x3ba880['body']['id'];}return db['SquareRecording']['find']({'where':{'id':_0x3ba880[_0xca06('0x3c')]['id']}})[_0xca06('0x1e')](handleEntityNotFound(_0x595480,null))['then'](saveUpdates(_0x3ba880[_0xca06('0x42')],null))[_0xca06('0x1e')](respondWithResult(_0x595480,null))[_0xca06('0x3a')](handleError(_0x595480,null));};exports[_0xca06('0x43')]=function(_0x5db1b5,_0x2f2eae,_0x39fe5e){var _0x31fb68=require(_0xca06('0x44'));var _0x3e7ff3=![];var _0x1bbb0d={};if(_0x5db1b5[_0xca06('0x29')][_0xca06('0x26')]&&_0x5db1b5[_0xca06('0x29')][_0xca06('0x26')]==='uniqueid'){_0x1bbb0d[_0xca06('0x45')]=_0x5db1b5[_0xca06('0x3c')]['id'];}else{_0x1bbb0d['id']=_0x5db1b5['params']['id'];}return db[_0xca06('0x23')]['find']({'where':_0x1bbb0d,'attributes':['id',_0xca06('0x46'),_0xca06('0x47')],'raw':!![]})[_0xca06('0x1e')](handleEntityNotFound(_0x2f2eae,null))[_0xca06('0x1e')](function(_0x3e885d){if(_0x3e885d){var _0x556ffd=_0x3e885d[_0xca06('0x46')];var _0x19bbb2=util[_0xca06('0x48')](_0xca06('0x49'),_0x556ffd);if(fs[_0xca06('0x4a')](_0x19bbb2)){_0x3e7ff3=!![];return _0x31fb68[_0xca06('0x4b')](_0x19bbb2,_0x556ffd,config[_0xca06('0x4c')][_0xca06('0x4d')])[_0xca06('0x1e')](function(){return _0x3e885d;});}return _0x3e885d;}})[_0xca06('0x1e')](function(_0x46955c){if(_0x46955c){var _0x21c62e=_0x46955c[_0xca06('0x46')];if(!fs[_0xca06('0x4a')](_0x21c62e)){throw new db['Sequelize'][(_0xca06('0x4e'))](_0xca06('0x4f'));}if(_0x46955c['filename']){return _0x2f2eae['download'](_0x21c62e,_0x46955c[_0xca06('0x47')]+path[_0xca06('0x50')](_0x21c62e),function(){if(_0x3e7ff3){fs[_0xca06('0x51')](_0x21c62e);}});}else{return _0x2f2eae[_0xca06('0x43')](_0x21c62e,function(_0x1eb017){if(_0x3e7ff3){fs['unlink'](_0x21c62e);}});}}})[_0xca06('0x3a')](function(_0x161450){if(_0x161450[_0xca06('0x52')]==='SquareRecording\x20not\x20found'){_0x2f2eae[_0xca06('0x16')](0x194)[_0xca06('0x53')](_0xca06('0x54'));}else{return handleError(_0x2f2eae,null);}});};exports[_0xca06('0x55')]=function(_0x2b3635,_0x5517b1){return db[_0xca06('0x23')][_0xca06('0x40')]({'where':{'id':_0x2b3635['params']['id']}})[_0xca06('0x1e')](function(_0x5d052c){if(!_0x5d052c)throw new ReferenceError(_0xca06('0x56'));return _0x5d052c;})['then'](function(_0x462c34){var _0xafa737=_0x462c34[_0xca06('0x46')];logger[_0xca06('0x57')](_0xca06('0x58'),_0xafa737);if(!_['isNil'](_0x462c34[_0xca06('0x46')])&&fs[_0xca06('0x4a')](_0xafa737)){logger[_0xca06('0x57')](_0xca06('0x59')+_0xafa737+'\x22\x20trovato\x20eseguo\x20la\x20cancellazione');fs[_0xca06('0x5a')](_0xafa737);}_0xafa737=_0xafa737+_0xca06('0x5b');if(!_[_0xca06('0x5c')](_0x462c34[_0xca06('0x46')])&&fs[_0xca06('0x4a')](_0xafa737)){logger['info'](_0xca06('0x59')+_0xafa737+'\x22\x20trovato\x20eseguo\x20la\x20cancellazione');fs[_0xca06('0x5a')](_0xafa737);}return _0x462c34;})[_0xca06('0x1e')](function(_0x1c3dac){if(!_0x1c3dac)throw new InternalError();return _0x1c3dac['destroy']();})['then'](function(){_0x5517b1[_0xca06('0x16')](0xcc)['end']();})[_0xca06('0x3a')](handleError(_0x5517b1,null));};