395e25aab2dfa5e28819627d9c41a12bc90075a8
[motion2.git] / server / api / faxInteraction / faxInteraction.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 _0x35a7=['../../components/parsers/qs','../../config/logger','api','../../config/environment','redis','defaults','localhost','socket.io-emitter','./faxInteraction.socket','register','sendStatus','status','json','offset','undefined','limit','count','set','Content-Range','update','then','destroy','end','error','stack','name','map','FaxInteraction','rawAttributes','fieldName','key','getOptions','user','catch','show','params','model','query','filters','intersection','attributes','fields','length','includeAll','merge','find','create','body','describe','addMessage','FaxMessage','ids','omit','getMessages','keys','order','sort','where','FaxInteractionId','filter','$gte','split','format','YYYY-MM-DD\x20HH:mm:ss','options','include','findAll','rows','addTags','setTags','spread','Tag','color','emit','faxInteractionTags:save','removeTags','download','root','files','attachments','join','transcript-%d-%s.zip','push','Attachment','Messages','createdAt','get','mkdirSync','existsSync','pipe','createWriteStream','basename','resolve','err','unlinkSync','rimraf','zip-dir','moment','bluebird','util','path','lodash','ioredis','../../components/interaction/service'];(function(_0x28f37f,_0x227f04){var _0x2b251c=function(_0x44c63d){while(--_0x44c63d){_0x28f37f['push'](_0x28f37f['shift']());}};_0x2b251c(++_0x227f04);}(_0x35a7,0x197));var _0x735a=function(_0x21993f,_0xa34a1b){_0x21993f=_0x21993f-0x0;var _0x3cb4f0=_0x35a7[_0x21993f];return _0x3cb4f0;};'use strict';var rimraf=require(_0x735a('0x0'));var zipdir=require(_0x735a('0x1'));var moment=require(_0x735a('0x2'));var BPromise=require(_0x735a('0x3'));var util=require(_0x735a('0x4'));var path=require(_0x735a('0x5'));var fs=require('fs');var _=require(_0x735a('0x6'));var Redis=require(_0x735a('0x7'));var interaction=require(_0x735a('0x8'));var qs=require(_0x735a('0x9'));var logger=require(_0x735a('0xa'))(_0x735a('0xb'));var config=require(_0x735a('0xc'));var db=require('../../mysqldb')['db'];config[_0x735a('0xd')]=_[_0x735a('0xe')](config['redis'],{'host':_0x735a('0xf'),'port':0x18eb});var socket=require(_0x735a('0x10'))(new Redis(config[_0x735a('0xd')]));require(_0x735a('0x11'))[_0x735a('0x12')](socket);function respondWithStatusCode(_0x4b1c39,_0x4cf928){_0x4cf928=_0x4cf928||0xcc;return function(_0x4bc0ac){if(_0x4bc0ac){return _0x4b1c39[_0x735a('0x13')](_0x4cf928);}return _0x4b1c39['status'](_0x4cf928)['end']();};}function respondWithResult(_0x287dce,_0x345404){_0x345404=_0x345404||0xc8;return function(_0x19e7e3){if(_0x19e7e3){return _0x287dce[_0x735a('0x14')](_0x345404)[_0x735a('0x15')](_0x19e7e3);}};}function respondWithFilteredResult(_0x1bdad6,_0x48c985){return function(_0x36dc75){if(_0x36dc75){var _0x5c40ec=typeof _0x48c985[_0x735a('0x16')]===_0x735a('0x17')&&typeof _0x48c985[_0x735a('0x18')]===_0x735a('0x17');var _0x490440=_0x36dc75[_0x735a('0x19')];var _0x4dd640=_0x5c40ec?0x0:_0x48c985[_0x735a('0x16')];var _0x2e6373=_0x5c40ec?_0x36dc75[_0x735a('0x19')]:_0x48c985[_0x735a('0x16')]+_0x48c985[_0x735a('0x18')];var _0x5d0b49;if(_0x2e6373>=_0x490440){_0x2e6373=_0x490440;_0x5d0b49=0xc8;}else{_0x5d0b49=0xce;}_0x1bdad6[_0x735a('0x14')](_0x5d0b49);return _0x1bdad6[_0x735a('0x1a')](_0x735a('0x1b'),_0x4dd640+'-'+_0x2e6373+'/'+_0x490440)[_0x735a('0x15')](_0x36dc75);}return null;};}function saveUpdates(_0x58a768){return function(_0x146b0e){if(_0x146b0e){return _0x146b0e[_0x735a('0x1c')](_0x58a768)[_0x735a('0x1d')](function(_0x2acbe4){return _0x2acbe4;});}return null;};}function removeEntity(_0x34c894){return function(_0x49f150){if(_0x49f150){return _0x49f150[_0x735a('0x1e')]()[_0x735a('0x1d')](function(){_0x34c894['status'](0xcc)[_0x735a('0x1f')]();});}};}function handleEntityNotFound(_0x3812e2){return function(_0x46c2ed){if(!_0x46c2ed){_0x3812e2['sendStatus'](0x194);}return _0x46c2ed;};}function handleError(_0x1fbe7e,_0x3101b5){_0x3101b5=_0x3101b5||0x1f4;return function(_0x5a535d){logger[_0x735a('0x20')](_0x5a535d[_0x735a('0x21')]);if(_0x5a535d[_0x735a('0x22')]){delete _0x5a535d[_0x735a('0x22')];}_0x1fbe7e[_0x735a('0x14')](_0x3101b5)['send'](_0x5a535d);};}exports['index']=function(_0x809b24,_0x435a65){var _0x391636={};var _0x125b75=_[_0x735a('0x23')](db[_0x735a('0x24')][_0x735a('0x25')],function(_0x3f46ea){return{'name':_0x3f46ea[_0x735a('0x26')],'type':_0x3f46ea['type'][_0x735a('0x27')]};});_0x391636=qs[_0x735a('0x28')](_0x125b75,_0x809b24);return interaction['findAll']('fax',_0x809b24['query'],_0x809b24[_0x735a('0x29')],_0x391636,_0x125b75)['then'](respondWithFilteredResult(_0x435a65,_0x391636))[_0x735a('0x2a')](handleError(_0x435a65,null));};exports[_0x735a('0x2b')]=function(_0xdf1468,_0x3c4cc8){var _0x29007f={'raw':![],'where':{'id':_0xdf1468[_0x735a('0x2c')]['id']}},_0x516974={};_0x516974[_0x735a('0x2d')]=_['keys'](db[_0x735a('0x24')][_0x735a('0x25')]);_0x516974[_0x735a('0x2e')]=_['keys'](_0xdf1468[_0x735a('0x2e')]);_0x516974[_0x735a('0x2f')]=_[_0x735a('0x30')](_0x516974['model'],_0x516974[_0x735a('0x2e')]);_0x29007f[_0x735a('0x31')]=_[_0x735a('0x30')](_0x516974['model'],qs['fields'](_0xdf1468[_0x735a('0x2e')][_0x735a('0x32')]));_0x29007f[_0x735a('0x31')]=_0x29007f[_0x735a('0x31')][_0x735a('0x33')]?_0x29007f[_0x735a('0x31')]:_0x516974[_0x735a('0x2d')];if(_0xdf1468[_0x735a('0x2e')][_0x735a('0x34')]){_0x29007f['include']=[{'all':!![]}];}_0x29007f=_[_0x735a('0x35')]({},_0x29007f,_0xdf1468['options']);return db[_0x735a('0x24')][_0x735a('0x36')](_0x29007f)[_0x735a('0x1d')](handleEntityNotFound(_0x3c4cc8,null))['then'](respondWithResult(_0x3c4cc8,null))['catch'](handleError(_0x3c4cc8,null));};exports[_0x735a('0x37')]=function(_0xfb6e1e,_0x434f06){return db[_0x735a('0x24')][_0x735a('0x37')](_0xfb6e1e[_0x735a('0x38')],{})[_0x735a('0x1d')](respondWithResult(_0x434f06,0xc9))[_0x735a('0x2a')](handleError(_0x434f06,null));};exports['update']=function(_0x3e78f6,_0x1c5204){if(_0x3e78f6['body']['id']){delete _0x3e78f6['body']['id'];}return db[_0x735a('0x24')]['find']({'where':{'id':_0x3e78f6[_0x735a('0x2c')]['id']}})[_0x735a('0x1d')](handleEntityNotFound(_0x1c5204,null))[_0x735a('0x1d')](saveUpdates(_0x3e78f6['body'],null))[_0x735a('0x1d')](respondWithResult(_0x1c5204,null))['catch'](handleError(_0x1c5204,null));};exports[_0x735a('0x1e')]=function(_0x3dfc55,_0x7880cd){return db[_0x735a('0x24')][_0x735a('0x36')]({'where':{'id':_0x3dfc55[_0x735a('0x2c')]['id']}})[_0x735a('0x1d')](handleEntityNotFound(_0x7880cd,null))[_0x735a('0x1d')](removeEntity(_0x7880cd,null))['catch'](handleError(_0x7880cd,null));};exports[_0x735a('0x39')]=function(_0x331cf1,_0x437437){return db[_0x735a('0x24')]['describe']()[_0x735a('0x1d')](respondWithResult(_0x437437,null))[_0x735a('0x2a')](handleError(_0x437437,null));};exports[_0x735a('0x3a')]=function(_0x1fe7b7,_0xcc37c2){return db[_0x735a('0x3b')][_0x735a('0x36')]({'where':{'id':_0x1fe7b7[_0x735a('0x2c')]['id']}})[_0x735a('0x1d')](handleEntityNotFound(_0xcc37c2,null))[_0x735a('0x1d')](function(_0x574a1b){if(_0x574a1b){return _0x574a1b[_0x735a('0x3a')](_0x1fe7b7[_0x735a('0x38')][_0x735a('0x3c')],_[_0x735a('0x3d')](_0x1fe7b7['body'],[_0x735a('0x3c'),'id'])||{});}})[_0x735a('0x1d')](respondWithResult(_0xcc37c2,null))[_0x735a('0x2a')](handleError(_0xcc37c2,null));};exports[_0x735a('0x3e')]=function(_0xda0b47,_0x4e35ef){var _0x175536={'raw':![],'where':{}};var _0x4df54b={};var _0x211833={'count':0x0,'rows':[]};return db[_0x735a('0x24')]['findOne']({'where':{'id':_0xda0b47['params']['id']}})[_0x735a('0x1d')](handleEntityNotFound(_0x4e35ef,null))[_0x735a('0x1d')](function(_0x509b2d){if(_0x509b2d){_0x4df54b['model']=_[_0x735a('0x3f')](db[_0x735a('0x3b')][_0x735a('0x25')]);_0x4df54b[_0x735a('0x2e')]=_[_0x735a('0x3f')](_0xda0b47[_0x735a('0x2e')]);_0x4df54b['filters']=_['intersection'](_0x4df54b[_0x735a('0x2d')],_0x4df54b[_0x735a('0x2e')]);_0x175536[_0x735a('0x31')]=_[_0x735a('0x30')](_0x4df54b[_0x735a('0x2d')],qs[_0x735a('0x32')](_0xda0b47[_0x735a('0x2e')][_0x735a('0x32')]));_0x175536[_0x735a('0x31')]=_0x175536[_0x735a('0x31')][_0x735a('0x33')]?_0x175536[_0x735a('0x31')]:_0x4df54b[_0x735a('0x2d')];if(!_0xda0b47['query']['hasOwnProperty']('nolimit')){_0x175536[_0x735a('0x18')]=qs[_0x735a('0x18')](_0xda0b47[_0x735a('0x2e')][_0x735a('0x18')]);_0x175536[_0x735a('0x16')]=qs[_0x735a('0x16')](_0xda0b47[_0x735a('0x2e')][_0x735a('0x16')]);}_0x175536[_0x735a('0x40')]=qs[_0x735a('0x41')](_0xda0b47[_0x735a('0x2e')]['sort']);_0x175536[_0x735a('0x42')]=qs['filters'](_['pick'](_0xda0b47[_0x735a('0x2e')],_0x4df54b[_0x735a('0x2f')]));_0x175536['where'][_0x735a('0x43')]=_0x509b2d['id'];if(_0xda0b47[_0x735a('0x2e')][_0x735a('0x44')]){_0x175536[_0x735a('0x42')]=_[_0x735a('0x35')](_0x175536[_0x735a('0x42')],{'$or':_[_0x735a('0x23')](_0x175536['attributes'],function(_0x1582cf){var _0x17c166={};_0x17c166[_0x1582cf]={'$like':'%'+_0xda0b47[_0x735a('0x2e')]['filter']+'%'};return _0x17c166;})});}if(_0xda0b47['query'][_0x735a('0x45')]){var _0x3bedf2=_0xda0b47[_0x735a('0x2e')]['$gte'][_0x735a('0x46')](',');var _0x282154={};_0x282154[_0x3bedf2[0x0]]={'$gte':moment(_0x3bedf2[0x1])[_0x735a('0x47')](_0x735a('0x48'))};_0x175536[_0x735a('0x42')]=_[_0x735a('0x35')](_0x175536[_0x735a('0x42')],_0x282154);}_0x175536=_[_0x735a('0x35')]({},_0x175536,_0xda0b47[_0x735a('0x49')]);return db['FaxMessage'][_0x735a('0x19')]({'where':_0x175536['where']})[_0x735a('0x1d')](function(_0x16c1c8){_0x211833[_0x735a('0x19')]=_0x16c1c8;if(_0xda0b47[_0x735a('0x2e')]['includeAll']){_0x175536[_0x735a('0x4a')]=[{'all':!![]}];}return db[_0x735a('0x3b')][_0x735a('0x4b')](_0x175536);})[_0x735a('0x1d')](function(_0x3e4d65){_0x211833[_0x735a('0x4c')]=_0x3e4d65;return _0x211833;});}})[_0x735a('0x1d')](respondWithFilteredResult(_0x4e35ef,_0x175536))[_0x735a('0x2a')](handleError(_0x4e35ef,null));};exports[_0x735a('0x4d')]=function(_0xc6a0b3,_0x2bdc49){return db[_0x735a('0x24')][_0x735a('0x36')]({'where':{'id':_0xc6a0b3[_0x735a('0x2c')]['id']}})['then'](handleEntityNotFound(_0x2bdc49,null))['then'](function(_0x5f301f){if(_0x5f301f){return _0x5f301f[_0x735a('0x4e')](_0xc6a0b3[_0x735a('0x38')][_0x735a('0x3c')],_[_0x735a('0x3d')](_0xc6a0b3[_0x735a('0x38')],[_0x735a('0x3c'),'id'])||{})[_0x735a('0x4f')](function(){return db[_0x735a('0x50')]['findAll']({'attributes':['id','name',_0x735a('0x51')],'where':{'id':_0xc6a0b3[_0x735a('0x38')][_0x735a('0x3c')]}});})['then'](function(_0x2e13ed){socket[_0x735a('0x52')](_0x735a('0x53'),{'id':Number(_0xc6a0b3[_0x735a('0x2c')]['id']),'tags':_0x2e13ed||[]});return{'id':Number(_0xc6a0b3[_0x735a('0x2c')]['id']),'tags':_0x2e13ed||[]};});}})[_0x735a('0x1d')](respondWithResult(_0x2bdc49,null))[_0x735a('0x2a')](handleError(_0x2bdc49,null));};exports[_0x735a('0x54')]=function(_0x49cbb1,_0xb7b9bb){return db[_0x735a('0x24')][_0x735a('0x36')]({'where':{'id':_0x49cbb1[_0x735a('0x2c')]['id']}})[_0x735a('0x1d')](handleEntityNotFound(_0xb7b9bb,null))[_0x735a('0x1d')](function(_0x30042c){if(_0x30042c){return _0x30042c[_0x735a('0x54')](_0x49cbb1['query'][_0x735a('0x3c')]);}})[_0x735a('0x1d')](respondWithStatusCode(_0xb7b9bb,null))[_0x735a('0x2a')](handleError(_0xb7b9bb,null));};exports[_0x735a('0x55')]=function(_0x2e91dc,_0x575ed5){var _0x35d8de=moment()['unix']()['toString']();var _0x4f54ab=path['join'](config[_0x735a('0x56')],'server',_0x735a('0x57'),'tmp');var _0x4624de=path['join'](config[_0x735a('0x56')],'server',_0x735a('0x57'),_0x735a('0x58'));var _0x35724b=path[_0x735a('0x59')](_0x4f54ab,_0x35d8de);var _0x4e0f11=util['format'](_0x735a('0x5a'),_0x2e91dc[_0x735a('0x2c')]['id'],_0x35d8de);var _0x3965c5=path['join'](_0x4f54ab,_0x4e0f11);var _0x58a3e9=[];_0x58a3e9[_0x735a('0x5b')]({'model':db[_0x735a('0x5c')],'as':_0x735a('0x5c'),'raw':!![]});var _0x2eac93=[{'model':db['FaxMessage'],'as':_0x735a('0x5d'),'attributes':['id',_0x735a('0x38'),_0x735a('0x5e')],'include':_0x58a3e9}];return db[_0x735a('0x24')][_0x735a('0x36')]({'where':{'id':_0x2e91dc[_0x735a('0x2c')]['id']},'include':_0x2eac93})[_0x735a('0x1d')](handleEntityNotFound(_0x575ed5,null))[_0x735a('0x1d')](function(_0x4cef25){if(_0x4cef25&&_0x4cef25[_0x735a('0x5d')]){var _0x240ddb=_0x4cef25[_0x735a('0x5f')]({'plain':!![]});fs[_0x735a('0x60')](_0x35724b);for(var _0x5111a4=0x0;_0x5111a4<_0x240ddb[_0x735a('0x5d')]['length'];_0x5111a4++){var _0xf7a900=_0x240ddb[_0x735a('0x5d')][_0x5111a4]['Attachment'];if(_0xf7a900){var _0xae8d42=path[_0x735a('0x59')](_0x4624de,_0xf7a900['basename']);if(fs[_0x735a('0x61')](_0xae8d42)){fs['createReadStream'](_0xae8d42)[_0x735a('0x62')](fs[_0x735a('0x63')](path[_0x735a('0x59')](_0x35724b,_0xf7a900[_0x735a('0x64')])));}}}return BPromise[_0x735a('0x65')]()[_0x735a('0x1d')](function(){return new BPromise(function(_0x132f14,_0x46ac19){zipdir(_0x35724b,{'saveTo':_0x3965c5},function(_0x50b499,_0x400710){if(_0x50b499)return _0x46ac19(_0x50b499);return _0x132f14(_0x400710);});})[_0x735a('0x1d')](function(){return new BPromise(function(_0x131884,_0x5e5bc6){rimraf(_0x35724b,function(_0x44805e){if(_0x44805e)_0x5e5bc6(_0x44805e);return _0x131884();});});})[_0x735a('0x1d')](function(){return _0x575ed5['download'](_0x3965c5,_0x4e0f11,function(_0x4a3519){if(_0x4a3519){console['log'](_0x735a('0x66'),_0x4a3519);}else{fs[_0x735a('0x67')](_0x3965c5);}});});});}else{return _0x575ed5[_0x735a('0x13')](0xc8);}})[_0x735a('0x2a')](handleError(_0x575ed5,null));};