46abeccc32726e7ac159e14be221a8d85de84730
[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 _0x754a=['reject','save','update','then','destroy','end','error','stack','index','map','SquareRecording','rawAttributes','fieldName','type','key','model','name','query','keys','filters','attributes','intersection','fields','length','hasOwnProperty','nolimit','order','sort','where','pick','filter','VIRTUAL','merge','options','include','findAll','rows','show','params','includeAll','find','catch','create','body','download','uniqueid','savePath','filename','format','existsSync','decryptFile','recording','Sequelize','ValidationError','SquareRecording\x20not\x20found','extname','unlink','message','send','Not\x20found','Entity\x20not\x20found','cancellazione\x20fisica\x20documento\x20%s','isNil','info','File:\x20\x22','\x22\x20trovato\x20eseguo\x20la\x20cancellazione','unlinkSync','.cypher','eml-format','zip-dir','fast-json-patch','moment','bluebird','path','sox','to-csv','squel','jsforce','querystring','papaparse','ioredis','../../components/auth/service','../../components/parsers/qs','../../components/parsers/advancedSearch','../../config/logger','../../config/utils','../../config/environment','../../config/license/util','sendStatus','status','count','offset','limit','set','json','apply'];(function(_0x346df7,_0x3404ad){var _0x504fd8=function(_0x5874e6){while(--_0x5874e6){_0x346df7['push'](_0x346df7['shift']());}};_0x504fd8(++_0x3404ad);}(_0x754a,0x1c4));var _0xa754=function(_0x257642,_0x270a80){_0x257642=_0x257642-0x0;var _0x3d813b=_0x754a[_0x257642];return _0x3d813b;};'use strict';var emlformat=require(_0xa754('0x0'));var rimraf=require('rimraf');var zipdir=require(_0xa754('0x1'));var jsonpatch=require(_0xa754('0x2'));var rp=require('request-promise');var moment=require(_0xa754('0x3'));var BPromise=require(_0xa754('0x4'));var Mustache=require('mustache');var util=require('util');var path=require(_0xa754('0x5'));var sox=require(_0xa754('0x6'));var csv=require(_0xa754('0x7'));var ejs=require('ejs');var fs=require('fs');var fs_extra=require('fs-extra');var _=require('lodash');var squel=require(_0xa754('0x8'));var crypto=require('crypto');var jsforce=require(_0xa754('0x9'));var deskjs=require('desk.js');var toCsv=require(_0xa754('0x7'));var querystring=require(_0xa754('0xa'));var Papa=require(_0xa754('0xb'));var Redis=require(_0xa754('0xc'));var authService=require(_0xa754('0xd'));var qs=require(_0xa754('0xe'));var as=require(_0xa754('0xf'));var hardwareService=require('../../config/license/hardware');var logger=require(_0xa754('0x10'))('api');var utils=require(_0xa754('0x11'));var config=require(_0xa754('0x12'));var licenseUtil=require(_0xa754('0x13'));var db=require('../../mysqldb')['db'];function respondWithStatusCode(_0x9a722a,_0xe5d803){_0xe5d803=_0xe5d803||0xcc;return function(_0x2dd1c1){if(_0x2dd1c1){return _0x9a722a[_0xa754('0x14')](_0xe5d803);}return _0x9a722a['status'](_0xe5d803)['end']();};}function respondWithResult(_0x4ee7ee,_0x1296b6){_0x1296b6=_0x1296b6||0xc8;return function(_0x46d00e){if(_0x46d00e){return _0x4ee7ee[_0xa754('0x15')](_0x1296b6)['json'](_0x46d00e);}};}function respondWithFilteredResult(_0x563f48,_0xe68ea1){return function(_0x28ab4d){if(_0x28ab4d){var _0xcf6a2d=_0x28ab4d[_0xa754('0x16')],_0x2ea9a6=_0xe68ea1[_0xa754('0x17')],_0x413e27=_0xe68ea1[_0xa754('0x17')]+_0xe68ea1[_0xa754('0x18')],_0x33f5f2;if(_0x413e27>=_0xcf6a2d){_0x413e27=_0xcf6a2d;_0x33f5f2=0xc8;}else{_0x33f5f2=0xce;}_0x563f48[_0xa754('0x15')](_0x33f5f2);return _0x563f48[_0xa754('0x19')]('Content-Range',_0x2ea9a6+'-'+_0x413e27+'/'+_0xcf6a2d)[_0xa754('0x1a')](_0x28ab4d);}return null;};}function patchUpdates(_0x268773){return function(_0xbe34db){try{jsonpatch[_0xa754('0x1b')](_0xbe34db,_0x268773,!![]);}catch(_0x57496f){return BPromise[_0xa754('0x1c')](_0x57496f);}return _0xbe34db[_0xa754('0x1d')]();};}function saveUpdates(_0x418bca,_0x55d264){return function(_0x1dfc92){if(_0x1dfc92){return _0x1dfc92[_0xa754('0x1e')](_0x418bca)[_0xa754('0x1f')](function(_0xf6225a){return _0xf6225a;});}return null;};}function removeEntity(_0xadda99,_0x174a21){return function(_0x3b272a){if(_0x3b272a){return _0x3b272a[_0xa754('0x20')]()['then'](function(){_0xadda99['status'](0xcc)[_0xa754('0x21')]();});}};}function handleEntityNotFound(_0xb2517e,_0x57bb09){return function(_0x67bc43){if(!_0x67bc43){_0xb2517e[_0xa754('0x14')](0x194);}return _0x67bc43;};}function handleError(_0x21cad0,_0x51ae2f){_0x51ae2f=_0x51ae2f||0x1f4;return function(_0x2b7c62){logger[_0xa754('0x22')](_0x2b7c62[_0xa754('0x23')]);if(_0x2b7c62['name']){delete _0x2b7c62['name'];}_0x21cad0['status'](_0x51ae2f)['send'](_0x2b7c62);};}exports[_0xa754('0x24')]=function(_0x33aa3f,_0x4b553b){var _0x59700d={},_0x22e575={},_0x3a7732={'count':0x0,'rows':[]};var _0x215180=_[_0xa754('0x25')](db[_0xa754('0x26')][_0xa754('0x27')],function(_0x47d44a){return{'name':_0x47d44a[_0xa754('0x28')],'type':_0x47d44a[_0xa754('0x29')][_0xa754('0x2a')]};});_0x22e575[_0xa754('0x2b')]=_['map'](_0x215180,_0xa754('0x2c'));_0x22e575[_0xa754('0x2d')]=_[_0xa754('0x2e')](_0x33aa3f[_0xa754('0x2d')]);_0x22e575[_0xa754('0x2f')]=_['intersection'](_0x22e575[_0xa754('0x2b')],_0x22e575[_0xa754('0x2d')]);_0x59700d[_0xa754('0x30')]=_[_0xa754('0x31')](_0x22e575[_0xa754('0x2b')],qs[_0xa754('0x32')](_0x33aa3f[_0xa754('0x2d')][_0xa754('0x32')]));_0x59700d[_0xa754('0x30')]=_0x59700d['attributes'][_0xa754('0x33')]?_0x59700d[_0xa754('0x30')]:_0x22e575['model'];if(!_0x33aa3f[_0xa754('0x2d')][_0xa754('0x34')](_0xa754('0x35'))){_0x59700d[_0xa754('0x18')]=qs['limit'](_0x33aa3f[_0xa754('0x2d')][_0xa754('0x18')]);_0x59700d[_0xa754('0x17')]=qs[_0xa754('0x17')](_0x33aa3f[_0xa754('0x2d')]['offset']);}_0x59700d[_0xa754('0x36')]=qs[_0xa754('0x37')](_0x33aa3f[_0xa754('0x2d')][_0xa754('0x37')]);_0x59700d[_0xa754('0x38')]=qs[_0xa754('0x2f')](_[_0xa754('0x39')](_0x33aa3f[_0xa754('0x2d')],_0x22e575[_0xa754('0x2f')]),_0x215180);if(_0x33aa3f[_0xa754('0x2d')][_0xa754('0x3a')]){_0x59700d['where']=_['merge'](_0x59700d[_0xa754('0x38')],{'$or':_[_0xa754('0x25')](_0x215180,function(_0x24e4fa){if(_0x24e4fa['type']!==_0xa754('0x3b')){var _0x4f6b32={};_0x4f6b32[_0x24e4fa[_0xa754('0x2c')]]={'$like':'%'+_0x33aa3f[_0xa754('0x2d')]['filter']+'%'};return _0x4f6b32;}})});}_0x59700d=_[_0xa754('0x3c')]({},_0x59700d,_0x33aa3f[_0xa754('0x3d')]);var _0x58f537={'where':_0x59700d['where']};return db[_0xa754('0x26')]['count'](_0x58f537)[_0xa754('0x1f')](function(_0x89d9c9){_0x3a7732[_0xa754('0x16')]=_0x89d9c9;if(_0x33aa3f[_0xa754('0x2d')]['includeAll']){_0x59700d[_0xa754('0x3e')]=[{'all':!![]}];}return db['SquareRecording'][_0xa754('0x3f')](_0x59700d);})[_0xa754('0x1f')](function(_0x3c3501){_0x3a7732[_0xa754('0x40')]=_0x3c3501;return _0x3a7732;})['then'](respondWithFilteredResult(_0x4b553b,_0x59700d))['catch'](handleError(_0x4b553b,null));};exports[_0xa754('0x41')]=function(_0xb08068,_0x370c9f){var _0x57b4a4={'raw':!![],'where':{'id':_0xb08068[_0xa754('0x42')]['id']}},_0x2b20ad={};_0x2b20ad[_0xa754('0x2b')]=_[_0xa754('0x2e')](db['SquareRecording'][_0xa754('0x27')]);_0x2b20ad[_0xa754('0x2d')]=_[_0xa754('0x2e')](_0xb08068[_0xa754('0x2d')]);_0x2b20ad[_0xa754('0x2f')]=_['intersection'](_0x2b20ad['model'],_0x2b20ad[_0xa754('0x2d')]);_0x57b4a4['attributes']=_[_0xa754('0x31')](_0x2b20ad['model'],qs[_0xa754('0x32')](_0xb08068[_0xa754('0x2d')][_0xa754('0x32')]));_0x57b4a4[_0xa754('0x30')]=_0x57b4a4['attributes'][_0xa754('0x33')]?_0x57b4a4[_0xa754('0x30')]:_0x2b20ad[_0xa754('0x2b')];if(_0xb08068[_0xa754('0x2d')][_0xa754('0x43')]){_0x57b4a4[_0xa754('0x3e')]=[{'all':!![]}];}_0x57b4a4=_[_0xa754('0x3c')]({},_0x57b4a4,_0xb08068['options']);return db[_0xa754('0x26')][_0xa754('0x44')](_0x57b4a4)['then'](handleEntityNotFound(_0x370c9f,null))[_0xa754('0x1f')](respondWithResult(_0x370c9f,null))[_0xa754('0x45')](handleError(_0x370c9f,null));};exports[_0xa754('0x46')]=function(_0x282d90,_0x46db90){return db['SquareRecording'][_0xa754('0x46')](_0x282d90[_0xa754('0x47')],{})[_0xa754('0x1f')](respondWithResult(_0x46db90,0xc9))[_0xa754('0x45')](handleError(_0x46db90,null));};exports[_0xa754('0x1e')]=function(_0x3a5d1a,_0x4ca68b){if(_0x3a5d1a[_0xa754('0x47')]['id']){delete _0x3a5d1a['body']['id'];}return db['SquareRecording'][_0xa754('0x44')]({'where':{'id':_0x3a5d1a['params']['id']}})['then'](handleEntityNotFound(_0x4ca68b,null))[_0xa754('0x1f')](saveUpdates(_0x3a5d1a[_0xa754('0x47')],null))[_0xa754('0x1f')](respondWithResult(_0x4ca68b,null))['catch'](handleError(_0x4ca68b,null));};exports[_0xa754('0x48')]=function(_0x5a453e,_0x2bc2ed,_0xbeabb3){var _0xae7cfe=require('../../components/encryptor');var _0x4da3f4=![];var _0x2ed98e={};if(_0x5a453e[_0xa754('0x2d')][_0xa754('0x29')]&&_0x5a453e[_0xa754('0x2d')][_0xa754('0x29')]===_0xa754('0x49')){_0x2ed98e[_0xa754('0x49')]=_0x5a453e[_0xa754('0x42')]['id'];}else{_0x2ed98e['id']=_0x5a453e[_0xa754('0x42')]['id'];}return db[_0xa754('0x26')][_0xa754('0x44')]({'where':_0x2ed98e,'attributes':['id',_0xa754('0x4a'),_0xa754('0x4b')],'raw':!![]})['then'](handleEntityNotFound(_0x2bc2ed,null))[_0xa754('0x1f')](function(_0x2ff504){if(_0x2ff504){var _0x379806=_0x2ff504['savePath'];var _0x4ac75b=util[_0xa754('0x4c')]('%s.cypher',_0x379806);if(fs[_0xa754('0x4d')](_0x4ac75b)){_0x4da3f4=!![];return _0xae7cfe[_0xa754('0x4e')](_0x4ac75b,_0x379806,config['secrets'][_0xa754('0x4f')])[_0xa754('0x1f')](function(){return _0x2ff504;});}return _0x2ff504;}})[_0xa754('0x1f')](function(_0x1ea4ba){if(_0x1ea4ba){var _0x25ae7c=_0x1ea4ba['savePath'];if(!fs[_0xa754('0x4d')](_0x25ae7c)){throw new db[(_0xa754('0x50'))][(_0xa754('0x51'))](_0xa754('0x52'));}if(_0x1ea4ba[_0xa754('0x4b')]){return _0x2bc2ed[_0xa754('0x48')](_0x25ae7c,_0x1ea4ba[_0xa754('0x4b')]+path[_0xa754('0x53')](_0x25ae7c),function(){if(_0x4da3f4){fs[_0xa754('0x54')](_0x25ae7c);}});}else{return _0x2bc2ed[_0xa754('0x48')](_0x25ae7c,function(_0x5ef8b3){if(_0x4da3f4){fs[_0xa754('0x54')](_0x25ae7c);}});}}})[_0xa754('0x45')](function(_0x568474){if(_0x568474[_0xa754('0x55')]==='SquareRecording\x20not\x20found'){_0x2bc2ed['status'](0x194)[_0xa754('0x56')](_0xa754('0x57'));}else{return handleError(_0x2bc2ed,null);}});};exports['destroy']=function(_0x53db38,_0x3594dc){return db[_0xa754('0x26')][_0xa754('0x44')]({'where':{'id':_0x53db38[_0xa754('0x42')]['id']}})['then'](function(_0x454b57){if(!_0x454b57)throw new ReferenceError(_0xa754('0x58'));return _0x454b57;})[_0xa754('0x1f')](function(_0x217a22){var _0x4a3469=_0x217a22[_0xa754('0x4a')];logger['info'](_0xa754('0x59'),_0x4a3469);if(!_[_0xa754('0x5a')](_0x217a22[_0xa754('0x4a')])&&fs[_0xa754('0x4d')](_0x4a3469)){logger[_0xa754('0x5b')](_0xa754('0x5c')+_0x4a3469+_0xa754('0x5d'));fs[_0xa754('0x5e')](_0x4a3469);}_0x4a3469=_0x4a3469+_0xa754('0x5f');if(!_['isNil'](_0x217a22[_0xa754('0x4a')])&&fs[_0xa754('0x4d')](_0x4a3469)){logger['info'](_0xa754('0x5c')+_0x4a3469+_0xa754('0x5d'));fs[_0xa754('0x5e')](_0x4a3469);}return _0x217a22;})[_0xa754('0x1f')](function(_0x45aef3){if(!_0x45aef3)throw new InternalError();return _0x45aef3['destroy']();})[_0xa754('0x1f')](function(){_0x3594dc[_0xa754('0x15')](0xcc)[_0xa754('0x21')]();})['catch'](handleError(_0x3594dc,null));};