afe2067b187515aed9f0f3d3e10407edae4cc48d
[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 _0x8f58=['catch','rawAttributes','find','create','body','params','download','uniqueid','savePath','filename','format','%s.cypher','existsSync','decryptFile','secrets','recording','Sequelize','ValidationError','SquareRecording\x20not\x20found','extname','unlink','message','destroy','Entity\x20not\x20found','info','cancellazione\x20fisica\x20documento\x20%s','isNil','File:\x20\x22','\x22\x20trovato\x20eseguo\x20la\x20cancellazione','.cypher','unlinkSync','eml-format','rimraf','moment','util','path','sox','to-csv','ejs','fs-extra','lodash','crypto','papaparse','../../components/auth/service','../../components/parsers/qs','../../components/parsers/advancedSearch','../../config/license/hardware','api','../../config/utils','../../config/environment','../../config/license/util','../../mysqldb','sendStatus','status','json','count','offset','limit','set','apply','reject','save','update','then','end','error','stack','name','send','index','SquareRecording','type','key','model','map','query','keys','intersection','attributes','fields','length','hasOwnProperty','order','sort','where','filters','pick','filter','merge','VIRTUAL','options','includeAll','include','findAll','rows'];(function(_0x2c2389,_0x1fb0f6){var _0xfc3ea0=function(_0x3687fa){while(--_0x3687fa){_0x2c2389['push'](_0x2c2389['shift']());}};_0xfc3ea0(++_0x1fb0f6);}(_0x8f58,0xdd));var _0x88f5=function(_0x11aab6,_0x2be6ad){_0x11aab6=_0x11aab6-0x0;var _0x293938=_0x8f58[_0x11aab6];return _0x293938;};'use strict';var emlformat=require(_0x88f5('0x0'));var rimraf=require(_0x88f5('0x1'));var zipdir=require('zip-dir');var jsonpatch=require('fast-json-patch');var rp=require('request-promise');var moment=require(_0x88f5('0x2'));var BPromise=require('bluebird');var Mustache=require('mustache');var util=require(_0x88f5('0x3'));var path=require(_0x88f5('0x4'));var sox=require(_0x88f5('0x5'));var csv=require(_0x88f5('0x6'));var ejs=require(_0x88f5('0x7'));var fs=require('fs');var fs_extra=require(_0x88f5('0x8'));var _=require(_0x88f5('0x9'));var squel=require('squel');var crypto=require(_0x88f5('0xa'));var jsforce=require('jsforce');var deskjs=require('desk.js');var toCsv=require('to-csv');var querystring=require('querystring');var Papa=require(_0x88f5('0xb'));var Redis=require('ioredis');var authService=require(_0x88f5('0xc'));var qs=require(_0x88f5('0xd'));var as=require(_0x88f5('0xe'));var hardwareService=require(_0x88f5('0xf'));var logger=require('../../config/logger')(_0x88f5('0x10'));var utils=require(_0x88f5('0x11'));var config=require(_0x88f5('0x12'));var licenseUtil=require(_0x88f5('0x13'));var db=require(_0x88f5('0x14'))['db'];function respondWithStatusCode(_0x5d64c6,_0x5efe39){_0x5efe39=_0x5efe39||0xcc;return function(_0xd41177){if(_0xd41177){return _0x5d64c6[_0x88f5('0x15')](_0x5efe39);}return _0x5d64c6[_0x88f5('0x16')](_0x5efe39)['end']();};}function respondWithResult(_0x565656,_0x2d8e88){_0x2d8e88=_0x2d8e88||0xc8;return function(_0x35727e){if(_0x35727e){return _0x565656['status'](_0x2d8e88)[_0x88f5('0x17')](_0x35727e);}};}function respondWithFilteredResult(_0x36758f,_0x4f6d8f){return function(_0x512143){if(_0x512143){var _0x565017=_0x512143[_0x88f5('0x18')],_0x4f9fa0=_0x4f6d8f[_0x88f5('0x19')],_0x462200=_0x4f6d8f[_0x88f5('0x19')]+_0x4f6d8f[_0x88f5('0x1a')],_0x8417ce;if(_0x462200>=_0x565017){_0x462200=_0x565017;_0x8417ce=0xc8;}else{_0x8417ce=0xce;}_0x36758f['status'](_0x8417ce);return _0x36758f[_0x88f5('0x1b')]('Content-Range',_0x4f9fa0+'-'+_0x462200+'/'+_0x565017)[_0x88f5('0x17')](_0x512143);}return null;};}function patchUpdates(_0xced712){return function(_0x108a63){try{jsonpatch[_0x88f5('0x1c')](_0x108a63,_0xced712,!![]);}catch(_0x35cd7d){return BPromise[_0x88f5('0x1d')](_0x35cd7d);}return _0x108a63[_0x88f5('0x1e')]();};}function saveUpdates(_0x289051,_0x87f15b){return function(_0x2206a6){if(_0x2206a6){return _0x2206a6[_0x88f5('0x1f')](_0x289051)[_0x88f5('0x20')](function(_0x5a776c){return _0x5a776c;});}return null;};}function removeEntity(_0xa3ad4a,_0x87e3c9){return function(_0x21d4b5){if(_0x21d4b5){return _0x21d4b5['destroy']()[_0x88f5('0x20')](function(){_0xa3ad4a[_0x88f5('0x16')](0xcc)[_0x88f5('0x21')]();});}};}function handleEntityNotFound(_0x14a1e5,_0x5315d6){return function(_0x4f6ad7){if(!_0x4f6ad7){_0x14a1e5[_0x88f5('0x15')](0x194);}return _0x4f6ad7;};}function handleError(_0x53dbf2,_0x1ed86e){_0x1ed86e=_0x1ed86e||0x1f4;return function(_0x1da841){logger[_0x88f5('0x22')](_0x1da841[_0x88f5('0x23')]);if(_0x1da841[_0x88f5('0x24')]){delete _0x1da841[_0x88f5('0x24')];}_0x53dbf2[_0x88f5('0x16')](_0x1ed86e)[_0x88f5('0x25')](_0x1da841);};}exports[_0x88f5('0x26')]=function(_0x548f9b,_0x17c603){var _0x46b03={},_0x4d3db2={},_0x37d4cd={'count':0x0,'rows':[]};var _0x53dc74=_['map'](db[_0x88f5('0x27')]['rawAttributes'],function(_0x4486a8){return{'name':_0x4486a8['fieldName'],'type':_0x4486a8[_0x88f5('0x28')][_0x88f5('0x29')]};});_0x4d3db2[_0x88f5('0x2a')]=_[_0x88f5('0x2b')](_0x53dc74,_0x88f5('0x24'));_0x4d3db2[_0x88f5('0x2c')]=_[_0x88f5('0x2d')](_0x548f9b[_0x88f5('0x2c')]);_0x4d3db2['filters']=_[_0x88f5('0x2e')](_0x4d3db2[_0x88f5('0x2a')],_0x4d3db2[_0x88f5('0x2c')]);_0x46b03[_0x88f5('0x2f')]=_[_0x88f5('0x2e')](_0x4d3db2[_0x88f5('0x2a')],qs[_0x88f5('0x30')](_0x548f9b[_0x88f5('0x2c')][_0x88f5('0x30')]));_0x46b03[_0x88f5('0x2f')]=_0x46b03[_0x88f5('0x2f')][_0x88f5('0x31')]?_0x46b03[_0x88f5('0x2f')]:_0x4d3db2['model'];if(!_0x548f9b[_0x88f5('0x2c')][_0x88f5('0x32')]('nolimit')){_0x46b03[_0x88f5('0x1a')]=qs[_0x88f5('0x1a')](_0x548f9b['query'][_0x88f5('0x1a')]);_0x46b03[_0x88f5('0x19')]=qs[_0x88f5('0x19')](_0x548f9b[_0x88f5('0x2c')][_0x88f5('0x19')]);}_0x46b03[_0x88f5('0x33')]=qs[_0x88f5('0x34')](_0x548f9b['query'][_0x88f5('0x34')]);_0x46b03[_0x88f5('0x35')]=qs[_0x88f5('0x36')](_[_0x88f5('0x37')](_0x548f9b[_0x88f5('0x2c')],_0x4d3db2[_0x88f5('0x36')]),_0x53dc74);if(_0x548f9b['query'][_0x88f5('0x38')]){_0x46b03[_0x88f5('0x35')]=_[_0x88f5('0x39')](_0x46b03['where'],{'$or':_[_0x88f5('0x2b')](_0x53dc74,function(_0xeb90ba){if(_0xeb90ba[_0x88f5('0x28')]!==_0x88f5('0x3a')){var _0x399ca0={};_0x399ca0[_0xeb90ba[_0x88f5('0x24')]]={'$like':'%'+_0x548f9b[_0x88f5('0x2c')][_0x88f5('0x38')]+'%'};return _0x399ca0;}})});}_0x46b03=_[_0x88f5('0x39')]({},_0x46b03,_0x548f9b[_0x88f5('0x3b')]);var _0x23e9ea={'where':_0x46b03[_0x88f5('0x35')]};return db[_0x88f5('0x27')][_0x88f5('0x18')](_0x23e9ea)['then'](function(_0x19fbb6){_0x37d4cd[_0x88f5('0x18')]=_0x19fbb6;if(_0x548f9b[_0x88f5('0x2c')][_0x88f5('0x3c')]){_0x46b03[_0x88f5('0x3d')]=[{'all':!![]}];}return db[_0x88f5('0x27')][_0x88f5('0x3e')](_0x46b03);})[_0x88f5('0x20')](function(_0x593dd0){_0x37d4cd[_0x88f5('0x3f')]=_0x593dd0;return _0x37d4cd;})[_0x88f5('0x20')](respondWithFilteredResult(_0x17c603,_0x46b03))[_0x88f5('0x40')](handleError(_0x17c603,null));};exports['show']=function(_0x578a1c,_0x46f4e0){var _0x3cf38f={'raw':!![],'where':{'id':_0x578a1c['params']['id']}},_0x5c8296={};_0x5c8296[_0x88f5('0x2a')]=_[_0x88f5('0x2d')](db['SquareRecording'][_0x88f5('0x41')]);_0x5c8296[_0x88f5('0x2c')]=_[_0x88f5('0x2d')](_0x578a1c[_0x88f5('0x2c')]);_0x5c8296[_0x88f5('0x36')]=_[_0x88f5('0x2e')](_0x5c8296[_0x88f5('0x2a')],_0x5c8296[_0x88f5('0x2c')]);_0x3cf38f['attributes']=_['intersection'](_0x5c8296[_0x88f5('0x2a')],qs[_0x88f5('0x30')](_0x578a1c[_0x88f5('0x2c')][_0x88f5('0x30')]));_0x3cf38f['attributes']=_0x3cf38f[_0x88f5('0x2f')][_0x88f5('0x31')]?_0x3cf38f[_0x88f5('0x2f')]:_0x5c8296[_0x88f5('0x2a')];if(_0x578a1c[_0x88f5('0x2c')][_0x88f5('0x3c')]){_0x3cf38f[_0x88f5('0x3d')]=[{'all':!![]}];}_0x3cf38f=_[_0x88f5('0x39')]({},_0x3cf38f,_0x578a1c[_0x88f5('0x3b')]);return db[_0x88f5('0x27')][_0x88f5('0x42')](_0x3cf38f)[_0x88f5('0x20')](handleEntityNotFound(_0x46f4e0,null))[_0x88f5('0x20')](respondWithResult(_0x46f4e0,null))[_0x88f5('0x40')](handleError(_0x46f4e0,null));};exports[_0x88f5('0x43')]=function(_0x5c3274,_0x4fbd5b){return db[_0x88f5('0x27')]['create'](_0x5c3274[_0x88f5('0x44')],{})['then'](respondWithResult(_0x4fbd5b,0xc9))[_0x88f5('0x40')](handleError(_0x4fbd5b,null));};exports[_0x88f5('0x1f')]=function(_0x4fabf7,_0x13c55a){if(_0x4fabf7[_0x88f5('0x44')]['id']){delete _0x4fabf7[_0x88f5('0x44')]['id'];}return db[_0x88f5('0x27')]['find']({'where':{'id':_0x4fabf7[_0x88f5('0x45')]['id']}})[_0x88f5('0x20')](handleEntityNotFound(_0x13c55a,null))['then'](saveUpdates(_0x4fabf7[_0x88f5('0x44')],null))[_0x88f5('0x20')](respondWithResult(_0x13c55a,null))[_0x88f5('0x40')](handleError(_0x13c55a,null));};exports[_0x88f5('0x46')]=function(_0x5413f5,_0x1f9bf8,_0x4dd65d){var _0x451c34=require('../../components/encryptor');var _0x4468c4=![];var _0x4b296f={};if(_0x5413f5[_0x88f5('0x2c')]['type']&&_0x5413f5[_0x88f5('0x2c')][_0x88f5('0x28')]==='uniqueid'){_0x4b296f[_0x88f5('0x47')]=_0x5413f5['params']['id'];}else{_0x4b296f['id']=_0x5413f5['params']['id'];}return db[_0x88f5('0x27')][_0x88f5('0x42')]({'where':_0x4b296f,'attributes':['id',_0x88f5('0x48'),_0x88f5('0x49')],'raw':!![]})[_0x88f5('0x20')](handleEntityNotFound(_0x1f9bf8,null))[_0x88f5('0x20')](function(_0x4b49d3){if(_0x4b49d3){var _0x519445=_0x4b49d3[_0x88f5('0x48')];var _0x4235d4=util[_0x88f5('0x4a')](_0x88f5('0x4b'),_0x519445);if(fs[_0x88f5('0x4c')](_0x4235d4)){_0x4468c4=!![];return _0x451c34[_0x88f5('0x4d')](_0x4235d4,_0x519445,config[_0x88f5('0x4e')][_0x88f5('0x4f')])['then'](function(){return _0x4b49d3;});}return _0x4b49d3;}})['then'](function(_0x2a0a53){if(_0x2a0a53){var _0x5948dc=_0x2a0a53[_0x88f5('0x48')];if(!fs[_0x88f5('0x4c')](_0x5948dc)){throw new db[(_0x88f5('0x50'))][(_0x88f5('0x51'))](_0x88f5('0x52'));}if(_0x2a0a53[_0x88f5('0x49')]){return _0x1f9bf8[_0x88f5('0x46')](_0x5948dc,_0x2a0a53[_0x88f5('0x49')]+path[_0x88f5('0x53')](_0x5948dc),function(){if(_0x4468c4){fs[_0x88f5('0x54')](_0x5948dc);}});}else{return _0x1f9bf8[_0x88f5('0x46')](_0x5948dc,function(_0x2e4f70){if(_0x4468c4){fs['unlink'](_0x5948dc);}});}}})[_0x88f5('0x40')](function(_0xb64c04){if(_0xb64c04[_0x88f5('0x55')]===_0x88f5('0x52')){_0x1f9bf8[_0x88f5('0x16')](0x194)[_0x88f5('0x25')]('Not\x20found');}else{return handleError(_0x1f9bf8,null);}});};exports[_0x88f5('0x56')]=function(_0x3829f8,_0x1a627b){return db[_0x88f5('0x27')][_0x88f5('0x42')]({'where':{'id':_0x3829f8[_0x88f5('0x45')]['id']}})[_0x88f5('0x20')](function(_0x473996){if(!_0x473996)throw new ReferenceError(_0x88f5('0x57'));return _0x473996;})[_0x88f5('0x20')](function(_0x1cda3d){var _0x3b12cf=_0x1cda3d[_0x88f5('0x48')];logger[_0x88f5('0x58')](_0x88f5('0x59'),_0x3b12cf);if(!_[_0x88f5('0x5a')](_0x1cda3d[_0x88f5('0x48')])&&fs[_0x88f5('0x4c')](_0x3b12cf)){logger[_0x88f5('0x58')](_0x88f5('0x5b')+_0x3b12cf+_0x88f5('0x5c'));fs['unlinkSync'](_0x3b12cf);}_0x3b12cf=_0x3b12cf+_0x88f5('0x5d');if(!_['isNil'](_0x1cda3d['savePath'])&&fs['existsSync'](_0x3b12cf)){logger[_0x88f5('0x58')](_0x88f5('0x5b')+_0x3b12cf+_0x88f5('0x5c'));fs[_0x88f5('0x5e')](_0x3b12cf);}return _0x1cda3d;})['then'](function(_0x57d5e4){if(!_0x57d5e4)throw new InternalError();return _0x57d5e4[_0x88f5('0x56')]();})[_0x88f5('0x20')](function(){_0x1a627b['status'](0xcc)[_0x88f5('0x21')]();})[_0x88f5('0x40')](handleError(_0x1a627b,null));};