Built motion from commit f9526609.|2.6.29
[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 _0x0df8=['SquareRecording','rawAttributes','fieldName','type','model','query','keys','intersection','fields','attributes','length','hasOwnProperty','nolimit','order','sort','where','filters','filter','VIRTUAL','then','include','findAll','catch','show','includeAll','merge','options','find','create','body','params','download','../../components/encryptor','uniqueid','filename','savePath','format','existsSync','decryptFile','secrets','recording','ValidationError','extname','unlink','Not\x20found','isNil','Entity\x20not\x20found','cancellazione\x20fisica\x20documento\x20%s','info','\x22\x20trovato\x20eseguo\x20la\x20cancellazione','.cypher','eml-format','zip-dir','fast-json-patch','request-promise','moment','bluebird','mustache','sox','to-csv','jsforce','desk.js','querystring','papaparse','../../components/auth/service','../../components/parsers/qs','../../config/license/hardware','../../config/logger','../../config/utils','../../config/license/util','../../mysqldb','status','json','offset','limit','undefined','count','set','Content-Range','reject','save','update','destroy','end','sendStatus','error','stack','name','send','map'];(function(_0x403115,_0x2d6d03){var _0x596ef3=function(_0x145d97){while(--_0x145d97){_0x403115['push'](_0x403115['shift']());}};_0x596ef3(++_0x2d6d03);}(_0x0df8,0x8d));var _0x80df=function(_0x9dde0a,_0x1fb686){_0x9dde0a=_0x9dde0a-0x0;var _0x33ae5b=_0x0df8[_0x9dde0a];return _0x33ae5b;};'use strict';var emlformat=require(_0x80df('0x0'));var rimraf=require('rimraf');var zipdir=require(_0x80df('0x1'));var jsonpatch=require(_0x80df('0x2'));var rp=require(_0x80df('0x3'));var moment=require(_0x80df('0x4'));var BPromise=require(_0x80df('0x5'));var Mustache=require(_0x80df('0x6'));var util=require('util');var path=require('path');var sox=require(_0x80df('0x7'));var csv=require(_0x80df('0x8'));var ejs=require('ejs');var fs=require('fs');var fs_extra=require('fs-extra');var _=require('lodash');var squel=require('squel');var crypto=require('crypto');var jsforce=require(_0x80df('0x9'));var deskjs=require(_0x80df('0xa'));var toCsv=require(_0x80df('0x8'));var querystring=require(_0x80df('0xb'));var Papa=require(_0x80df('0xc'));var Redis=require('ioredis');var authService=require(_0x80df('0xd'));var qs=require(_0x80df('0xe'));var as=require('../../components/parsers/advancedSearch');var hardwareService=require(_0x80df('0xf'));var logger=require(_0x80df('0x10'))('api');var utils=require(_0x80df('0x11'));var config=require('../../config/environment');var licenseUtil=require(_0x80df('0x12'));var db=require(_0x80df('0x13'))['db'];function respondWithStatusCode(_0x3ae6b5,_0x42b8c2){_0x42b8c2=_0x42b8c2||0xcc;return function(_0x8acb47){if(_0x8acb47){return _0x3ae6b5['sendStatus'](_0x42b8c2);}return _0x3ae6b5[_0x80df('0x14')](_0x42b8c2)['end']();};}function respondWithResult(_0x4a955b,_0x28a390){_0x28a390=_0x28a390||0xc8;return function(_0x2506f9){if(_0x2506f9){return _0x4a955b[_0x80df('0x14')](_0x28a390)[_0x80df('0x15')](_0x2506f9);}};}function respondWithFilteredResult(_0x3cc7b4,_0x2a5397){return function(_0x1a26b0){if(_0x1a26b0){var _0x496933=typeof _0x2a5397[_0x80df('0x16')]==='undefined'&&typeof _0x2a5397[_0x80df('0x17')]===_0x80df('0x18');var _0x12d585=_0x1a26b0[_0x80df('0x19')];var _0x235a38=_0x496933?0x0:_0x2a5397[_0x80df('0x16')];var _0x14fbf8=_0x496933?_0x1a26b0[_0x80df('0x19')]:_0x2a5397[_0x80df('0x16')]+_0x2a5397[_0x80df('0x17')];var _0x14c1b0;if(_0x14fbf8>=_0x12d585){_0x14fbf8=_0x12d585;_0x14c1b0=0xc8;}else{_0x14c1b0=0xce;}_0x3cc7b4[_0x80df('0x14')](_0x14c1b0);return _0x3cc7b4[_0x80df('0x1a')](_0x80df('0x1b'),_0x235a38+'-'+_0x14fbf8+'/'+_0x12d585)[_0x80df('0x15')](_0x1a26b0);}return null;};}function patchUpdates(_0x2a4e7f){return function(_0x1c5652){try{jsonpatch['apply'](_0x1c5652,_0x2a4e7f,!![]);}catch(_0x160970){return BPromise[_0x80df('0x1c')](_0x160970);}return _0x1c5652[_0x80df('0x1d')]();};}function saveUpdates(_0x372c77,_0x18092b){return function(_0x5f433c){if(_0x5f433c){return _0x5f433c[_0x80df('0x1e')](_0x372c77)['then'](function(_0x135a08){return _0x135a08;});}return null;};}function removeEntity(_0x42d734,_0x5e08ab){return function(_0x41cf54){if(_0x41cf54){return _0x41cf54[_0x80df('0x1f')]()['then'](function(){_0x42d734[_0x80df('0x14')](0xcc)[_0x80df('0x20')]();});}};}function handleEntityNotFound(_0x486eb9,_0x2bbb0d){return function(_0x5a00dd){if(!_0x5a00dd){_0x486eb9[_0x80df('0x21')](0x194);}return _0x5a00dd;};}function handleError(_0x428d3c,_0x493d60){_0x493d60=_0x493d60||0x1f4;return function(_0x97d033){logger[_0x80df('0x22')](_0x97d033[_0x80df('0x23')]);if(_0x97d033[_0x80df('0x24')]){delete _0x97d033[_0x80df('0x24')];}_0x428d3c[_0x80df('0x14')](_0x493d60)[_0x80df('0x25')](_0x97d033);};}exports['index']=function(_0x31c4e3,_0x3ecf9c){var _0x80d202={},_0x3083c9={},_0x10cab1={'count':0x0,'rows':[]};var _0x48c709=_[_0x80df('0x26')](db[_0x80df('0x27')][_0x80df('0x28')],function(_0x3368db){return{'name':_0x3368db[_0x80df('0x29')],'type':_0x3368db[_0x80df('0x2a')]['key']};});_0x3083c9[_0x80df('0x2b')]=_['map'](_0x48c709,_0x80df('0x24'));_0x3083c9[_0x80df('0x2c')]=_[_0x80df('0x2d')](_0x31c4e3[_0x80df('0x2c')]);_0x3083c9['filters']=_[_0x80df('0x2e')](_0x3083c9[_0x80df('0x2b')],_0x3083c9[_0x80df('0x2c')]);_0x80d202['attributes']=_[_0x80df('0x2e')](_0x3083c9['model'],qs[_0x80df('0x2f')](_0x31c4e3['query']['fields']));_0x80d202[_0x80df('0x30')]=_0x80d202[_0x80df('0x30')][_0x80df('0x31')]?_0x80d202[_0x80df('0x30')]:_0x3083c9[_0x80df('0x2b')];if(!_0x31c4e3[_0x80df('0x2c')][_0x80df('0x32')](_0x80df('0x33'))){_0x80d202['limit']=qs[_0x80df('0x17')](_0x31c4e3[_0x80df('0x2c')][_0x80df('0x17')]);_0x80d202[_0x80df('0x16')]=qs['offset'](_0x31c4e3[_0x80df('0x2c')][_0x80df('0x16')]);}_0x80d202[_0x80df('0x34')]=qs[_0x80df('0x35')](_0x31c4e3[_0x80df('0x2c')][_0x80df('0x35')]);_0x80d202[_0x80df('0x36')]=qs[_0x80df('0x37')](_['pick'](_0x31c4e3['query'],_0x3083c9['filters']),_0x48c709);if(_0x31c4e3[_0x80df('0x2c')][_0x80df('0x38')]){_0x80d202[_0x80df('0x36')]=_['merge'](_0x80d202[_0x80df('0x36')],{'$or':_[_0x80df('0x26')](_0x48c709,function(_0x59b64b){if(_0x59b64b['type']!==_0x80df('0x39')){var _0x5cc1b6={};_0x5cc1b6[_0x59b64b[_0x80df('0x24')]]={'$like':'%'+_0x31c4e3[_0x80df('0x2c')][_0x80df('0x38')]+'%'};return _0x5cc1b6;}})});}_0x80d202=_['merge']({},_0x80d202,_0x31c4e3['options']);var _0x4148e5={'where':_0x80d202['where']};return db['SquareRecording'][_0x80df('0x19')](_0x4148e5)[_0x80df('0x3a')](function(_0x267ec9){_0x10cab1[_0x80df('0x19')]=_0x267ec9;if(_0x31c4e3['query']['includeAll']){_0x80d202[_0x80df('0x3b')]=[{'all':!![]}];}return db['SquareRecording'][_0x80df('0x3c')](_0x80d202);})[_0x80df('0x3a')](function(_0x1bf94b){_0x10cab1['rows']=_0x1bf94b;return _0x10cab1;})['then'](respondWithFilteredResult(_0x3ecf9c,_0x80d202))[_0x80df('0x3d')](handleError(_0x3ecf9c,null));};exports[_0x80df('0x3e')]=function(_0x12cced,_0x3325d8){var _0x280e3e={'raw':!![],'where':{'id':_0x12cced['params']['id']}},_0x9bdf95={};_0x9bdf95[_0x80df('0x2b')]=_[_0x80df('0x2d')](db[_0x80df('0x27')][_0x80df('0x28')]);_0x9bdf95[_0x80df('0x2c')]=_['keys'](_0x12cced['query']);_0x9bdf95[_0x80df('0x37')]=_[_0x80df('0x2e')](_0x9bdf95[_0x80df('0x2b')],_0x9bdf95[_0x80df('0x2c')]);_0x280e3e['attributes']=_[_0x80df('0x2e')](_0x9bdf95[_0x80df('0x2b')],qs['fields'](_0x12cced[_0x80df('0x2c')]['fields']));_0x280e3e[_0x80df('0x30')]=_0x280e3e[_0x80df('0x30')][_0x80df('0x31')]?_0x280e3e['attributes']:_0x9bdf95[_0x80df('0x2b')];if(_0x12cced[_0x80df('0x2c')][_0x80df('0x3f')]){_0x280e3e[_0x80df('0x3b')]=[{'all':!![]}];}_0x280e3e=_[_0x80df('0x40')]({},_0x280e3e,_0x12cced[_0x80df('0x41')]);return db[_0x80df('0x27')][_0x80df('0x42')](_0x280e3e)['then'](handleEntityNotFound(_0x3325d8,null))['then'](respondWithResult(_0x3325d8,null))[_0x80df('0x3d')](handleError(_0x3325d8,null));};exports[_0x80df('0x43')]=function(_0x4051b8,_0x197a5c){return db[_0x80df('0x27')][_0x80df('0x43')](_0x4051b8['body'],{})[_0x80df('0x3a')](respondWithResult(_0x197a5c,0xc9))['catch'](handleError(_0x197a5c,null));};exports[_0x80df('0x1e')]=function(_0x5addf5,_0x54e38e){if(_0x5addf5['body']['id']){delete _0x5addf5[_0x80df('0x44')]['id'];}return db[_0x80df('0x27')][_0x80df('0x42')]({'where':{'id':_0x5addf5[_0x80df('0x45')]['id']}})[_0x80df('0x3a')](handleEntityNotFound(_0x54e38e,null))[_0x80df('0x3a')](saveUpdates(_0x5addf5[_0x80df('0x44')],null))[_0x80df('0x3a')](respondWithResult(_0x54e38e,null))[_0x80df('0x3d')](handleError(_0x54e38e,null));};exports[_0x80df('0x46')]=function(_0x119430,_0x584049,_0x2fb18f){var _0x4ad4b9=require(_0x80df('0x47'));var _0x5c6e3b=![];var _0x1d9c4e={};if(_0x119430[_0x80df('0x2c')]['type']&&_0x119430[_0x80df('0x2c')][_0x80df('0x2a')]===_0x80df('0x48')){_0x1d9c4e['uniqueid']=_0x119430[_0x80df('0x45')]['id'];}else{_0x1d9c4e['id']=_0x119430[_0x80df('0x45')]['id'];}return db[_0x80df('0x27')]['find']({'where':_0x1d9c4e,'attributes':['id','savePath',_0x80df('0x49')],'raw':!![]})[_0x80df('0x3a')](handleEntityNotFound(_0x584049,null))[_0x80df('0x3a')](function(_0x99ca59){if(_0x99ca59){var _0xa0b5a0=_0x99ca59[_0x80df('0x4a')];var _0x217511=util[_0x80df('0x4b')]('%s.cypher',_0xa0b5a0);if(fs[_0x80df('0x4c')](_0x217511)){_0x5c6e3b=!![];return _0x4ad4b9[_0x80df('0x4d')](_0x217511,_0xa0b5a0,config[_0x80df('0x4e')][_0x80df('0x4f')])[_0x80df('0x3a')](function(){return _0x99ca59;});}return _0x99ca59;}})[_0x80df('0x3a')](function(_0x43a783){if(_0x43a783){var _0x26e4a9=_0x43a783['savePath'];if(!fs[_0x80df('0x4c')](_0x26e4a9)){throw new db['Sequelize'][(_0x80df('0x50'))]('SquareRecording\x20not\x20found');}if(_0x43a783[_0x80df('0x49')]){return _0x584049['download'](_0x26e4a9,_0x43a783[_0x80df('0x49')]+path[_0x80df('0x51')](_0x26e4a9),function(){if(_0x5c6e3b){fs[_0x80df('0x52')](_0x26e4a9);}});}else{return _0x584049[_0x80df('0x46')](_0x26e4a9,function(_0x930a23){if(_0x5c6e3b){fs[_0x80df('0x52')](_0x26e4a9);}});}}})[_0x80df('0x3d')](function(_0x2a5b39){if(_0x2a5b39['message']==='SquareRecording\x20not\x20found'){_0x584049[_0x80df('0x14')](0x194)[_0x80df('0x25')](_0x80df('0x53'));}else{return handleError(_0x584049,null);}});};exports['destroy']=function(_0x4dd5dc,_0x27effd){return db[_0x80df('0x27')][_0x80df('0x42')]({'where':{'id':_0x4dd5dc[_0x80df('0x45')]['id']}})['then'](function(_0x2493d9){if(_[_0x80df('0x54')](_0x2493d9)){throw new ReferenceError(_0x80df('0x55'));}return _0x2493d9;})[_0x80df('0x3a')](function(_0x3b0748){var _0x5d4ae3=_0x3b0748[_0x80df('0x4a')];logger['info'](_0x80df('0x56'),_0x5d4ae3);if(!_[_0x80df('0x54')](_0x3b0748[_0x80df('0x4a')])&&fs[_0x80df('0x4c')](_0x5d4ae3)){logger[_0x80df('0x57')]('File:\x20\x22'+_0x5d4ae3+_0x80df('0x58'));fs['unlinkSync'](_0x5d4ae3);}_0x5d4ae3=_0x5d4ae3+_0x80df('0x59');if(!_[_0x80df('0x54')](_0x3b0748[_0x80df('0x4a')])&&fs[_0x80df('0x4c')](_0x5d4ae3)){logger[_0x80df('0x57')]('File:\x20\x22'+_0x5d4ae3+'\x22\x20trovato\x20eseguo\x20la\x20cancellazione');fs['unlinkSync'](_0x5d4ae3);}return _0x3b0748;})[_0x80df('0x3a')](function(_0x1d2ee7){if(!_0x1d2ee7)throw new InternalError();return _0x1d2ee7[_0x80df('0x1f')]();})[_0x80df('0x3a')](function(){_0x27effd['status'](0xcc)[_0x80df('0x20')]();})[_0x80df('0x3d')](handleError(_0x27effd,null));};