1e847c589b436742e72d206eb73de62480b76a6d
[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 _0xa16b=['hasOwnProperty','nolimit','order','sort','where','filter','merge','VIRTUAL','options','SquareRecording','includeAll','include','findAll','rows','catch','show','params','find','create','body','update','download','uniqueid','savePath','filename','format','%s.cypher','existsSync','decryptFile','secrets','Sequelize','ValidationError','SquareRecording\x20not\x20found','extname','unlink','message','Not\x20found','Entity\x20not\x20found','info','cancellazione\x20fisica\x20documento\x20%s','isNil','File:\x20\x22','\x22\x20trovato\x20eseguo\x20la\x20cancellazione','unlinkSync','.cypher','zip-dir','fast-json-patch','moment','mustache','path','sox','squel','crypto','jsforce','desk.js','querystring','papaparse','ioredis','../../components/auth/service','../../components/parsers/qs','../../components/parsers/advancedSearch','../../config/license/hardware','../../config/logger','api','../../config/utils','../../config/environment','../../mysqldb','sendStatus','status','end','json','count','offset','limit','set','Content-Range','save','then','destroy','error','stack','name','send','index','map','rawAttributes','fieldName','type','key','model','keys','query','filters','intersection','fields','attributes','length'];(function(_0x3dd15e,_0x1f0015){var _0x231fd0=function(_0x4f680a){while(--_0x4f680a){_0x3dd15e['push'](_0x3dd15e['shift']());}};_0x231fd0(++_0x1f0015);}(_0xa16b,0x1b1));var _0xba16=function(_0x439577,_0x41059a){_0x439577=_0x439577-0x0;var _0x2f49fa=_0xa16b[_0x439577];return _0x2f49fa;};'use strict';var pdf=require('html-pdf');var emlformat=require('eml-format');var rimraf=require('rimraf');var zipdir=require(_0xba16('0x0'));var jsonpatch=require(_0xba16('0x1'));var rp=require('request-promise');var moment=require(_0xba16('0x2'));var BPromise=require('bluebird');var Mustache=require(_0xba16('0x3'));var util=require('util');var path=require(_0xba16('0x4'));var sox=require(_0xba16('0x5'));var csv=require('to-csv');var ejs=require('ejs');var fs=require('fs');var _=require('lodash');var squel=require(_0xba16('0x6'));var crypto=require(_0xba16('0x7'));var jsforce=require(_0xba16('0x8'));var deskjs=require(_0xba16('0x9'));var toCsv=require('to-csv');var querystring=require(_0xba16('0xa'));var Papa=require(_0xba16('0xb'));var Redis=require(_0xba16('0xc'));var authService=require(_0xba16('0xd'));var qs=require(_0xba16('0xe'));var as=require(_0xba16('0xf'));var hardwareService=require(_0xba16('0x10'));var logger=require(_0xba16('0x11'))(_0xba16('0x12'));var utils=require(_0xba16('0x13'));var config=require(_0xba16('0x14'));var db=require(_0xba16('0x15'))['db'];function respondWithStatusCode(_0x5dc840,_0x309ae9){_0x309ae9=_0x309ae9||0xcc;return function(_0x36604b){if(_0x36604b){return _0x5dc840[_0xba16('0x16')](_0x309ae9);}return _0x5dc840[_0xba16('0x17')](_0x309ae9)[_0xba16('0x18')]();};}function respondWithResult(_0xc8a011,_0x3bc4a7){_0x3bc4a7=_0x3bc4a7||0xc8;return function(_0x37667c){if(_0x37667c){return _0xc8a011[_0xba16('0x17')](_0x3bc4a7)[_0xba16('0x19')](_0x37667c);}};}function respondWithFilteredResult(_0x26cb4a,_0x326684){return function(_0x270c24){if(_0x270c24){var _0x42c307=_0x270c24[_0xba16('0x1a')],_0x4d32b5=_0x326684[_0xba16('0x1b')],_0x1ac0ec=_0x326684['offset']+_0x326684[_0xba16('0x1c')],_0x280266;if(_0x1ac0ec>=_0x42c307){_0x1ac0ec=_0x42c307;_0x280266=0xc8;}else{_0x280266=0xce;}_0x26cb4a[_0xba16('0x17')](_0x280266);return _0x26cb4a[_0xba16('0x1d')](_0xba16('0x1e'),_0x4d32b5+'-'+_0x1ac0ec+'/'+_0x42c307)[_0xba16('0x19')](_0x270c24);}return null;};}function patchUpdates(_0x5cd4dc){return function(_0x564bcf){try{jsonpatch['apply'](_0x564bcf,_0x5cd4dc,!![]);}catch(_0x123e25){return BPromise['reject'](_0x123e25);}return _0x564bcf[_0xba16('0x1f')]();};}function saveUpdates(_0x58beff,_0x1b79a4){return function(_0x498d59){if(_0x498d59){return _0x498d59['update'](_0x58beff)[_0xba16('0x20')](function(_0x29e29c){return _0x29e29c;});}return null;};}function removeEntity(_0x4acd4e,_0x57d3dc){return function(_0x33e76c){if(_0x33e76c){return _0x33e76c[_0xba16('0x21')]()[_0xba16('0x20')](function(){_0x4acd4e[_0xba16('0x17')](0xcc)['end']();});}};}function handleEntityNotFound(_0x582152,_0x1d0a91){return function(_0x40deca){if(!_0x40deca){_0x582152['sendStatus'](0x194);}return _0x40deca;};}function handleError(_0xe10558,_0x49dbf4){_0x49dbf4=_0x49dbf4||0x1f4;return function(_0x199bdf){logger[_0xba16('0x22')](_0x199bdf[_0xba16('0x23')]);if(_0x199bdf['name']){delete _0x199bdf[_0xba16('0x24')];}_0xe10558[_0xba16('0x17')](_0x49dbf4)[_0xba16('0x25')](_0x199bdf);};}exports[_0xba16('0x26')]=function(_0x58db12,_0x1ae17d){var _0x26c7d7={},_0x3f32c9={},_0x3b9d24={'count':0x0,'rows':[]};var _0x355ddc=_[_0xba16('0x27')](db['SquareRecording'][_0xba16('0x28')],function(_0xda6c21){return{'name':_0xda6c21[_0xba16('0x29')],'type':_0xda6c21[_0xba16('0x2a')][_0xba16('0x2b')]};});_0x3f32c9[_0xba16('0x2c')]=_['map'](_0x355ddc,_0xba16('0x24'));_0x3f32c9['query']=_[_0xba16('0x2d')](_0x58db12[_0xba16('0x2e')]);_0x3f32c9[_0xba16('0x2f')]=_[_0xba16('0x30')](_0x3f32c9[_0xba16('0x2c')],_0x3f32c9['query']);_0x26c7d7['attributes']=_[_0xba16('0x30')](_0x3f32c9[_0xba16('0x2c')],qs[_0xba16('0x31')](_0x58db12['query']['fields']));_0x26c7d7[_0xba16('0x32')]=_0x26c7d7[_0xba16('0x32')][_0xba16('0x33')]?_0x26c7d7[_0xba16('0x32')]:_0x3f32c9[_0xba16('0x2c')];if(!_0x58db12[_0xba16('0x2e')][_0xba16('0x34')](_0xba16('0x35'))){_0x26c7d7[_0xba16('0x1c')]=qs[_0xba16('0x1c')](_0x58db12['query']['limit']);_0x26c7d7[_0xba16('0x1b')]=qs[_0xba16('0x1b')](_0x58db12['query']['offset']);}_0x26c7d7[_0xba16('0x36')]=qs['sort'](_0x58db12[_0xba16('0x2e')][_0xba16('0x37')]);_0x26c7d7[_0xba16('0x38')]=qs[_0xba16('0x2f')](_['pick'](_0x58db12[_0xba16('0x2e')],_0x3f32c9[_0xba16('0x2f')]),_0x355ddc);if(_0x58db12[_0xba16('0x2e')][_0xba16('0x39')]){_0x26c7d7[_0xba16('0x38')]=_[_0xba16('0x3a')](_0x26c7d7[_0xba16('0x38')],{'$or':_['map'](_0x355ddc,function(_0x229754){if(_0x229754['type']!==_0xba16('0x3b')){var _0x268e22={};_0x268e22[_0x229754[_0xba16('0x24')]]={'$like':'%'+_0x58db12['query'][_0xba16('0x39')]+'%'};return _0x268e22;}})});}_0x26c7d7=_[_0xba16('0x3a')]({},_0x26c7d7,_0x58db12[_0xba16('0x3c')]);var _0x6cac6e={'where':_0x26c7d7[_0xba16('0x38')]};return db[_0xba16('0x3d')][_0xba16('0x1a')](_0x6cac6e)[_0xba16('0x20')](function(_0x848c24){_0x3b9d24[_0xba16('0x1a')]=_0x848c24;if(_0x58db12[_0xba16('0x2e')][_0xba16('0x3e')]){_0x26c7d7[_0xba16('0x3f')]=[{'all':!![]}];}return db['SquareRecording'][_0xba16('0x40')](_0x26c7d7);})[_0xba16('0x20')](function(_0xbd3b0b){_0x3b9d24[_0xba16('0x41')]=_0xbd3b0b;return _0x3b9d24;})['then'](respondWithFilteredResult(_0x1ae17d,_0x26c7d7))[_0xba16('0x42')](handleError(_0x1ae17d,null));};exports[_0xba16('0x43')]=function(_0x4214bb,_0x26e8a6){var _0x215c57={'raw':!![],'where':{'id':_0x4214bb[_0xba16('0x44')]['id']}},_0x2d1dc6={};_0x2d1dc6['model']=_[_0xba16('0x2d')](db[_0xba16('0x3d')]['rawAttributes']);_0x2d1dc6['query']=_[_0xba16('0x2d')](_0x4214bb[_0xba16('0x2e')]);_0x2d1dc6[_0xba16('0x2f')]=_[_0xba16('0x30')](_0x2d1dc6['model'],_0x2d1dc6[_0xba16('0x2e')]);_0x215c57[_0xba16('0x32')]=_[_0xba16('0x30')](_0x2d1dc6['model'],qs[_0xba16('0x31')](_0x4214bb[_0xba16('0x2e')][_0xba16('0x31')]));_0x215c57[_0xba16('0x32')]=_0x215c57[_0xba16('0x32')]['length']?_0x215c57[_0xba16('0x32')]:_0x2d1dc6['model'];if(_0x4214bb[_0xba16('0x2e')][_0xba16('0x3e')]){_0x215c57[_0xba16('0x3f')]=[{'all':!![]}];}_0x215c57=_[_0xba16('0x3a')]({},_0x215c57,_0x4214bb[_0xba16('0x3c')]);return db['SquareRecording'][_0xba16('0x45')](_0x215c57)[_0xba16('0x20')](handleEntityNotFound(_0x26e8a6,null))[_0xba16('0x20')](respondWithResult(_0x26e8a6,null))[_0xba16('0x42')](handleError(_0x26e8a6,null));};exports[_0xba16('0x46')]=function(_0x1aefd3,_0x1a9aec){return db[_0xba16('0x3d')][_0xba16('0x46')](_0x1aefd3[_0xba16('0x47')],{})[_0xba16('0x20')](respondWithResult(_0x1a9aec,0xc9))[_0xba16('0x42')](handleError(_0x1a9aec,null));};exports[_0xba16('0x48')]=function(_0x17b8f6,_0x45c461){if(_0x17b8f6[_0xba16('0x47')]['id']){delete _0x17b8f6['body']['id'];}return db[_0xba16('0x3d')][_0xba16('0x45')]({'where':{'id':_0x17b8f6[_0xba16('0x44')]['id']}})[_0xba16('0x20')](handleEntityNotFound(_0x45c461,null))[_0xba16('0x20')](saveUpdates(_0x17b8f6[_0xba16('0x47')],null))['then'](respondWithResult(_0x45c461,null))['catch'](handleError(_0x45c461,null));};exports[_0xba16('0x49')]=function(_0x3608da,_0x467b18,_0x386a0b){var _0x6c2234=require('../../components/encryptor');var _0x5d23cd=![];var _0x2e141c={};if(_0x3608da[_0xba16('0x2e')][_0xba16('0x2a')]&&_0x3608da[_0xba16('0x2e')][_0xba16('0x2a')]==='uniqueid'){_0x2e141c[_0xba16('0x4a')]=_0x3608da[_0xba16('0x44')]['id'];}else{_0x2e141c['id']=_0x3608da['params']['id'];}return db[_0xba16('0x3d')]['find']({'where':_0x2e141c,'attributes':['id',_0xba16('0x4b'),_0xba16('0x4c')],'raw':!![]})['then'](handleEntityNotFound(_0x467b18,null))[_0xba16('0x20')](function(_0x405d59){if(_0x405d59){var _0x5a0c4b=_0x405d59['savePath'];var _0x4a563c=util[_0xba16('0x4d')](_0xba16('0x4e'),_0x5a0c4b);if(fs[_0xba16('0x4f')](_0x4a563c)){_0x5d23cd=!![];return _0x6c2234[_0xba16('0x50')](_0x4a563c,_0x5a0c4b,config[_0xba16('0x51')]['recording'])['then'](function(){return _0x405d59;});}return _0x405d59;}})[_0xba16('0x20')](function(_0x70ecdb){if(_0x70ecdb){var _0x2ec196=_0x70ecdb[_0xba16('0x4b')];if(!fs['existsSync'](_0x2ec196)){throw new db[(_0xba16('0x52'))][(_0xba16('0x53'))](_0xba16('0x54'));}if(_0x70ecdb['filename']){return _0x467b18['download'](_0x2ec196,_0x70ecdb[_0xba16('0x4c')]+path[_0xba16('0x55')](_0x2ec196),function(){if(_0x5d23cd){fs[_0xba16('0x56')](_0x2ec196);}});}else{return _0x467b18[_0xba16('0x49')](_0x2ec196,function(_0x31cb16){if(_0x5d23cd){fs['unlink'](_0x2ec196);}});}}})['catch'](function(_0x46c6b1){if(_0x46c6b1[_0xba16('0x57')]===_0xba16('0x54')){_0x467b18['status'](0x194)['send'](_0xba16('0x58'));}else{return handleError(_0x467b18,null);}});};exports[_0xba16('0x21')]=function(_0xcae0fc,_0x3cfe6b){return db[_0xba16('0x3d')][_0xba16('0x45')]({'where':{'id':_0xcae0fc[_0xba16('0x44')]['id']}})[_0xba16('0x20')](function(_0x4081b5){if(!_0x4081b5)throw new ReferenceError(_0xba16('0x59'));return _0x4081b5;})[_0xba16('0x20')](function(_0x3c2d8f){var _0x253a95=_0x3c2d8f[_0xba16('0x4b')];logger[_0xba16('0x5a')](_0xba16('0x5b'),_0x253a95);if(!_[_0xba16('0x5c')](_0x3c2d8f[_0xba16('0x4b')])&&fs[_0xba16('0x4f')](_0x253a95)){logger[_0xba16('0x5a')](_0xba16('0x5d')+_0x253a95+_0xba16('0x5e'));fs[_0xba16('0x5f')](_0x253a95);}_0x253a95=_0x253a95+_0xba16('0x60');if(!_[_0xba16('0x5c')](_0x3c2d8f['savePath'])&&fs[_0xba16('0x4f')](_0x253a95)){logger['info']('File:\x20\x22'+_0x253a95+_0xba16('0x5e'));fs[_0xba16('0x5f')](_0x253a95);}return _0x3c2d8f;})[_0xba16('0x20')](function(_0x1b7b2a){if(!_0x1b7b2a)throw new InternalError();return _0x1b7b2a[_0xba16('0x21')]();})['then'](function(){_0x3cfe6b[_0xba16('0x17')](0xcc)['end']();})[_0xba16('0x42')](handleError(_0x3cfe6b,null));};