e6c804f65d5d2057c99e3bab6cdf9d40bdb2648e
[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 _0x6779=['model','query','keys','filters','intersection','attributes','fields','length','nolimit','sort','where','pick','filter','merge','VIRTUAL','includeAll','include','SquareRecording','findAll','rows','show','params','rawAttributes','options','find','catch','create','body','download','uniqueid','savePath','format','secrets','existsSync','ValidationError','SquareRecording\x20not\x20found','filename','extname','unlink','isNil','Entity\x20not\x20found','cancellazione\x20fisica\x20documento\x20%s','info','File:\x20\x22','\x22\x20trovato\x20eseguo\x20la\x20cancellazione','unlinkSync','.cypher','rimraf','zip-dir','fast-json-patch','request-promise','moment','path','sox','to-csv','fs-extra','squel','jsforce','desk.js','ioredis','../../components/parsers/qs','../../components/parsers/advancedSearch','../../config/license/hardware','../../config/logger','../../config/utils','../../config/environment','../../config/license/util','sendStatus','end','offset','count','limit','status','json','apply','reject','update','then','destroy','error','stack','name','send','index','map','fieldName','type','key'];(function(_0x30033a,_0x5ce4a6){var _0x5e3518=function(_0x11494a){while(--_0x11494a){_0x30033a['push'](_0x30033a['shift']());}};_0x5e3518(++_0x5ce4a6);}(_0x6779,0x18f));var _0x9677=function(_0x3fb0fe,_0x32af65){_0x3fb0fe=_0x3fb0fe-0x0;var _0x38b17d=_0x6779[_0x3fb0fe];return _0x38b17d;};'use strict';var emlformat=require('eml-format');var rimraf=require(_0x9677('0x0'));var zipdir=require(_0x9677('0x1'));var jsonpatch=require(_0x9677('0x2'));var rp=require(_0x9677('0x3'));var moment=require(_0x9677('0x4'));var BPromise=require('bluebird');var Mustache=require('mustache');var util=require('util');var path=require(_0x9677('0x5'));var sox=require(_0x9677('0x6'));var csv=require(_0x9677('0x7'));var ejs=require('ejs');var fs=require('fs');var fs_extra=require(_0x9677('0x8'));var _=require('lodash');var squel=require(_0x9677('0x9'));var crypto=require('crypto');var jsforce=require(_0x9677('0xa'));var deskjs=require(_0x9677('0xb'));var toCsv=require(_0x9677('0x7'));var querystring=require('querystring');var Papa=require('papaparse');var Redis=require(_0x9677('0xc'));var authService=require('../../components/auth/service');var qs=require(_0x9677('0xd'));var as=require(_0x9677('0xe'));var hardwareService=require(_0x9677('0xf'));var logger=require(_0x9677('0x10'))('api');var utils=require(_0x9677('0x11'));var config=require(_0x9677('0x12'));var licenseUtil=require(_0x9677('0x13'));var db=require('../../mysqldb')['db'];function respondWithStatusCode(_0x33e824,_0x4f4a7a){_0x4f4a7a=_0x4f4a7a||0xcc;return function(_0x41af94){if(_0x41af94){return _0x33e824[_0x9677('0x14')](_0x4f4a7a);}return _0x33e824['status'](_0x4f4a7a)[_0x9677('0x15')]();};}function respondWithResult(_0x5d9fd2,_0x5705c0){_0x5705c0=_0x5705c0||0xc8;return function(_0x550ecc){if(_0x550ecc){return _0x5d9fd2['status'](_0x5705c0)['json'](_0x550ecc);}};}function respondWithFilteredResult(_0x15687a,_0x444619){return function(_0x265644){if(_0x265644){var _0x4afafd=typeof _0x444619[_0x9677('0x16')]==='undefined'&&typeof _0x444619['limit']==='undefined';var _0x48b582=_0x265644[_0x9677('0x17')];var _0x585f6d=_0x4afafd?0x0:_0x444619[_0x9677('0x16')];var _0x207b03=_0x4afafd?_0x265644[_0x9677('0x17')]:_0x444619['offset']+_0x444619[_0x9677('0x18')];var _0x4d462f;if(_0x207b03>=_0x48b582){_0x207b03=_0x48b582;_0x4d462f=0xc8;}else{_0x4d462f=0xce;}_0x15687a[_0x9677('0x19')](_0x4d462f);return _0x15687a['set']('Content-Range',_0x585f6d+'-'+_0x207b03+'/'+_0x48b582)[_0x9677('0x1a')](_0x265644);}return null;};}function patchUpdates(_0x5d10fc){return function(_0x2730d7){try{jsonpatch[_0x9677('0x1b')](_0x2730d7,_0x5d10fc,!![]);}catch(_0x86f75c){return BPromise[_0x9677('0x1c')](_0x86f75c);}return _0x2730d7['save']();};}function saveUpdates(_0x59d1bb,_0x4aa224){return function(_0x1c875e){if(_0x1c875e){return _0x1c875e[_0x9677('0x1d')](_0x59d1bb)[_0x9677('0x1e')](function(_0x10016c){return _0x10016c;});}return null;};}function removeEntity(_0x4c1157,_0x3ad45b){return function(_0x5d6ffb){if(_0x5d6ffb){return _0x5d6ffb[_0x9677('0x1f')]()[_0x9677('0x1e')](function(){_0x4c1157[_0x9677('0x19')](0xcc)['end']();});}};}function handleEntityNotFound(_0x1be60a,_0x6a7139){return function(_0xd0b39f){if(!_0xd0b39f){_0x1be60a[_0x9677('0x14')](0x194);}return _0xd0b39f;};}function handleError(_0x5dd4e6,_0x566c66){_0x566c66=_0x566c66||0x1f4;return function(_0x5da84a){logger[_0x9677('0x20')](_0x5da84a[_0x9677('0x21')]);if(_0x5da84a['name']){delete _0x5da84a[_0x9677('0x22')];}_0x5dd4e6[_0x9677('0x19')](_0x566c66)[_0x9677('0x23')](_0x5da84a);};}exports[_0x9677('0x24')]=function(_0x21785e,_0xe669f){var _0x2a6ac1={},_0xe4cdb7={},_0x6a6d59={'count':0x0,'rows':[]};var _0x54ce48=_[_0x9677('0x25')](db['SquareRecording']['rawAttributes'],function(_0x575f9b){return{'name':_0x575f9b[_0x9677('0x26')],'type':_0x575f9b[_0x9677('0x27')][_0x9677('0x28')]};});_0xe4cdb7[_0x9677('0x29')]=_['map'](_0x54ce48,_0x9677('0x22'));_0xe4cdb7[_0x9677('0x2a')]=_[_0x9677('0x2b')](_0x21785e['query']);_0xe4cdb7[_0x9677('0x2c')]=_[_0x9677('0x2d')](_0xe4cdb7[_0x9677('0x29')],_0xe4cdb7['query']);_0x2a6ac1[_0x9677('0x2e')]=_[_0x9677('0x2d')](_0xe4cdb7['model'],qs[_0x9677('0x2f')](_0x21785e['query'][_0x9677('0x2f')]));_0x2a6ac1['attributes']=_0x2a6ac1['attributes'][_0x9677('0x30')]?_0x2a6ac1[_0x9677('0x2e')]:_0xe4cdb7[_0x9677('0x29')];if(!_0x21785e['query']['hasOwnProperty'](_0x9677('0x31'))){_0x2a6ac1[_0x9677('0x18')]=qs['limit'](_0x21785e[_0x9677('0x2a')]['limit']);_0x2a6ac1['offset']=qs[_0x9677('0x16')](_0x21785e[_0x9677('0x2a')][_0x9677('0x16')]);}_0x2a6ac1['order']=qs[_0x9677('0x32')](_0x21785e['query'][_0x9677('0x32')]);_0x2a6ac1[_0x9677('0x33')]=qs[_0x9677('0x2c')](_[_0x9677('0x34')](_0x21785e[_0x9677('0x2a')],_0xe4cdb7['filters']),_0x54ce48);if(_0x21785e[_0x9677('0x2a')][_0x9677('0x35')]){_0x2a6ac1[_0x9677('0x33')]=_[_0x9677('0x36')](_0x2a6ac1[_0x9677('0x33')],{'$or':_[_0x9677('0x25')](_0x54ce48,function(_0x1fe9d2){if(_0x1fe9d2[_0x9677('0x27')]!==_0x9677('0x37')){var _0x295e31={};_0x295e31[_0x1fe9d2[_0x9677('0x22')]]={'$like':'%'+_0x21785e[_0x9677('0x2a')][_0x9677('0x35')]+'%'};return _0x295e31;}})});}_0x2a6ac1=_[_0x9677('0x36')]({},_0x2a6ac1,_0x21785e['options']);var _0x48fc9c={'where':_0x2a6ac1[_0x9677('0x33')]};return db['SquareRecording'][_0x9677('0x17')](_0x48fc9c)[_0x9677('0x1e')](function(_0x2b8748){_0x6a6d59[_0x9677('0x17')]=_0x2b8748;if(_0x21785e[_0x9677('0x2a')][_0x9677('0x38')]){_0x2a6ac1[_0x9677('0x39')]=[{'all':!![]}];}return db[_0x9677('0x3a')][_0x9677('0x3b')](_0x2a6ac1);})['then'](function(_0x44f139){_0x6a6d59[_0x9677('0x3c')]=_0x44f139;return _0x6a6d59;})['then'](respondWithFilteredResult(_0xe669f,_0x2a6ac1))['catch'](handleError(_0xe669f,null));};exports[_0x9677('0x3d')]=function(_0x1428e5,_0x4a00b6){var _0x13874e={'raw':!![],'where':{'id':_0x1428e5[_0x9677('0x3e')]['id']}},_0x24a462={};_0x24a462[_0x9677('0x29')]=_[_0x9677('0x2b')](db[_0x9677('0x3a')][_0x9677('0x3f')]);_0x24a462[_0x9677('0x2a')]=_['keys'](_0x1428e5[_0x9677('0x2a')]);_0x24a462[_0x9677('0x2c')]=_[_0x9677('0x2d')](_0x24a462[_0x9677('0x29')],_0x24a462[_0x9677('0x2a')]);_0x13874e[_0x9677('0x2e')]=_[_0x9677('0x2d')](_0x24a462['model'],qs[_0x9677('0x2f')](_0x1428e5[_0x9677('0x2a')][_0x9677('0x2f')]));_0x13874e[_0x9677('0x2e')]=_0x13874e['attributes'][_0x9677('0x30')]?_0x13874e[_0x9677('0x2e')]:_0x24a462[_0x9677('0x29')];if(_0x1428e5[_0x9677('0x2a')]['includeAll']){_0x13874e[_0x9677('0x39')]=[{'all':!![]}];}_0x13874e=_[_0x9677('0x36')]({},_0x13874e,_0x1428e5[_0x9677('0x40')]);return db[_0x9677('0x3a')][_0x9677('0x41')](_0x13874e)[_0x9677('0x1e')](handleEntityNotFound(_0x4a00b6,null))[_0x9677('0x1e')](respondWithResult(_0x4a00b6,null))[_0x9677('0x42')](handleError(_0x4a00b6,null));};exports[_0x9677('0x43')]=function(_0x166535,_0x151d4c){return db['SquareRecording']['create'](_0x166535[_0x9677('0x44')],{})[_0x9677('0x1e')](respondWithResult(_0x151d4c,0xc9))[_0x9677('0x42')](handleError(_0x151d4c,null));};exports['update']=function(_0x25c31b,_0x2e96fd){if(_0x25c31b[_0x9677('0x44')]['id']){delete _0x25c31b[_0x9677('0x44')]['id'];}return db[_0x9677('0x3a')][_0x9677('0x41')]({'where':{'id':_0x25c31b[_0x9677('0x3e')]['id']}})[_0x9677('0x1e')](handleEntityNotFound(_0x2e96fd,null))[_0x9677('0x1e')](saveUpdates(_0x25c31b[_0x9677('0x44')],null))[_0x9677('0x1e')](respondWithResult(_0x2e96fd,null))[_0x9677('0x42')](handleError(_0x2e96fd,null));};exports[_0x9677('0x45')]=function(_0x29e1b9,_0x36b277,_0x3699ce){var _0x5989e2=require('../../components/encryptor');var _0x2bca6f=![];var _0x240114={};if(_0x29e1b9[_0x9677('0x2a')][_0x9677('0x27')]&&_0x29e1b9[_0x9677('0x2a')][_0x9677('0x27')]===_0x9677('0x46')){_0x240114[_0x9677('0x46')]=_0x29e1b9['params']['id'];}else{_0x240114['id']=_0x29e1b9[_0x9677('0x3e')]['id'];}return db['SquareRecording'][_0x9677('0x41')]({'where':_0x240114,'attributes':['id','savePath','filename'],'raw':!![]})['then'](handleEntityNotFound(_0x36b277,null))['then'](function(_0x1b9566){if(_0x1b9566){var _0xfa6c0d=_0x1b9566[_0x9677('0x47')];var _0x3512e1=util[_0x9677('0x48')]('%s.cypher',_0xfa6c0d);if(fs['existsSync'](_0x3512e1)){_0x2bca6f=!![];return _0x5989e2['decryptFile'](_0x3512e1,_0xfa6c0d,config[_0x9677('0x49')]['recording'])[_0x9677('0x1e')](function(){return _0x1b9566;});}return _0x1b9566;}})[_0x9677('0x1e')](function(_0x2aac35){if(_0x2aac35){var _0x46a4e1=_0x2aac35[_0x9677('0x47')];if(!fs[_0x9677('0x4a')](_0x46a4e1)){throw new db['Sequelize'][(_0x9677('0x4b'))](_0x9677('0x4c'));}if(_0x2aac35[_0x9677('0x4d')]){return _0x36b277['download'](_0x46a4e1,_0x2aac35[_0x9677('0x4d')]+path[_0x9677('0x4e')](_0x46a4e1),function(){if(_0x2bca6f){fs[_0x9677('0x4f')](_0x46a4e1);}});}else{return _0x36b277[_0x9677('0x45')](_0x46a4e1,function(_0x6a602c){if(_0x2bca6f){fs['unlink'](_0x46a4e1);}});}}})[_0x9677('0x42')](function(_0x5bb898){if(_0x5bb898['message']===_0x9677('0x4c')){_0x36b277[_0x9677('0x19')](0x194)['send']('Not\x20found');}else{return handleError(_0x36b277,null);}});};exports[_0x9677('0x1f')]=function(_0x5c227c,_0x4eb9e9){return db[_0x9677('0x3a')][_0x9677('0x41')]({'where':{'id':_0x5c227c[_0x9677('0x3e')]['id']}})[_0x9677('0x1e')](function(_0xa550f9){if(_[_0x9677('0x50')](_0xa550f9)){throw new ReferenceError(_0x9677('0x51'));}return _0xa550f9;})['then'](function(_0xf680e9){var _0xa872ff=_0xf680e9[_0x9677('0x47')];logger['info'](_0x9677('0x52'),_0xa872ff);if(!_['isNil'](_0xf680e9[_0x9677('0x47')])&&fs['existsSync'](_0xa872ff)){logger[_0x9677('0x53')](_0x9677('0x54')+_0xa872ff+_0x9677('0x55'));fs[_0x9677('0x56')](_0xa872ff);}_0xa872ff=_0xa872ff+_0x9677('0x57');if(!_[_0x9677('0x50')](_0xf680e9[_0x9677('0x47')])&&fs[_0x9677('0x4a')](_0xa872ff)){logger[_0x9677('0x53')]('File:\x20\x22'+_0xa872ff+_0x9677('0x55'));fs['unlinkSync'](_0xa872ff);}return _0xf680e9;})['then'](function(_0x4694a0){if(!_0x4694a0)throw new InternalError();return _0x4694a0[_0x9677('0x1f')]();})[_0x9677('0x1e')](function(){_0x4eb9e9[_0x9677('0x19')](0xcc)[_0x9677('0x15')]();})[_0x9677('0x42')](handleError(_0x4eb9e9,null));};