Built motion from commit da617fac.|2.6.6
[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 _0xfe13=['%s.cypher','existsSync','recording','ValidationError','filename','extname','unlink','message','SquareRecording\x20not\x20found','cancellazione\x20fisica\x20documento\x20%s','isNil','info','File:\x20\x22','\x22\x20trovato\x20eseguo\x20la\x20cancellazione','unlinkSync','eml-format','zip-dir','request-promise','moment','bluebird','mustache','util','sox','ejs','lodash','crypto','jsforce','desk.js','querystring','papaparse','../../components/parsers/qs','../../components/parsers/advancedSearch','../../config/license/hardware','../../config/logger','api','../../config/utils','../../config/license/util','sendStatus','end','json','offset','undefined','count','limit','status','set','Content-Range','apply','reject','save','destroy','error','stack','name','send','index','SquareRecording','rawAttributes','fieldName','type','query','keys','filters','intersection','attributes','model','fields','length','hasOwnProperty','nolimit','order','sort','where','pick','filter','map','VIRTUAL','merge','options','include','findAll','then','rows','show','params','includeAll','find','create','body','update','catch','download','uniqueid','savePath','format'];(function(_0x2d5dd7,_0x2c525a){var _0xb6ff55=function(_0x585f7d){while(--_0x585f7d){_0x2d5dd7['push'](_0x2d5dd7['shift']());}};_0xb6ff55(++_0x2c525a);}(_0xfe13,0x6e));var _0x3fe1=function(_0x53ccf2,_0x13cb67){_0x53ccf2=_0x53ccf2-0x0;var _0x5a2964=_0xfe13[_0x53ccf2];return _0x5a2964;};'use strict';var emlformat=require(_0x3fe1('0x0'));var rimraf=require('rimraf');var zipdir=require(_0x3fe1('0x1'));var jsonpatch=require('fast-json-patch');var rp=require(_0x3fe1('0x2'));var moment=require(_0x3fe1('0x3'));var BPromise=require(_0x3fe1('0x4'));var Mustache=require(_0x3fe1('0x5'));var util=require(_0x3fe1('0x6'));var path=require('path');var sox=require(_0x3fe1('0x7'));var csv=require('to-csv');var ejs=require(_0x3fe1('0x8'));var fs=require('fs');var fs_extra=require('fs-extra');var _=require(_0x3fe1('0x9'));var squel=require('squel');var crypto=require(_0x3fe1('0xa'));var jsforce=require(_0x3fe1('0xb'));var deskjs=require(_0x3fe1('0xc'));var toCsv=require('to-csv');var querystring=require(_0x3fe1('0xd'));var Papa=require(_0x3fe1('0xe'));var Redis=require('ioredis');var authService=require('../../components/auth/service');var qs=require(_0x3fe1('0xf'));var as=require(_0x3fe1('0x10'));var hardwareService=require(_0x3fe1('0x11'));var logger=require(_0x3fe1('0x12'))(_0x3fe1('0x13'));var utils=require(_0x3fe1('0x14'));var config=require('../../config/environment');var licenseUtil=require(_0x3fe1('0x15'));var db=require('../../mysqldb')['db'];function respondWithStatusCode(_0x21157e,_0x3cb6c6){_0x3cb6c6=_0x3cb6c6||0xcc;return function(_0x2dec58){if(_0x2dec58){return _0x21157e[_0x3fe1('0x16')](_0x3cb6c6);}return _0x21157e['status'](_0x3cb6c6)[_0x3fe1('0x17')]();};}function respondWithResult(_0x19c0ac,_0x1bef79){_0x1bef79=_0x1bef79||0xc8;return function(_0x660082){if(_0x660082){return _0x19c0ac['status'](_0x1bef79)[_0x3fe1('0x18')](_0x660082);}};}function respondWithFilteredResult(_0x4ea656,_0xa8b2da){return function(_0x2be001){if(_0x2be001){var _0x503513=typeof _0xa8b2da[_0x3fe1('0x19')]===_0x3fe1('0x1a')&&typeof _0xa8b2da['limit']===_0x3fe1('0x1a');var _0x4dc81b=_0x2be001[_0x3fe1('0x1b')];var _0x54dc52=_0x503513?0x0:_0xa8b2da[_0x3fe1('0x19')];var _0x3e982d=_0x503513?_0x2be001[_0x3fe1('0x1b')]:_0xa8b2da[_0x3fe1('0x19')]+_0xa8b2da[_0x3fe1('0x1c')];var _0x3c5820;if(_0x3e982d>=_0x4dc81b){_0x3e982d=_0x4dc81b;_0x3c5820=0xc8;}else{_0x3c5820=0xce;}_0x4ea656[_0x3fe1('0x1d')](_0x3c5820);return _0x4ea656[_0x3fe1('0x1e')](_0x3fe1('0x1f'),_0x54dc52+'-'+_0x3e982d+'/'+_0x4dc81b)[_0x3fe1('0x18')](_0x2be001);}return null;};}function patchUpdates(_0x1be27c){return function(_0x25a5d3){try{jsonpatch[_0x3fe1('0x20')](_0x25a5d3,_0x1be27c,!![]);}catch(_0x2a0b50){return BPromise[_0x3fe1('0x21')](_0x2a0b50);}return _0x25a5d3[_0x3fe1('0x22')]();};}function saveUpdates(_0x5f2bc7,_0x1f79ba){return function(_0x496511){if(_0x496511){return _0x496511['update'](_0x5f2bc7)['then'](function(_0x3834eb){return _0x3834eb;});}return null;};}function removeEntity(_0x1f7be4,_0x593b96){return function(_0x2dbf1c){if(_0x2dbf1c){return _0x2dbf1c[_0x3fe1('0x23')]()['then'](function(){_0x1f7be4[_0x3fe1('0x1d')](0xcc)[_0x3fe1('0x17')]();});}};}function handleEntityNotFound(_0x219397,_0x525d57){return function(_0x559355){if(!_0x559355){_0x219397[_0x3fe1('0x16')](0x194);}return _0x559355;};}function handleError(_0x1445fe,_0xb7c2a0){_0xb7c2a0=_0xb7c2a0||0x1f4;return function(_0x2eb5fc){logger[_0x3fe1('0x24')](_0x2eb5fc[_0x3fe1('0x25')]);if(_0x2eb5fc[_0x3fe1('0x26')]){delete _0x2eb5fc[_0x3fe1('0x26')];}_0x1445fe[_0x3fe1('0x1d')](_0xb7c2a0)[_0x3fe1('0x27')](_0x2eb5fc);};}exports[_0x3fe1('0x28')]=function(_0x158683,_0x177f3d){var _0xeeb8f6={},_0x3fae5a={},_0x5b1127={'count':0x0,'rows':[]};var _0x21c87e=_['map'](db[_0x3fe1('0x29')][_0x3fe1('0x2a')],function(_0x2984f4){return{'name':_0x2984f4[_0x3fe1('0x2b')],'type':_0x2984f4[_0x3fe1('0x2c')]['key']};});_0x3fae5a['model']=_['map'](_0x21c87e,'name');_0x3fae5a[_0x3fe1('0x2d')]=_[_0x3fe1('0x2e')](_0x158683['query']);_0x3fae5a[_0x3fe1('0x2f')]=_[_0x3fe1('0x30')](_0x3fae5a['model'],_0x3fae5a[_0x3fe1('0x2d')]);_0xeeb8f6[_0x3fe1('0x31')]=_[_0x3fe1('0x30')](_0x3fae5a[_0x3fe1('0x32')],qs['fields'](_0x158683['query'][_0x3fe1('0x33')]));_0xeeb8f6[_0x3fe1('0x31')]=_0xeeb8f6[_0x3fe1('0x31')][_0x3fe1('0x34')]?_0xeeb8f6['attributes']:_0x3fae5a[_0x3fe1('0x32')];if(!_0x158683['query'][_0x3fe1('0x35')](_0x3fe1('0x36'))){_0xeeb8f6[_0x3fe1('0x1c')]=qs[_0x3fe1('0x1c')](_0x158683[_0x3fe1('0x2d')][_0x3fe1('0x1c')]);_0xeeb8f6['offset']=qs['offset'](_0x158683['query'][_0x3fe1('0x19')]);}_0xeeb8f6[_0x3fe1('0x37')]=qs[_0x3fe1('0x38')](_0x158683['query'][_0x3fe1('0x38')]);_0xeeb8f6[_0x3fe1('0x39')]=qs[_0x3fe1('0x2f')](_[_0x3fe1('0x3a')](_0x158683[_0x3fe1('0x2d')],_0x3fae5a['filters']),_0x21c87e);if(_0x158683['query'][_0x3fe1('0x3b')]){_0xeeb8f6[_0x3fe1('0x39')]=_['merge'](_0xeeb8f6[_0x3fe1('0x39')],{'$or':_[_0x3fe1('0x3c')](_0x21c87e,function(_0x418352){if(_0x418352['type']!==_0x3fe1('0x3d')){var _0x500ef0={};_0x500ef0[_0x418352[_0x3fe1('0x26')]]={'$like':'%'+_0x158683['query']['filter']+'%'};return _0x500ef0;}})});}_0xeeb8f6=_[_0x3fe1('0x3e')]({},_0xeeb8f6,_0x158683[_0x3fe1('0x3f')]);var _0x26a6c1={'where':_0xeeb8f6['where']};return db[_0x3fe1('0x29')][_0x3fe1('0x1b')](_0x26a6c1)['then'](function(_0x1a9bb2){_0x5b1127[_0x3fe1('0x1b')]=_0x1a9bb2;if(_0x158683['query']['includeAll']){_0xeeb8f6[_0x3fe1('0x40')]=[{'all':!![]}];}return db[_0x3fe1('0x29')][_0x3fe1('0x41')](_0xeeb8f6);})[_0x3fe1('0x42')](function(_0x365e83){_0x5b1127[_0x3fe1('0x43')]=_0x365e83;return _0x5b1127;})['then'](respondWithFilteredResult(_0x177f3d,_0xeeb8f6))['catch'](handleError(_0x177f3d,null));};exports[_0x3fe1('0x44')]=function(_0x10437d,_0x83e5ee){var _0xd64307={'raw':!![],'where':{'id':_0x10437d[_0x3fe1('0x45')]['id']}},_0x1d010b={};_0x1d010b[_0x3fe1('0x32')]=_[_0x3fe1('0x2e')](db[_0x3fe1('0x29')][_0x3fe1('0x2a')]);_0x1d010b[_0x3fe1('0x2d')]=_[_0x3fe1('0x2e')](_0x10437d[_0x3fe1('0x2d')]);_0x1d010b['filters']=_[_0x3fe1('0x30')](_0x1d010b[_0x3fe1('0x32')],_0x1d010b['query']);_0xd64307['attributes']=_[_0x3fe1('0x30')](_0x1d010b[_0x3fe1('0x32')],qs[_0x3fe1('0x33')](_0x10437d['query']['fields']));_0xd64307[_0x3fe1('0x31')]=_0xd64307[_0x3fe1('0x31')][_0x3fe1('0x34')]?_0xd64307[_0x3fe1('0x31')]:_0x1d010b[_0x3fe1('0x32')];if(_0x10437d[_0x3fe1('0x2d')][_0x3fe1('0x46')]){_0xd64307[_0x3fe1('0x40')]=[{'all':!![]}];}_0xd64307=_[_0x3fe1('0x3e')]({},_0xd64307,_0x10437d['options']);return db[_0x3fe1('0x29')][_0x3fe1('0x47')](_0xd64307)[_0x3fe1('0x42')](handleEntityNotFound(_0x83e5ee,null))[_0x3fe1('0x42')](respondWithResult(_0x83e5ee,null))['catch'](handleError(_0x83e5ee,null));};exports[_0x3fe1('0x48')]=function(_0x291266,_0x4b9c89){return db[_0x3fe1('0x29')][_0x3fe1('0x48')](_0x291266[_0x3fe1('0x49')],{})[_0x3fe1('0x42')](respondWithResult(_0x4b9c89,0xc9))['catch'](handleError(_0x4b9c89,null));};exports[_0x3fe1('0x4a')]=function(_0x135d40,_0x477a02){if(_0x135d40[_0x3fe1('0x49')]['id']){delete _0x135d40[_0x3fe1('0x49')]['id'];}return db['SquareRecording'][_0x3fe1('0x47')]({'where':{'id':_0x135d40[_0x3fe1('0x45')]['id']}})[_0x3fe1('0x42')](handleEntityNotFound(_0x477a02,null))[_0x3fe1('0x42')](saveUpdates(_0x135d40[_0x3fe1('0x49')],null))[_0x3fe1('0x42')](respondWithResult(_0x477a02,null))[_0x3fe1('0x4b')](handleError(_0x477a02,null));};exports[_0x3fe1('0x4c')]=function(_0x44891b,_0x5ecfa9,_0xe76b17){var _0x4886b3=require('../../components/encryptor');var _0x2a7c93=![];var _0x4a76dc={};if(_0x44891b['query'][_0x3fe1('0x2c')]&&_0x44891b[_0x3fe1('0x2d')][_0x3fe1('0x2c')]===_0x3fe1('0x4d')){_0x4a76dc[_0x3fe1('0x4d')]=_0x44891b['params']['id'];}else{_0x4a76dc['id']=_0x44891b[_0x3fe1('0x45')]['id'];}return db['SquareRecording'][_0x3fe1('0x47')]({'where':_0x4a76dc,'attributes':['id','savePath','filename'],'raw':!![]})['then'](handleEntityNotFound(_0x5ecfa9,null))['then'](function(_0x47b9ae){if(_0x47b9ae){var _0x38f007=_0x47b9ae[_0x3fe1('0x4e')];var _0x174e35=util[_0x3fe1('0x4f')](_0x3fe1('0x50'),_0x38f007);if(fs[_0x3fe1('0x51')](_0x174e35)){_0x2a7c93=!![];return _0x4886b3['decryptFile'](_0x174e35,_0x38f007,config['secrets'][_0x3fe1('0x52')])[_0x3fe1('0x42')](function(){return _0x47b9ae;});}return _0x47b9ae;}})[_0x3fe1('0x42')](function(_0x3b1693){if(_0x3b1693){var _0x30909e=_0x3b1693[_0x3fe1('0x4e')];if(!fs[_0x3fe1('0x51')](_0x30909e)){throw new db['Sequelize'][(_0x3fe1('0x53'))]('SquareRecording\x20not\x20found');}if(_0x3b1693[_0x3fe1('0x54')]){return _0x5ecfa9[_0x3fe1('0x4c')](_0x30909e,_0x3b1693['filename']+path[_0x3fe1('0x55')](_0x30909e),function(){if(_0x2a7c93){fs[_0x3fe1('0x56')](_0x30909e);}});}else{return _0x5ecfa9[_0x3fe1('0x4c')](_0x30909e,function(_0x1d2838){if(_0x2a7c93){fs['unlink'](_0x30909e);}});}}})[_0x3fe1('0x4b')](function(_0x239882){if(_0x239882[_0x3fe1('0x57')]===_0x3fe1('0x58')){_0x5ecfa9['status'](0x194)['send']('Not\x20found');}else{return handleError(_0x5ecfa9,null);}});};exports[_0x3fe1('0x23')]=function(_0x4f483c,_0x3c3f73){return db[_0x3fe1('0x29')]['find']({'where':{'id':_0x4f483c[_0x3fe1('0x45')]['id']}})['then'](function(_0x2b92e9){if(_['isNil'](_0x2b92e9)){throw new ReferenceError('Entity\x20not\x20found');}return _0x2b92e9;})[_0x3fe1('0x42')](function(_0x599804){var _0x101317=_0x599804[_0x3fe1('0x4e')];logger['info'](_0x3fe1('0x59'),_0x101317);if(!_[_0x3fe1('0x5a')](_0x599804['savePath'])&&fs[_0x3fe1('0x51')](_0x101317)){logger[_0x3fe1('0x5b')](_0x3fe1('0x5c')+_0x101317+_0x3fe1('0x5d'));fs[_0x3fe1('0x5e')](_0x101317);}_0x101317=_0x101317+'.cypher';if(!_[_0x3fe1('0x5a')](_0x599804[_0x3fe1('0x4e')])&&fs[_0x3fe1('0x51')](_0x101317)){logger[_0x3fe1('0x5b')](_0x3fe1('0x5c')+_0x101317+'\x22\x20trovato\x20eseguo\x20la\x20cancellazione');fs[_0x3fe1('0x5e')](_0x101317);}return _0x599804;})['then'](function(_0x18d13a){if(!_0x18d13a)throw new InternalError();return _0x18d13a[_0x3fe1('0x23')]();})[_0x3fe1('0x42')](function(){_0x3c3f73['status'](0xcc)[_0x3fe1('0x17')]();})[_0x3fe1('0x4b')](handleError(_0x3c3f73,null));};