Built motion from commit 863c3375.|2.6.28
[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 _0xde2a=['end','json','offset','undefined','limit','count','set','Content-Range','update','destroy','error','name','send','index','map','FaxInteraction','rawAttributes','fieldName','key','findAll','fax','query','then','show','model','keys','filters','intersection','attributes','fields','length','includeAll','include','merge','find','catch','create','body','params','describe','addMessage','FaxMessage','ids','findOne','hasOwnProperty','nolimit','order','sort','where','pick','FaxInteractionId','filter','$gte','split','format','YYYY-MM-DD\x20HH:mm:ss','options','rows','addTags','spread','Tag','color','emit','faxInteractionTags:save','removeTags','unix','toString','join','root','server','files','transcript-%d-%s.zip','push','Attachment','Messages','createdAt','mkdirSync','existsSync','createReadStream','pipe','createWriteStream','resolve','download','log','unlinkSync','rimraf','zip-dir','moment','bluebird','util','lodash','ioredis','../../components/interaction/service','../../components/parsers/qs','../../config/logger','api','../../config/environment','../../mysqldb','redis','defaults','localhost','./faxInteraction.socket','register','sendStatus','status'];(function(_0x5597a0,_0x35c11e){var _0x2fc8d6=function(_0x492dcb){while(--_0x492dcb){_0x5597a0['push'](_0x5597a0['shift']());}};_0x2fc8d6(++_0x35c11e);}(_0xde2a,0x190));var _0xade2=function(_0x455c6c,_0x1e78b7){_0x455c6c=_0x455c6c-0x0;var _0x488242=_0xde2a[_0x455c6c];return _0x488242;};'use strict';var rimraf=require(_0xade2('0x0'));var zipdir=require(_0xade2('0x1'));var moment=require(_0xade2('0x2'));var BPromise=require(_0xade2('0x3'));var util=require(_0xade2('0x4'));var path=require('path');var fs=require('fs');var _=require(_0xade2('0x5'));var Redis=require(_0xade2('0x6'));var interaction=require(_0xade2('0x7'));var qs=require(_0xade2('0x8'));var logger=require(_0xade2('0x9'))(_0xade2('0xa'));var config=require(_0xade2('0xb'));var db=require(_0xade2('0xc'))['db'];config[_0xade2('0xd')]=_[_0xade2('0xe')](config[_0xade2('0xd')],{'host':_0xade2('0xf'),'port':0x18eb});var socket=require('socket.io-emitter')(new Redis(config[_0xade2('0xd')]));require(_0xade2('0x10'))[_0xade2('0x11')](socket);function respondWithStatusCode(_0x4192bc,_0x347aca){_0x347aca=_0x347aca||0xcc;return function(_0x3b1c2b){if(_0x3b1c2b){return _0x4192bc[_0xade2('0x12')](_0x347aca);}return _0x4192bc[_0xade2('0x13')](_0x347aca)[_0xade2('0x14')]();};}function respondWithResult(_0x3d54c5,_0xd9383d){_0xd9383d=_0xd9383d||0xc8;return function(_0x400c99){if(_0x400c99){return _0x3d54c5[_0xade2('0x13')](_0xd9383d)[_0xade2('0x15')](_0x400c99);}};}function respondWithFilteredResult(_0x6e2557,_0x23d85d){return function(_0x14441f){if(_0x14441f){var _0x2def90=typeof _0x23d85d[_0xade2('0x16')]===_0xade2('0x17')&&typeof _0x23d85d[_0xade2('0x18')]===_0xade2('0x17');var _0x509f79=_0x14441f[_0xade2('0x19')];var _0x5481ce=_0x2def90?0x0:_0x23d85d[_0xade2('0x16')];var _0x533dc1=_0x2def90?_0x14441f[_0xade2('0x19')]:_0x23d85d[_0xade2('0x16')]+_0x23d85d['limit'];var _0x40d020;if(_0x533dc1>=_0x509f79){_0x533dc1=_0x509f79;_0x40d020=0xc8;}else{_0x40d020=0xce;}_0x6e2557[_0xade2('0x13')](_0x40d020);return _0x6e2557[_0xade2('0x1a')](_0xade2('0x1b'),_0x5481ce+'-'+_0x533dc1+'/'+_0x509f79)['json'](_0x14441f);}return null;};}function saveUpdates(_0x4f6aec){return function(_0x2aaa09){if(_0x2aaa09){return _0x2aaa09[_0xade2('0x1c')](_0x4f6aec)['then'](function(_0x28031c){return _0x28031c;});}return null;};}function removeEntity(_0x5d68b8){return function(_0x7734e3){if(_0x7734e3){return _0x7734e3[_0xade2('0x1d')]()['then'](function(){_0x5d68b8[_0xade2('0x13')](0xcc)[_0xade2('0x14')]();});}};}function handleEntityNotFound(_0x603ad9){return function(_0x233be1){if(!_0x233be1){_0x603ad9['sendStatus'](0x194);}return _0x233be1;};}function handleError(_0x35efab,_0x944a9e){_0x944a9e=_0x944a9e||0x1f4;return function(_0x4dc560){logger[_0xade2('0x1e')](_0x4dc560['stack']);if(_0x4dc560[_0xade2('0x1f')]){delete _0x4dc560[_0xade2('0x1f')];}_0x35efab[_0xade2('0x13')](_0x944a9e)[_0xade2('0x20')](_0x4dc560);};}exports[_0xade2('0x21')]=function(_0x16af30,_0x1d32ae){var _0x533807={};var _0x3ce8dc=_[_0xade2('0x22')](db[_0xade2('0x23')][_0xade2('0x24')],function(_0x254d32){return{'name':_0x254d32[_0xade2('0x25')],'type':_0x254d32['type'][_0xade2('0x26')]};});_0x533807=qs['getOptions'](_0x3ce8dc,_0x16af30);return interaction[_0xade2('0x27')](_0xade2('0x28'),_0x16af30[_0xade2('0x29')],_0x16af30['user'],_0x533807,_0x3ce8dc)[_0xade2('0x2a')](respondWithFilteredResult(_0x1d32ae,_0x533807))['catch'](handleError(_0x1d32ae,null));};exports[_0xade2('0x2b')]=function(_0x1926ee,_0x541a96){var _0x3f6ca9={'raw':![],'where':{'id':_0x1926ee['params']['id']}},_0x294b3e={};_0x294b3e[_0xade2('0x2c')]=_[_0xade2('0x2d')](db[_0xade2('0x23')][_0xade2('0x24')]);_0x294b3e[_0xade2('0x29')]=_[_0xade2('0x2d')](_0x1926ee[_0xade2('0x29')]);_0x294b3e[_0xade2('0x2e')]=_[_0xade2('0x2f')](_0x294b3e[_0xade2('0x2c')],_0x294b3e[_0xade2('0x29')]);_0x3f6ca9[_0xade2('0x30')]=_[_0xade2('0x2f')](_0x294b3e[_0xade2('0x2c')],qs[_0xade2('0x31')](_0x1926ee[_0xade2('0x29')][_0xade2('0x31')]));_0x3f6ca9[_0xade2('0x30')]=_0x3f6ca9['attributes'][_0xade2('0x32')]?_0x3f6ca9['attributes']:_0x294b3e['model'];if(_0x1926ee['query'][_0xade2('0x33')]){_0x3f6ca9[_0xade2('0x34')]=[{'all':!![]}];}_0x3f6ca9=_[_0xade2('0x35')]({},_0x3f6ca9,_0x1926ee['options']);return db[_0xade2('0x23')][_0xade2('0x36')](_0x3f6ca9)[_0xade2('0x2a')](handleEntityNotFound(_0x541a96,null))[_0xade2('0x2a')](respondWithResult(_0x541a96,null))[_0xade2('0x37')](handleError(_0x541a96,null));};exports[_0xade2('0x38')]=function(_0x1ed515,_0x24d3ef){return db[_0xade2('0x23')]['create'](_0x1ed515['body'],{})['then'](respondWithResult(_0x24d3ef,0xc9))[_0xade2('0x37')](handleError(_0x24d3ef,null));};exports['update']=function(_0x503968,_0x4baaad){if(_0x503968[_0xade2('0x39')]['id']){delete _0x503968[_0xade2('0x39')]['id'];}return db[_0xade2('0x23')][_0xade2('0x36')]({'where':{'id':_0x503968[_0xade2('0x3a')]['id']}})[_0xade2('0x2a')](handleEntityNotFound(_0x4baaad,null))[_0xade2('0x2a')](saveUpdates(_0x503968[_0xade2('0x39')],null))['then'](respondWithResult(_0x4baaad,null))[_0xade2('0x37')](handleError(_0x4baaad,null));};exports['destroy']=function(_0x27de90,_0x6501ea){return db[_0xade2('0x23')]['find']({'where':{'id':_0x27de90['params']['id']}})[_0xade2('0x2a')](handleEntityNotFound(_0x6501ea,null))[_0xade2('0x2a')](removeEntity(_0x6501ea,null))[_0xade2('0x37')](handleError(_0x6501ea,null));};exports[_0xade2('0x3b')]=function(_0x2bc4cb,_0x2dab85){return db[_0xade2('0x23')][_0xade2('0x3b')]()['then'](respondWithResult(_0x2dab85,null))[_0xade2('0x37')](handleError(_0x2dab85,null));};exports[_0xade2('0x3c')]=function(_0x395b5b,_0x13b78){return db[_0xade2('0x3d')][_0xade2('0x36')]({'where':{'id':_0x395b5b[_0xade2('0x3a')]['id']}})[_0xade2('0x2a')](handleEntityNotFound(_0x13b78,null))[_0xade2('0x2a')](function(_0x1d0e51){if(_0x1d0e51){return _0x1d0e51[_0xade2('0x3c')](_0x395b5b[_0xade2('0x39')][_0xade2('0x3e')],_['omit'](_0x395b5b['body'],[_0xade2('0x3e'),'id'])||{});}})[_0xade2('0x2a')](respondWithResult(_0x13b78,null))[_0xade2('0x37')](handleError(_0x13b78,null));};exports['getMessages']=function(_0x417224,_0x27de12){var _0x2741c8={'raw':![],'where':{}};var _0x1e802c={};var _0x514742={'count':0x0,'rows':[]};return db[_0xade2('0x23')][_0xade2('0x3f')]({'where':{'id':_0x417224[_0xade2('0x3a')]['id']}})[_0xade2('0x2a')](handleEntityNotFound(_0x27de12,null))[_0xade2('0x2a')](function(_0x3e027c){if(_0x3e027c){_0x1e802c['model']=_['keys'](db['FaxMessage'][_0xade2('0x24')]);_0x1e802c[_0xade2('0x29')]=_[_0xade2('0x2d')](_0x417224['query']);_0x1e802c[_0xade2('0x2e')]=_['intersection'](_0x1e802c[_0xade2('0x2c')],_0x1e802c[_0xade2('0x29')]);_0x2741c8[_0xade2('0x30')]=_['intersection'](_0x1e802c[_0xade2('0x2c')],qs['fields'](_0x417224[_0xade2('0x29')][_0xade2('0x31')]));_0x2741c8[_0xade2('0x30')]=_0x2741c8[_0xade2('0x30')][_0xade2('0x32')]?_0x2741c8[_0xade2('0x30')]:_0x1e802c['model'];if(!_0x417224[_0xade2('0x29')][_0xade2('0x40')](_0xade2('0x41'))){_0x2741c8[_0xade2('0x18')]=qs['limit'](_0x417224[_0xade2('0x29')][_0xade2('0x18')]);_0x2741c8[_0xade2('0x16')]=qs['offset'](_0x417224[_0xade2('0x29')][_0xade2('0x16')]);}_0x2741c8[_0xade2('0x42')]=qs['sort'](_0x417224['query'][_0xade2('0x43')]);_0x2741c8[_0xade2('0x44')]=qs['filters'](_[_0xade2('0x45')](_0x417224[_0xade2('0x29')],_0x1e802c[_0xade2('0x2e')]));_0x2741c8[_0xade2('0x44')][_0xade2('0x46')]=_0x3e027c['id'];if(_0x417224[_0xade2('0x29')]['filter']){_0x2741c8[_0xade2('0x44')]=_[_0xade2('0x35')](_0x2741c8[_0xade2('0x44')],{'$or':_[_0xade2('0x22')](_0x2741c8[_0xade2('0x30')],function(_0x4d960c){var _0xb886eb={};_0xb886eb[_0x4d960c]={'$like':'%'+_0x417224[_0xade2('0x29')][_0xade2('0x47')]+'%'};return _0xb886eb;})});}if(_0x417224[_0xade2('0x29')][_0xade2('0x48')]){var _0x3c6273=_0x417224[_0xade2('0x29')][_0xade2('0x48')][_0xade2('0x49')](',');var _0x335a42={};_0x335a42[_0x3c6273[0x0]]={'$gte':moment(_0x3c6273[0x1])[_0xade2('0x4a')](_0xade2('0x4b'))};_0x2741c8[_0xade2('0x44')]=_[_0xade2('0x35')](_0x2741c8['where'],_0x335a42);}_0x2741c8=_[_0xade2('0x35')]({},_0x2741c8,_0x417224[_0xade2('0x4c')]);return db[_0xade2('0x3d')][_0xade2('0x19')]({'where':_0x2741c8[_0xade2('0x44')]})[_0xade2('0x2a')](function(_0x266f47){_0x514742[_0xade2('0x19')]=_0x266f47;if(_0x417224['query'][_0xade2('0x33')]){_0x2741c8[_0xade2('0x34')]=[{'all':!![]}];}return db[_0xade2('0x3d')][_0xade2('0x27')](_0x2741c8);})[_0xade2('0x2a')](function(_0x55a2ba){_0x514742[_0xade2('0x4d')]=_0x55a2ba;return _0x514742;});}})[_0xade2('0x2a')](respondWithFilteredResult(_0x27de12,_0x2741c8))['catch'](handleError(_0x27de12,null));};exports[_0xade2('0x4e')]=function(_0x412787,_0x2b964c){return db[_0xade2('0x23')]['find']({'where':{'id':_0x412787['params']['id']}})['then'](handleEntityNotFound(_0x2b964c,null))['then'](function(_0x352556){if(_0x352556){return _0x352556['setTags'](_0x412787[_0xade2('0x39')][_0xade2('0x3e')],_['omit'](_0x412787[_0xade2('0x39')],[_0xade2('0x3e'),'id'])||{})[_0xade2('0x4f')](function(){return db[_0xade2('0x50')][_0xade2('0x27')]({'attributes':['id',_0xade2('0x1f'),_0xade2('0x51')],'where':{'id':_0x412787[_0xade2('0x39')][_0xade2('0x3e')]}});})[_0xade2('0x2a')](function(_0x230f2a){socket[_0xade2('0x52')](_0xade2('0x53'),{'id':Number(_0x412787[_0xade2('0x3a')]['id']),'tags':_0x230f2a||[]});return{'id':Number(_0x412787['params']['id']),'tags':_0x230f2a||[]};});}})['then'](respondWithResult(_0x2b964c,null))[_0xade2('0x37')](handleError(_0x2b964c,null));};exports[_0xade2('0x54')]=function(_0xd742ac,_0x1eaf71){return db[_0xade2('0x23')][_0xade2('0x36')]({'where':{'id':_0xd742ac[_0xade2('0x3a')]['id']}})[_0xade2('0x2a')](handleEntityNotFound(_0x1eaf71,null))[_0xade2('0x2a')](function(_0x1ff315){if(_0x1ff315){return _0x1ff315[_0xade2('0x54')](_0xd742ac[_0xade2('0x29')][_0xade2('0x3e')]);}})[_0xade2('0x2a')](respondWithStatusCode(_0x1eaf71,null))[_0xade2('0x37')](handleError(_0x1eaf71,null));};exports['download']=function(_0x3f4f52,_0x161d6d){var _0x5c2671=moment()[_0xade2('0x55')]()[_0xade2('0x56')]();var _0x3fc774=path[_0xade2('0x57')](config[_0xade2('0x58')],_0xade2('0x59'),_0xade2('0x5a'),'tmp');var _0x5e8881=path[_0xade2('0x57')](config[_0xade2('0x58')],_0xade2('0x59'),_0xade2('0x5a'),'attachments');var _0x3fc5f8=path[_0xade2('0x57')](_0x3fc774,_0x5c2671);var _0x29738f=util['format'](_0xade2('0x5b'),_0x3f4f52['params']['id'],_0x5c2671);var _0x3de064=path[_0xade2('0x57')](_0x3fc774,_0x29738f);var _0x5c4998=[];_0x5c4998[_0xade2('0x5c')]({'model':db[_0xade2('0x5d')],'as':_0xade2('0x5d'),'raw':!![]});var _0x412c7d=[{'model':db[_0xade2('0x3d')],'as':_0xade2('0x5e'),'attributes':['id',_0xade2('0x39'),_0xade2('0x5f')],'include':_0x5c4998}];return db['FaxInteraction']['find']({'where':{'id':_0x3f4f52['params']['id']},'include':_0x412c7d})[_0xade2('0x2a')](handleEntityNotFound(_0x161d6d,null))[_0xade2('0x2a')](function(_0x1a0eb2){if(_0x1a0eb2&&_0x1a0eb2[_0xade2('0x5e')]){var _0x269245=_0x1a0eb2['get']({'plain':!![]});fs[_0xade2('0x60')](_0x3fc5f8);for(var _0xa3732b=0x0;_0xa3732b<_0x269245[_0xade2('0x5e')][_0xade2('0x32')];_0xa3732b++){var _0x5bf1b5=_0x269245[_0xade2('0x5e')][_0xa3732b][_0xade2('0x5d')];if(_0x5bf1b5){var _0x57c2f4=path[_0xade2('0x57')](_0x5e8881,_0x5bf1b5['basename']);if(fs[_0xade2('0x61')](_0x57c2f4)){fs[_0xade2('0x62')](_0x57c2f4)[_0xade2('0x63')](fs[_0xade2('0x64')](path[_0xade2('0x57')](_0x3fc5f8,_0x5bf1b5['basename'])));}}}return BPromise[_0xade2('0x65')]()['then'](function(){return new BPromise(function(_0x292ce1,_0x477491){zipdir(_0x3fc5f8,{'saveTo':_0x3de064},function(_0x5a3ed0,_0x47f8d8){if(_0x5a3ed0)return _0x477491(_0x5a3ed0);return _0x292ce1(_0x47f8d8);});})[_0xade2('0x2a')](function(){return new BPromise(function(_0x13f1ef,_0x174cda){rimraf(_0x3fc5f8,function(_0x530152){if(_0x530152)_0x174cda(_0x530152);return _0x13f1ef();});});})[_0xade2('0x2a')](function(){return _0x161d6d[_0xade2('0x66')](_0x3de064,_0x29738f,function(_0x440186){if(_0x440186){console[_0xade2('0x67')]('err',_0x440186);}else{fs[_0xade2('0x68')](_0x3de064);}});});});}else{return _0x161d6d[_0xade2('0x12')](0xc8);}})[_0xade2('0x37')](handleError(_0x161d6d,null));};