Built motion from commit e1760111.|2.6.18
[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 _0x6de9=['json','offset','undefined','limit','count','Content-Range','update','then','end','error','stack','name','send','index','map','FaxInteraction','rawAttributes','fieldName','type','key','getOptions','findAll','query','user','show','params','model','keys','filters','intersection','attributes','fields','length','include','merge','options','find','catch','create','body','destroy','describe','FaxMessage','addMessage','ids','omit','getMessages','findOne','nolimit','order','sort','where','FaxInteractionId','filter','$gte','format','YYYY-MM-DD\x20HH:mm:ss','includeAll','rows','addTags','Tag','emit','faxInteractionTags:save','removeTags','download','unix','toString','join','root','server','files','tmp','transcript-%d-%s.zip','push','Attachment','Messages','createdAt','get','mkdirSync','basename','existsSync','pipe','createWriteStream','log','err','unlinkSync','rimraf','zip-dir','bluebird','util','path','lodash','ioredis','../../components/interaction/service','../../components/parsers/qs','../../config/logger','api','../../config/environment','redis','defaults','localhost','socket.io-emitter','./faxInteraction.socket','sendStatus','status'];(function(_0x22e679,_0x39a6c5){var _0x3b793b=function(_0x25f580){while(--_0x25f580){_0x22e679['push'](_0x22e679['shift']());}};_0x3b793b(++_0x39a6c5);}(_0x6de9,0x191));var _0x96de=function(_0x618414,_0x1a7a60){_0x618414=_0x618414-0x0;var _0x21c19a=_0x6de9[_0x618414];return _0x21c19a;};'use strict';var rimraf=require(_0x96de('0x0'));var zipdir=require(_0x96de('0x1'));var moment=require('moment');var BPromise=require(_0x96de('0x2'));var util=require(_0x96de('0x3'));var path=require(_0x96de('0x4'));var fs=require('fs');var _=require(_0x96de('0x5'));var Redis=require(_0x96de('0x6'));var interaction=require(_0x96de('0x7'));var qs=require(_0x96de('0x8'));var logger=require(_0x96de('0x9'))(_0x96de('0xa'));var config=require(_0x96de('0xb'));var db=require('../../mysqldb')['db'];config[_0x96de('0xc')]=_[_0x96de('0xd')](config['redis'],{'host':_0x96de('0xe'),'port':0x18eb});var socket=require(_0x96de('0xf'))(new Redis(config[_0x96de('0xc')]));require(_0x96de('0x10'))['register'](socket);function respondWithStatusCode(_0x219079,_0x2f048d){_0x2f048d=_0x2f048d||0xcc;return function(_0x5191b8){if(_0x5191b8){return _0x219079[_0x96de('0x11')](_0x2f048d);}return _0x219079[_0x96de('0x12')](_0x2f048d)['end']();};}function respondWithResult(_0xab73f3,_0x3de513){_0x3de513=_0x3de513||0xc8;return function(_0x5dc791){if(_0x5dc791){return _0xab73f3['status'](_0x3de513)[_0x96de('0x13')](_0x5dc791);}};}function respondWithFilteredResult(_0x4dccde,_0x52454f){return function(_0x18a49f){if(_0x18a49f){var _0xf21fb4=typeof _0x52454f[_0x96de('0x14')]===_0x96de('0x15')&&typeof _0x52454f[_0x96de('0x16')]===_0x96de('0x15');var _0x47980f=_0x18a49f[_0x96de('0x17')];var _0x13efc5=_0xf21fb4?0x0:_0x52454f[_0x96de('0x14')];var _0x3042d1=_0xf21fb4?_0x18a49f[_0x96de('0x17')]:_0x52454f[_0x96de('0x14')]+_0x52454f[_0x96de('0x16')];var _0x84390a;if(_0x3042d1>=_0x47980f){_0x3042d1=_0x47980f;_0x84390a=0xc8;}else{_0x84390a=0xce;}_0x4dccde['status'](_0x84390a);return _0x4dccde['set'](_0x96de('0x18'),_0x13efc5+'-'+_0x3042d1+'/'+_0x47980f)[_0x96de('0x13')](_0x18a49f);}return null;};}function saveUpdates(_0x47966c){return function(_0x48de62){if(_0x48de62){return _0x48de62[_0x96de('0x19')](_0x47966c)[_0x96de('0x1a')](function(_0x22cc47){return _0x22cc47;});}return null;};}function removeEntity(_0x2a3d13){return function(_0x10465a){if(_0x10465a){return _0x10465a['destroy']()['then'](function(){_0x2a3d13[_0x96de('0x12')](0xcc)[_0x96de('0x1b')]();});}};}function handleEntityNotFound(_0x443265){return function(_0x3674a2){if(!_0x3674a2){_0x443265['sendStatus'](0x194);}return _0x3674a2;};}function handleError(_0x420f85,_0x520fe4){_0x520fe4=_0x520fe4||0x1f4;return function(_0x36a7c6){logger[_0x96de('0x1c')](_0x36a7c6[_0x96de('0x1d')]);if(_0x36a7c6['name']){delete _0x36a7c6[_0x96de('0x1e')];}_0x420f85[_0x96de('0x12')](_0x520fe4)[_0x96de('0x1f')](_0x36a7c6);};}exports[_0x96de('0x20')]=function(_0x2da196,_0x4e9b9d){var _0x4b8eb9={};var _0xf0074=_[_0x96de('0x21')](db[_0x96de('0x22')][_0x96de('0x23')],function(_0x1ead38){return{'name':_0x1ead38[_0x96de('0x24')],'type':_0x1ead38[_0x96de('0x25')][_0x96de('0x26')]};});_0x4b8eb9=qs[_0x96de('0x27')](_0xf0074,_0x2da196);return interaction[_0x96de('0x28')]('fax',_0x2da196[_0x96de('0x29')],_0x2da196[_0x96de('0x2a')],_0x4b8eb9,_0xf0074)[_0x96de('0x1a')](respondWithFilteredResult(_0x4e9b9d,_0x4b8eb9))['catch'](handleError(_0x4e9b9d,null));};exports[_0x96de('0x2b')]=function(_0x2b4eac,_0x279d53){var _0x257859={'raw':![],'where':{'id':_0x2b4eac[_0x96de('0x2c')]['id']}},_0xc3f37f={};_0xc3f37f[_0x96de('0x2d')]=_[_0x96de('0x2e')](db['FaxInteraction'][_0x96de('0x23')]);_0xc3f37f[_0x96de('0x29')]=_[_0x96de('0x2e')](_0x2b4eac['query']);_0xc3f37f[_0x96de('0x2f')]=_[_0x96de('0x30')](_0xc3f37f[_0x96de('0x2d')],_0xc3f37f['query']);_0x257859[_0x96de('0x31')]=_[_0x96de('0x30')](_0xc3f37f[_0x96de('0x2d')],qs[_0x96de('0x32')](_0x2b4eac[_0x96de('0x29')][_0x96de('0x32')]));_0x257859[_0x96de('0x31')]=_0x257859[_0x96de('0x31')][_0x96de('0x33')]?_0x257859[_0x96de('0x31')]:_0xc3f37f[_0x96de('0x2d')];if(_0x2b4eac[_0x96de('0x29')]['includeAll']){_0x257859[_0x96de('0x34')]=[{'all':!![]}];}_0x257859=_[_0x96de('0x35')]({},_0x257859,_0x2b4eac[_0x96de('0x36')]);return db[_0x96de('0x22')][_0x96de('0x37')](_0x257859)['then'](handleEntityNotFound(_0x279d53,null))[_0x96de('0x1a')](respondWithResult(_0x279d53,null))[_0x96de('0x38')](handleError(_0x279d53,null));};exports['create']=function(_0x29ac66,_0x33ee3a){return db[_0x96de('0x22')][_0x96de('0x39')](_0x29ac66[_0x96de('0x3a')],{})['then'](respondWithResult(_0x33ee3a,0xc9))[_0x96de('0x38')](handleError(_0x33ee3a,null));};exports[_0x96de('0x19')]=function(_0x3e3cfd,_0x304198){if(_0x3e3cfd['body']['id']){delete _0x3e3cfd[_0x96de('0x3a')]['id'];}return db[_0x96de('0x22')][_0x96de('0x37')]({'where':{'id':_0x3e3cfd[_0x96de('0x2c')]['id']}})[_0x96de('0x1a')](handleEntityNotFound(_0x304198,null))['then'](saveUpdates(_0x3e3cfd[_0x96de('0x3a')],null))[_0x96de('0x1a')](respondWithResult(_0x304198,null))['catch'](handleError(_0x304198,null));};exports[_0x96de('0x3b')]=function(_0x35a2f4,_0xb02711){return db[_0x96de('0x22')][_0x96de('0x37')]({'where':{'id':_0x35a2f4[_0x96de('0x2c')]['id']}})['then'](handleEntityNotFound(_0xb02711,null))[_0x96de('0x1a')](removeEntity(_0xb02711,null))[_0x96de('0x38')](handleError(_0xb02711,null));};exports['describe']=function(_0x3b5ac5,_0x472988){return db[_0x96de('0x22')][_0x96de('0x3c')]()[_0x96de('0x1a')](respondWithResult(_0x472988,null))[_0x96de('0x38')](handleError(_0x472988,null));};exports['addMessage']=function(_0x24963b,_0x53c85c){return db[_0x96de('0x3d')][_0x96de('0x37')]({'where':{'id':_0x24963b[_0x96de('0x2c')]['id']}})['then'](handleEntityNotFound(_0x53c85c,null))[_0x96de('0x1a')](function(_0x5124dd){if(_0x5124dd){return _0x5124dd[_0x96de('0x3e')](_0x24963b[_0x96de('0x3a')][_0x96de('0x3f')],_[_0x96de('0x40')](_0x24963b[_0x96de('0x3a')],[_0x96de('0x3f'),'id'])||{});}})[_0x96de('0x1a')](respondWithResult(_0x53c85c,null))['catch'](handleError(_0x53c85c,null));};exports[_0x96de('0x41')]=function(_0x485bc6,_0xf871fc){var _0x3e2f6b={'raw':![],'where':{}};var _0x4a5c12={};var _0x1cfda3={'count':0x0,'rows':[]};return db['FaxInteraction'][_0x96de('0x42')]({'where':{'id':_0x485bc6['params']['id']}})[_0x96de('0x1a')](handleEntityNotFound(_0xf871fc,null))['then'](function(_0x2c4b2a){if(_0x2c4b2a){_0x4a5c12[_0x96de('0x2d')]=_[_0x96de('0x2e')](db[_0x96de('0x3d')][_0x96de('0x23')]);_0x4a5c12[_0x96de('0x29')]=_[_0x96de('0x2e')](_0x485bc6[_0x96de('0x29')]);_0x4a5c12[_0x96de('0x2f')]=_[_0x96de('0x30')](_0x4a5c12[_0x96de('0x2d')],_0x4a5c12[_0x96de('0x29')]);_0x3e2f6b[_0x96de('0x31')]=_[_0x96de('0x30')](_0x4a5c12[_0x96de('0x2d')],qs['fields'](_0x485bc6[_0x96de('0x29')]['fields']));_0x3e2f6b['attributes']=_0x3e2f6b['attributes'][_0x96de('0x33')]?_0x3e2f6b[_0x96de('0x31')]:_0x4a5c12[_0x96de('0x2d')];if(!_0x485bc6[_0x96de('0x29')]['hasOwnProperty'](_0x96de('0x43'))){_0x3e2f6b[_0x96de('0x16')]=qs[_0x96de('0x16')](_0x485bc6[_0x96de('0x29')]['limit']);_0x3e2f6b['offset']=qs[_0x96de('0x14')](_0x485bc6[_0x96de('0x29')][_0x96de('0x14')]);}_0x3e2f6b[_0x96de('0x44')]=qs['sort'](_0x485bc6[_0x96de('0x29')][_0x96de('0x45')]);_0x3e2f6b['where']=qs[_0x96de('0x2f')](_['pick'](_0x485bc6[_0x96de('0x29')],_0x4a5c12[_0x96de('0x2f')]));_0x3e2f6b[_0x96de('0x46')][_0x96de('0x47')]=_0x2c4b2a['id'];if(_0x485bc6[_0x96de('0x29')][_0x96de('0x48')]){_0x3e2f6b[_0x96de('0x46')]=_[_0x96de('0x35')](_0x3e2f6b[_0x96de('0x46')],{'$or':_[_0x96de('0x21')](_0x3e2f6b[_0x96de('0x31')],function(_0x8120e1){var _0x2c1ea6={};_0x2c1ea6[_0x8120e1]={'$like':'%'+_0x485bc6[_0x96de('0x29')][_0x96de('0x48')]+'%'};return _0x2c1ea6;})});}if(_0x485bc6[_0x96de('0x29')][_0x96de('0x49')]){var _0x53ec75=_0x485bc6['query'][_0x96de('0x49')]['split'](',');var _0x1b76eb={};_0x1b76eb[_0x53ec75[0x0]]={'$gte':moment(_0x53ec75[0x1])[_0x96de('0x4a')](_0x96de('0x4b'))};_0x3e2f6b['where']=_[_0x96de('0x35')](_0x3e2f6b[_0x96de('0x46')],_0x1b76eb);}_0x3e2f6b=_[_0x96de('0x35')]({},_0x3e2f6b,_0x485bc6[_0x96de('0x36')]);return db['FaxMessage'][_0x96de('0x17')]({'where':_0x3e2f6b[_0x96de('0x46')]})[_0x96de('0x1a')](function(_0x144d79){_0x1cfda3['count']=_0x144d79;if(_0x485bc6['query'][_0x96de('0x4c')]){_0x3e2f6b['include']=[{'all':!![]}];}return db[_0x96de('0x3d')][_0x96de('0x28')](_0x3e2f6b);})[_0x96de('0x1a')](function(_0x5068f2){_0x1cfda3[_0x96de('0x4d')]=_0x5068f2;return _0x1cfda3;});}})['then'](respondWithFilteredResult(_0xf871fc,_0x3e2f6b))['catch'](handleError(_0xf871fc,null));};exports[_0x96de('0x4e')]=function(_0x4e584d,_0x49b650){return db[_0x96de('0x22')]['find']({'where':{'id':_0x4e584d[_0x96de('0x2c')]['id']}})[_0x96de('0x1a')](handleEntityNotFound(_0x49b650,null))[_0x96de('0x1a')](function(_0x1a59c1){if(_0x1a59c1){return _0x1a59c1['setTags'](_0x4e584d[_0x96de('0x3a')][_0x96de('0x3f')],_[_0x96de('0x40')](_0x4e584d[_0x96de('0x3a')],['ids','id'])||{})['spread'](function(){return db[_0x96de('0x4f')][_0x96de('0x28')]({'attributes':['id',_0x96de('0x1e'),'color'],'where':{'id':_0x4e584d[_0x96de('0x3a')][_0x96de('0x3f')]}});})[_0x96de('0x1a')](function(_0x5bc07a){socket[_0x96de('0x50')](_0x96de('0x51'),{'id':Number(_0x4e584d[_0x96de('0x2c')]['id']),'tags':_0x5bc07a||[]});return{'id':Number(_0x4e584d[_0x96de('0x2c')]['id']),'tags':_0x5bc07a||[]};});}})['then'](respondWithResult(_0x49b650,null))[_0x96de('0x38')](handleError(_0x49b650,null));};exports[_0x96de('0x52')]=function(_0x8f260f,_0x57f675){return db['FaxInteraction'][_0x96de('0x37')]({'where':{'id':_0x8f260f['params']['id']}})[_0x96de('0x1a')](handleEntityNotFound(_0x57f675,null))['then'](function(_0x5602a3){if(_0x5602a3){return _0x5602a3[_0x96de('0x52')](_0x8f260f[_0x96de('0x29')][_0x96de('0x3f')]);}})[_0x96de('0x1a')](respondWithStatusCode(_0x57f675,null))['catch'](handleError(_0x57f675,null));};exports[_0x96de('0x53')]=function(_0x4ca14a,_0x27a81a){var _0x2b7a07=moment()[_0x96de('0x54')]()[_0x96de('0x55')]();var _0x3724fc=path[_0x96de('0x56')](config[_0x96de('0x57')],_0x96de('0x58'),_0x96de('0x59'),_0x96de('0x5a'));var _0xf2690d=path[_0x96de('0x56')](config['root'],'server',_0x96de('0x59'),'attachments');var _0x1fd7b8=path[_0x96de('0x56')](_0x3724fc,_0x2b7a07);var _0x60dc6b=util[_0x96de('0x4a')](_0x96de('0x5b'),_0x4ca14a[_0x96de('0x2c')]['id'],_0x2b7a07);var _0x3ceb48=path[_0x96de('0x56')](_0x3724fc,_0x60dc6b);var _0x505ffe=[];_0x505ffe[_0x96de('0x5c')]({'model':db[_0x96de('0x5d')],'as':_0x96de('0x5d'),'raw':!![]});var _0x3cff7b=[{'model':db[_0x96de('0x3d')],'as':_0x96de('0x5e'),'attributes':['id',_0x96de('0x3a'),_0x96de('0x5f')],'include':_0x505ffe}];return db['FaxInteraction'][_0x96de('0x37')]({'where':{'id':_0x4ca14a['params']['id']},'include':_0x3cff7b})[_0x96de('0x1a')](handleEntityNotFound(_0x27a81a,null))[_0x96de('0x1a')](function(_0x3d4983){if(_0x3d4983&&_0x3d4983['Messages']){var _0x4742e2=_0x3d4983[_0x96de('0x60')]({'plain':!![]});fs[_0x96de('0x61')](_0x1fd7b8);for(var _0x5bca7c=0x0;_0x5bca7c<_0x4742e2[_0x96de('0x5e')][_0x96de('0x33')];_0x5bca7c++){var _0x2d38f8=_0x4742e2[_0x96de('0x5e')][_0x5bca7c]['Attachment'];if(_0x2d38f8){var _0x2e76dc=path[_0x96de('0x56')](_0xf2690d,_0x2d38f8[_0x96de('0x62')]);if(fs[_0x96de('0x63')](_0x2e76dc)){fs['createReadStream'](_0x2e76dc)[_0x96de('0x64')](fs[_0x96de('0x65')](path[_0x96de('0x56')](_0x1fd7b8,_0x2d38f8[_0x96de('0x62')])));}}}return BPromise['resolve']()[_0x96de('0x1a')](function(){return new BPromise(function(_0x54c447,_0x5daa10){zipdir(_0x1fd7b8,{'saveTo':_0x3ceb48},function(_0x22d208,_0x4f0b47){if(_0x22d208)return _0x5daa10(_0x22d208);return _0x54c447(_0x4f0b47);});})[_0x96de('0x1a')](function(){return new BPromise(function(_0x4ffba6,_0x4d3521){rimraf(_0x1fd7b8,function(_0x240b9f){if(_0x240b9f)_0x4d3521(_0x240b9f);return _0x4ffba6();});});})['then'](function(){return _0x27a81a['download'](_0x3ceb48,_0x60dc6b,function(_0x2ceb19){if(_0x2ceb19){console[_0x96de('0x66')](_0x96de('0x67'),_0x2ceb19);}else{fs[_0x96de('0x68')](_0x3ceb48);}});});});}else{return _0x27a81a[_0x96de('0x11')](0xc8);}})['catch'](handleError(_0x27a81a,null));};