733713d9a2072e81417d774a1f13422878282b42
[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 _0x2c99=['destroy','Entity\x20not\x20found','info','cancellazione\x20fisica\x20documento\x20%s','isNil','File:\x20\x22','\x22\x20trovato\x20eseguo\x20la\x20cancellazione','unlinkSync','.cypher','eml-format','fast-json-patch','bluebird','mustache','util','ejs','lodash','squel','crypto','desk.js','to-csv','querystring','papaparse','ioredis','../../components/auth/service','../../components/parsers/qs','../../components/parsers/advancedSearch','../../config/license/hardware','../../config/logger','../../config/utils','../../mysqldb','sendStatus','status','end','json','undefined','limit','count','offset','Content-Range','apply','save','then','error','stack','name','send','map','SquareRecording','rawAttributes','type','key','model','keys','query','intersection','fields','attributes','hasOwnProperty','nolimit','order','sort','where','filters','pick','VIRTUAL','filter','merge','options','includeAll','include','findAll','rows','catch','show','params','length','create','body','../../components/encryptor','uniqueid','find','savePath','%s.cypher','existsSync','secrets','ValidationError','SquareRecording\x20not\x20found','extname','unlink','download'];(function(_0x1e6984,_0xf578b9){var _0x41f1c0=function(_0x37c417){while(--_0x37c417){_0x1e6984['push'](_0x1e6984['shift']());}};_0x41f1c0(++_0xf578b9);}(_0x2c99,0x171));var _0x92c9=function(_0x36884e,_0x48008f){_0x36884e=_0x36884e-0x0;var _0x1cc367=_0x2c99[_0x36884e];return _0x1cc367;};'use strict';var emlformat=require(_0x92c9('0x0'));var rimraf=require('rimraf');var zipdir=require('zip-dir');var jsonpatch=require(_0x92c9('0x1'));var rp=require('request-promise');var moment=require('moment');var BPromise=require(_0x92c9('0x2'));var Mustache=require(_0x92c9('0x3'));var util=require(_0x92c9('0x4'));var path=require('path');var sox=require('sox');var csv=require('to-csv');var ejs=require(_0x92c9('0x5'));var fs=require('fs');var fs_extra=require('fs-extra');var _=require(_0x92c9('0x6'));var squel=require(_0x92c9('0x7'));var crypto=require(_0x92c9('0x8'));var jsforce=require('jsforce');var deskjs=require(_0x92c9('0x9'));var toCsv=require(_0x92c9('0xa'));var querystring=require(_0x92c9('0xb'));var Papa=require(_0x92c9('0xc'));var Redis=require(_0x92c9('0xd'));var authService=require(_0x92c9('0xe'));var qs=require(_0x92c9('0xf'));var as=require(_0x92c9('0x10'));var hardwareService=require(_0x92c9('0x11'));var logger=require(_0x92c9('0x12'))('api');var utils=require(_0x92c9('0x13'));var config=require('../../config/environment');var licenseUtil=require('../../config/license/util');var db=require(_0x92c9('0x14'))['db'];function respondWithStatusCode(_0xd7b3e,_0xab6057){_0xab6057=_0xab6057||0xcc;return function(_0x504405){if(_0x504405){return _0xd7b3e[_0x92c9('0x15')](_0xab6057);}return _0xd7b3e[_0x92c9('0x16')](_0xab6057)[_0x92c9('0x17')]();};}function respondWithResult(_0x2f5793,_0x6dce87){_0x6dce87=_0x6dce87||0xc8;return function(_0x530773){if(_0x530773){return _0x2f5793[_0x92c9('0x16')](_0x6dce87)[_0x92c9('0x18')](_0x530773);}};}function respondWithFilteredResult(_0x406f93,_0x3db18c){return function(_0x1efb97){if(_0x1efb97){var _0xcc737a=typeof _0x3db18c['offset']===_0x92c9('0x19')&&typeof _0x3db18c[_0x92c9('0x1a')]===_0x92c9('0x19');var _0x2206ec=_0x1efb97[_0x92c9('0x1b')];var _0x5767b3=_0xcc737a?0x0:_0x3db18c[_0x92c9('0x1c')];var _0x101332=_0xcc737a?_0x1efb97[_0x92c9('0x1b')]:_0x3db18c[_0x92c9('0x1c')]+_0x3db18c[_0x92c9('0x1a')];var _0x2d4f43;if(_0x101332>=_0x2206ec){_0x101332=_0x2206ec;_0x2d4f43=0xc8;}else{_0x2d4f43=0xce;}_0x406f93['status'](_0x2d4f43);return _0x406f93['set'](_0x92c9('0x1d'),_0x5767b3+'-'+_0x101332+'/'+_0x2206ec)[_0x92c9('0x18')](_0x1efb97);}return null;};}function patchUpdates(_0x2f22a7){return function(_0x40f943){try{jsonpatch[_0x92c9('0x1e')](_0x40f943,_0x2f22a7,!![]);}catch(_0x54dc8c){return BPromise['reject'](_0x54dc8c);}return _0x40f943[_0x92c9('0x1f')]();};}function saveUpdates(_0x29b5ee,_0xffa6a){return function(_0xaa3d65){if(_0xaa3d65){return _0xaa3d65['update'](_0x29b5ee)[_0x92c9('0x20')](function(_0x13cd99){return _0x13cd99;});}return null;};}function removeEntity(_0x1ebac7,_0x428c7b){return function(_0x15bee0){if(_0x15bee0){return _0x15bee0['destroy']()[_0x92c9('0x20')](function(){_0x1ebac7[_0x92c9('0x16')](0xcc)['end']();});}};}function handleEntityNotFound(_0x5509db,_0x51d751){return function(_0x5624b6){if(!_0x5624b6){_0x5509db['sendStatus'](0x194);}return _0x5624b6;};}function handleError(_0xc80142,_0x431290){_0x431290=_0x431290||0x1f4;return function(_0x4dc079){logger[_0x92c9('0x21')](_0x4dc079[_0x92c9('0x22')]);if(_0x4dc079[_0x92c9('0x23')]){delete _0x4dc079['name'];}_0xc80142['status'](_0x431290)[_0x92c9('0x24')](_0x4dc079);};}exports['index']=function(_0x4f083d,_0x59ce0c){var _0x158989={},_0x3417d6={},_0x4a661b={'count':0x0,'rows':[]};var _0x39863a=_[_0x92c9('0x25')](db[_0x92c9('0x26')][_0x92c9('0x27')],function(_0x56f4e0){return{'name':_0x56f4e0['fieldName'],'type':_0x56f4e0[_0x92c9('0x28')][_0x92c9('0x29')]};});_0x3417d6[_0x92c9('0x2a')]=_[_0x92c9('0x25')](_0x39863a,'name');_0x3417d6['query']=_[_0x92c9('0x2b')](_0x4f083d[_0x92c9('0x2c')]);_0x3417d6['filters']=_[_0x92c9('0x2d')](_0x3417d6[_0x92c9('0x2a')],_0x3417d6[_0x92c9('0x2c')]);_0x158989['attributes']=_['intersection'](_0x3417d6[_0x92c9('0x2a')],qs['fields'](_0x4f083d['query'][_0x92c9('0x2e')]));_0x158989['attributes']=_0x158989[_0x92c9('0x2f')]['length']?_0x158989[_0x92c9('0x2f')]:_0x3417d6['model'];if(!_0x4f083d[_0x92c9('0x2c')][_0x92c9('0x30')](_0x92c9('0x31'))){_0x158989[_0x92c9('0x1a')]=qs[_0x92c9('0x1a')](_0x4f083d['query'][_0x92c9('0x1a')]);_0x158989[_0x92c9('0x1c')]=qs[_0x92c9('0x1c')](_0x4f083d[_0x92c9('0x2c')][_0x92c9('0x1c')]);}_0x158989[_0x92c9('0x32')]=qs[_0x92c9('0x33')](_0x4f083d[_0x92c9('0x2c')][_0x92c9('0x33')]);_0x158989[_0x92c9('0x34')]=qs[_0x92c9('0x35')](_[_0x92c9('0x36')](_0x4f083d['query'],_0x3417d6[_0x92c9('0x35')]),_0x39863a);if(_0x4f083d[_0x92c9('0x2c')]['filter']){_0x158989[_0x92c9('0x34')]=_['merge'](_0x158989[_0x92c9('0x34')],{'$or':_[_0x92c9('0x25')](_0x39863a,function(_0xc35ee2){if(_0xc35ee2[_0x92c9('0x28')]!==_0x92c9('0x37')){var _0x14afc2={};_0x14afc2[_0xc35ee2[_0x92c9('0x23')]]={'$like':'%'+_0x4f083d[_0x92c9('0x2c')][_0x92c9('0x38')]+'%'};return _0x14afc2;}})});}_0x158989=_[_0x92c9('0x39')]({},_0x158989,_0x4f083d[_0x92c9('0x3a')]);var _0x5dccab={'where':_0x158989[_0x92c9('0x34')]};return db[_0x92c9('0x26')][_0x92c9('0x1b')](_0x5dccab)['then'](function(_0x5611a3){_0x4a661b[_0x92c9('0x1b')]=_0x5611a3;if(_0x4f083d[_0x92c9('0x2c')][_0x92c9('0x3b')]){_0x158989[_0x92c9('0x3c')]=[{'all':!![]}];}return db[_0x92c9('0x26')][_0x92c9('0x3d')](_0x158989);})[_0x92c9('0x20')](function(_0x24b0ca){_0x4a661b[_0x92c9('0x3e')]=_0x24b0ca;return _0x4a661b;})[_0x92c9('0x20')](respondWithFilteredResult(_0x59ce0c,_0x158989))[_0x92c9('0x3f')](handleError(_0x59ce0c,null));};exports[_0x92c9('0x40')]=function(_0x22d00b,_0x2d5c6a){var _0x2e1a6a={'raw':!![],'where':{'id':_0x22d00b[_0x92c9('0x41')]['id']}},_0x27eea2={};_0x27eea2['model']=_[_0x92c9('0x2b')](db[_0x92c9('0x26')][_0x92c9('0x27')]);_0x27eea2['query']=_['keys'](_0x22d00b[_0x92c9('0x2c')]);_0x27eea2[_0x92c9('0x35')]=_[_0x92c9('0x2d')](_0x27eea2['model'],_0x27eea2[_0x92c9('0x2c')]);_0x2e1a6a[_0x92c9('0x2f')]=_[_0x92c9('0x2d')](_0x27eea2[_0x92c9('0x2a')],qs[_0x92c9('0x2e')](_0x22d00b[_0x92c9('0x2c')][_0x92c9('0x2e')]));_0x2e1a6a[_0x92c9('0x2f')]=_0x2e1a6a[_0x92c9('0x2f')][_0x92c9('0x42')]?_0x2e1a6a[_0x92c9('0x2f')]:_0x27eea2[_0x92c9('0x2a')];if(_0x22d00b[_0x92c9('0x2c')][_0x92c9('0x3b')]){_0x2e1a6a['include']=[{'all':!![]}];}_0x2e1a6a=_[_0x92c9('0x39')]({},_0x2e1a6a,_0x22d00b[_0x92c9('0x3a')]);return db['SquareRecording']['find'](_0x2e1a6a)[_0x92c9('0x20')](handleEntityNotFound(_0x2d5c6a,null))['then'](respondWithResult(_0x2d5c6a,null))[_0x92c9('0x3f')](handleError(_0x2d5c6a,null));};exports[_0x92c9('0x43')]=function(_0x4e7471,_0x919b8c){return db[_0x92c9('0x26')][_0x92c9('0x43')](_0x4e7471[_0x92c9('0x44')],{})['then'](respondWithResult(_0x919b8c,0xc9))[_0x92c9('0x3f')](handleError(_0x919b8c,null));};exports['update']=function(_0x3272ae,_0x1b824d){if(_0x3272ae[_0x92c9('0x44')]['id']){delete _0x3272ae[_0x92c9('0x44')]['id'];}return db[_0x92c9('0x26')]['find']({'where':{'id':_0x3272ae['params']['id']}})[_0x92c9('0x20')](handleEntityNotFound(_0x1b824d,null))[_0x92c9('0x20')](saveUpdates(_0x3272ae[_0x92c9('0x44')],null))[_0x92c9('0x20')](respondWithResult(_0x1b824d,null))[_0x92c9('0x3f')](handleError(_0x1b824d,null));};exports['download']=function(_0x36e5c4,_0x2b566c,_0x47e36e){var _0x3114dd=require(_0x92c9('0x45'));var _0x4e5557=![];var _0x33d781={};if(_0x36e5c4['query'][_0x92c9('0x28')]&&_0x36e5c4[_0x92c9('0x2c')][_0x92c9('0x28')]===_0x92c9('0x46')){_0x33d781[_0x92c9('0x46')]=_0x36e5c4[_0x92c9('0x41')]['id'];}else{_0x33d781['id']=_0x36e5c4[_0x92c9('0x41')]['id'];}return db[_0x92c9('0x26')][_0x92c9('0x47')]({'where':_0x33d781,'attributes':['id',_0x92c9('0x48'),'filename'],'raw':!![]})[_0x92c9('0x20')](handleEntityNotFound(_0x2b566c,null))['then'](function(_0x1bb28f){if(_0x1bb28f){var _0x64ea2c=_0x1bb28f[_0x92c9('0x48')];var _0x515d26=util['format'](_0x92c9('0x49'),_0x64ea2c);if(fs[_0x92c9('0x4a')](_0x515d26)){_0x4e5557=!![];return _0x3114dd['decryptFile'](_0x515d26,_0x64ea2c,config[_0x92c9('0x4b')]['recording'])[_0x92c9('0x20')](function(){return _0x1bb28f;});}return _0x1bb28f;}})[_0x92c9('0x20')](function(_0x457744){if(_0x457744){var _0x1f2187=_0x457744['savePath'];if(!fs[_0x92c9('0x4a')](_0x1f2187)){throw new db['Sequelize'][(_0x92c9('0x4c'))](_0x92c9('0x4d'));}if(_0x457744['filename']){return _0x2b566c['download'](_0x1f2187,_0x457744['filename']+path[_0x92c9('0x4e')](_0x1f2187),function(){if(_0x4e5557){fs[_0x92c9('0x4f')](_0x1f2187);}});}else{return _0x2b566c[_0x92c9('0x50')](_0x1f2187,function(_0x400fdd){if(_0x4e5557){fs['unlink'](_0x1f2187);}});}}})[_0x92c9('0x3f')](function(_0x363cd1){if(_0x363cd1['message']===_0x92c9('0x4d')){_0x2b566c[_0x92c9('0x16')](0x194)[_0x92c9('0x24')]('Not\x20found');}else{return handleError(_0x2b566c,null);}});};exports[_0x92c9('0x51')]=function(_0x1fa9c4,_0x24ec32){return db['SquareRecording'][_0x92c9('0x47')]({'where':{'id':_0x1fa9c4[_0x92c9('0x41')]['id']}})[_0x92c9('0x20')](function(_0x1157f6){if(_['isNil'](_0x1157f6)){throw new ReferenceError(_0x92c9('0x52'));}return _0x1157f6;})[_0x92c9('0x20')](function(_0xfeb605){var _0x219e1f=_0xfeb605[_0x92c9('0x48')];logger[_0x92c9('0x53')](_0x92c9('0x54'),_0x219e1f);if(!_[_0x92c9('0x55')](_0xfeb605[_0x92c9('0x48')])&&fs[_0x92c9('0x4a')](_0x219e1f)){logger[_0x92c9('0x53')](_0x92c9('0x56')+_0x219e1f+_0x92c9('0x57'));fs[_0x92c9('0x58')](_0x219e1f);}_0x219e1f=_0x219e1f+_0x92c9('0x59');if(!_[_0x92c9('0x55')](_0xfeb605[_0x92c9('0x48')])&&fs[_0x92c9('0x4a')](_0x219e1f)){logger['info'](_0x92c9('0x56')+_0x219e1f+_0x92c9('0x57'));fs[_0x92c9('0x58')](_0x219e1f);}return _0xfeb605;})[_0x92c9('0x20')](function(_0x281210){if(!_0x281210)throw new InternalError();return _0x281210[_0x92c9('0x51')]();})[_0x92c9('0x20')](function(){_0x24ec32[_0x92c9('0x16')](0xcc)[_0x92c9('0x17')]();})[_0x92c9('0x3f')](handleError(_0x24ec32,null));};