42b478c8ebf943c06da6c54d89836c548cf43efd
[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 _0xaefb=['name','send','index','map','FaxInteraction','rawAttributes','key','getOptions','findAll','fax','query','user','show','params','model','keys','filters','intersection','attributes','fields','length','includeAll','include','merge','catch','create','body','find','describe','FaxMessage','ids','omit','getMessages','findOne','nolimit','order','sort','where','pick','FaxInteractionId','filter','$gte','split','format','YYYY-MM-DD\x20HH:mm:ss','options','rows','addTags','spread','emit','faxInteractionTags:save','removeTags','download','unix','root','server','files','tmp','attachments','join','transcript-%d-%s.zip','Attachment','Messages','get','mkdirSync','basename','existsSync','createReadStream','pipe','createWriteStream','resolve','log','err','unlinkSync','rimraf','zip-dir','bluebird','util','path','lodash','ioredis','../../components/interaction/service','../../components/parsers/qs','api','../../config/environment','../../mysqldb','defaults','redis','localhost','socket.io-emitter','./faxInteraction.socket','register','sendStatus','status','end','json','offset','undefined','limit','count','set','Content-Range','update','then','destroy','error'];(function(_0x145eb1,_0x5c44c3){var _0x3d7109=function(_0x2d4c6a){while(--_0x2d4c6a){_0x145eb1['push'](_0x145eb1['shift']());}};_0x3d7109(++_0x5c44c3);}(_0xaefb,0x188));var _0xbaef=function(_0x14a862,_0x2b559d){_0x14a862=_0x14a862-0x0;var _0x245eb5=_0xaefb[_0x14a862];return _0x245eb5;};'use strict';var rimraf=require(_0xbaef('0x0'));var zipdir=require(_0xbaef('0x1'));var moment=require('moment');var BPromise=require(_0xbaef('0x2'));var util=require(_0xbaef('0x3'));var path=require(_0xbaef('0x4'));var fs=require('fs');var _=require(_0xbaef('0x5'));var Redis=require(_0xbaef('0x6'));var interaction=require(_0xbaef('0x7'));var qs=require(_0xbaef('0x8'));var logger=require('../../config/logger')(_0xbaef('0x9'));var config=require(_0xbaef('0xa'));var db=require(_0xbaef('0xb'))['db'];config['redis']=_[_0xbaef('0xc')](config[_0xbaef('0xd')],{'host':_0xbaef('0xe'),'port':0x18eb});var socket=require(_0xbaef('0xf'))(new Redis(config[_0xbaef('0xd')]));require(_0xbaef('0x10'))[_0xbaef('0x11')](socket);function respondWithStatusCode(_0x27862e,_0xd6a96f){_0xd6a96f=_0xd6a96f||0xcc;return function(_0x166eb3){if(_0x166eb3){return _0x27862e[_0xbaef('0x12')](_0xd6a96f);}return _0x27862e[_0xbaef('0x13')](_0xd6a96f)[_0xbaef('0x14')]();};}function respondWithResult(_0x267911,_0x5153f3){_0x5153f3=_0x5153f3||0xc8;return function(_0xd5e81f){if(_0xd5e81f){return _0x267911[_0xbaef('0x13')](_0x5153f3)[_0xbaef('0x15')](_0xd5e81f);}};}function respondWithFilteredResult(_0x382c5b,_0x1bb690){return function(_0x18a97d){if(_0x18a97d){var _0x328b6b=typeof _0x1bb690[_0xbaef('0x16')]===_0xbaef('0x17')&&typeof _0x1bb690[_0xbaef('0x18')]===_0xbaef('0x17');var _0x11d59c=_0x18a97d[_0xbaef('0x19')];var _0x15c714=_0x328b6b?0x0:_0x1bb690[_0xbaef('0x16')];var _0x17da93=_0x328b6b?_0x18a97d[_0xbaef('0x19')]:_0x1bb690[_0xbaef('0x16')]+_0x1bb690[_0xbaef('0x18')];var _0x5ec55f;if(_0x17da93>=_0x11d59c){_0x17da93=_0x11d59c;_0x5ec55f=0xc8;}else{_0x5ec55f=0xce;}_0x382c5b[_0xbaef('0x13')](_0x5ec55f);return _0x382c5b[_0xbaef('0x1a')](_0xbaef('0x1b'),_0x15c714+'-'+_0x17da93+'/'+_0x11d59c)[_0xbaef('0x15')](_0x18a97d);}return null;};}function saveUpdates(_0xb9f407){return function(_0x1f34c5){if(_0x1f34c5){return _0x1f34c5[_0xbaef('0x1c')](_0xb9f407)[_0xbaef('0x1d')](function(_0x3f7acc){return _0x3f7acc;});}return null;};}function removeEntity(_0x1f24d2){return function(_0x16bc58){if(_0x16bc58){return _0x16bc58[_0xbaef('0x1e')]()[_0xbaef('0x1d')](function(){_0x1f24d2[_0xbaef('0x13')](0xcc)[_0xbaef('0x14')]();});}};}function handleEntityNotFound(_0x1b2b23){return function(_0x52d7e9){if(!_0x52d7e9){_0x1b2b23[_0xbaef('0x12')](0x194);}return _0x52d7e9;};}function handleError(_0x553ca7,_0x5192bf){_0x5192bf=_0x5192bf||0x1f4;return function(_0x5867b8){logger[_0xbaef('0x1f')](_0x5867b8['stack']);if(_0x5867b8[_0xbaef('0x20')]){delete _0x5867b8['name'];}_0x553ca7[_0xbaef('0x13')](_0x5192bf)[_0xbaef('0x21')](_0x5867b8);};}exports[_0xbaef('0x22')]=function(_0x3e2d10,_0x472b7d){var _0x2f83ec={};var _0xdab03c=_[_0xbaef('0x23')](db[_0xbaef('0x24')][_0xbaef('0x25')],function(_0x3c15fb){return{'name':_0x3c15fb['fieldName'],'type':_0x3c15fb['type'][_0xbaef('0x26')]};});_0x2f83ec=qs[_0xbaef('0x27')](_0xdab03c,_0x3e2d10);return interaction[_0xbaef('0x28')](_0xbaef('0x29'),_0x3e2d10[_0xbaef('0x2a')],_0x3e2d10[_0xbaef('0x2b')],_0x2f83ec,_0xdab03c)[_0xbaef('0x1d')](respondWithFilteredResult(_0x472b7d,_0x2f83ec))['catch'](handleError(_0x472b7d,null));};exports[_0xbaef('0x2c')]=function(_0x139ba9,_0x396bb2){var _0x6537de={'raw':![],'where':{'id':_0x139ba9[_0xbaef('0x2d')]['id']}},_0x3f69a2={};_0x3f69a2[_0xbaef('0x2e')]=_[_0xbaef('0x2f')](db[_0xbaef('0x24')]['rawAttributes']);_0x3f69a2[_0xbaef('0x2a')]=_[_0xbaef('0x2f')](_0x139ba9[_0xbaef('0x2a')]);_0x3f69a2[_0xbaef('0x30')]=_[_0xbaef('0x31')](_0x3f69a2[_0xbaef('0x2e')],_0x3f69a2['query']);_0x6537de[_0xbaef('0x32')]=_[_0xbaef('0x31')](_0x3f69a2[_0xbaef('0x2e')],qs[_0xbaef('0x33')](_0x139ba9['query'][_0xbaef('0x33')]));_0x6537de[_0xbaef('0x32')]=_0x6537de[_0xbaef('0x32')][_0xbaef('0x34')]?_0x6537de[_0xbaef('0x32')]:_0x3f69a2[_0xbaef('0x2e')];if(_0x139ba9[_0xbaef('0x2a')][_0xbaef('0x35')]){_0x6537de[_0xbaef('0x36')]=[{'all':!![]}];}_0x6537de=_[_0xbaef('0x37')]({},_0x6537de,_0x139ba9['options']);return db[_0xbaef('0x24')]['find'](_0x6537de)[_0xbaef('0x1d')](handleEntityNotFound(_0x396bb2,null))[_0xbaef('0x1d')](respondWithResult(_0x396bb2,null))[_0xbaef('0x38')](handleError(_0x396bb2,null));};exports[_0xbaef('0x39')]=function(_0x5acf25,_0x72203a){return db['FaxInteraction']['create'](_0x5acf25[_0xbaef('0x3a')],{})[_0xbaef('0x1d')](respondWithResult(_0x72203a,0xc9))[_0xbaef('0x38')](handleError(_0x72203a,null));};exports[_0xbaef('0x1c')]=function(_0x18e038,_0x44a6f5){if(_0x18e038[_0xbaef('0x3a')]['id']){delete _0x18e038[_0xbaef('0x3a')]['id'];}return db[_0xbaef('0x24')]['find']({'where':{'id':_0x18e038[_0xbaef('0x2d')]['id']}})[_0xbaef('0x1d')](handleEntityNotFound(_0x44a6f5,null))[_0xbaef('0x1d')](saveUpdates(_0x18e038[_0xbaef('0x3a')],null))[_0xbaef('0x1d')](respondWithResult(_0x44a6f5,null))[_0xbaef('0x38')](handleError(_0x44a6f5,null));};exports[_0xbaef('0x1e')]=function(_0x221a34,_0x19b2b1){return db[_0xbaef('0x24')][_0xbaef('0x3b')]({'where':{'id':_0x221a34[_0xbaef('0x2d')]['id']}})[_0xbaef('0x1d')](handleEntityNotFound(_0x19b2b1,null))[_0xbaef('0x1d')](removeEntity(_0x19b2b1,null))[_0xbaef('0x38')](handleError(_0x19b2b1,null));};exports['describe']=function(_0x426c46,_0x38f96b){return db[_0xbaef('0x24')][_0xbaef('0x3c')]()[_0xbaef('0x1d')](respondWithResult(_0x38f96b,null))[_0xbaef('0x38')](handleError(_0x38f96b,null));};exports['addMessage']=function(_0x116dc3,_0x76ed16){return db[_0xbaef('0x3d')][_0xbaef('0x3b')]({'where':{'id':_0x116dc3[_0xbaef('0x2d')]['id']}})[_0xbaef('0x1d')](handleEntityNotFound(_0x76ed16,null))[_0xbaef('0x1d')](function(_0x7feb6c){if(_0x7feb6c){return _0x7feb6c['addMessage'](_0x116dc3[_0xbaef('0x3a')][_0xbaef('0x3e')],_[_0xbaef('0x3f')](_0x116dc3[_0xbaef('0x3a')],[_0xbaef('0x3e'),'id'])||{});}})[_0xbaef('0x1d')](respondWithResult(_0x76ed16,null))[_0xbaef('0x38')](handleError(_0x76ed16,null));};exports[_0xbaef('0x40')]=function(_0x1b7496,_0x5e399a){var _0x4038cb={'raw':![],'where':{}};var _0x5269db={};var _0x32af61={'count':0x0,'rows':[]};return db[_0xbaef('0x24')][_0xbaef('0x41')]({'where':{'id':_0x1b7496[_0xbaef('0x2d')]['id']}})[_0xbaef('0x1d')](handleEntityNotFound(_0x5e399a,null))[_0xbaef('0x1d')](function(_0x2eeb88){if(_0x2eeb88){_0x5269db[_0xbaef('0x2e')]=_[_0xbaef('0x2f')](db[_0xbaef('0x3d')][_0xbaef('0x25')]);_0x5269db[_0xbaef('0x2a')]=_[_0xbaef('0x2f')](_0x1b7496['query']);_0x5269db[_0xbaef('0x30')]=_[_0xbaef('0x31')](_0x5269db[_0xbaef('0x2e')],_0x5269db[_0xbaef('0x2a')]);_0x4038cb[_0xbaef('0x32')]=_[_0xbaef('0x31')](_0x5269db[_0xbaef('0x2e')],qs[_0xbaef('0x33')](_0x1b7496[_0xbaef('0x2a')][_0xbaef('0x33')]));_0x4038cb[_0xbaef('0x32')]=_0x4038cb[_0xbaef('0x32')][_0xbaef('0x34')]?_0x4038cb['attributes']:_0x5269db[_0xbaef('0x2e')];if(!_0x1b7496[_0xbaef('0x2a')]['hasOwnProperty'](_0xbaef('0x42'))){_0x4038cb[_0xbaef('0x18')]=qs[_0xbaef('0x18')](_0x1b7496[_0xbaef('0x2a')][_0xbaef('0x18')]);_0x4038cb[_0xbaef('0x16')]=qs['offset'](_0x1b7496[_0xbaef('0x2a')]['offset']);}_0x4038cb[_0xbaef('0x43')]=qs[_0xbaef('0x44')](_0x1b7496[_0xbaef('0x2a')][_0xbaef('0x44')]);_0x4038cb[_0xbaef('0x45')]=qs[_0xbaef('0x30')](_[_0xbaef('0x46')](_0x1b7496[_0xbaef('0x2a')],_0x5269db['filters']));_0x4038cb[_0xbaef('0x45')][_0xbaef('0x47')]=_0x2eeb88['id'];if(_0x1b7496[_0xbaef('0x2a')][_0xbaef('0x48')]){_0x4038cb[_0xbaef('0x45')]=_[_0xbaef('0x37')](_0x4038cb[_0xbaef('0x45')],{'$or':_['map'](_0x4038cb[_0xbaef('0x32')],function(_0x42a118){var _0x48e618={};_0x48e618[_0x42a118]={'$like':'%'+_0x1b7496[_0xbaef('0x2a')][_0xbaef('0x48')]+'%'};return _0x48e618;})});}if(_0x1b7496['query'][_0xbaef('0x49')]){var _0x2cd719=_0x1b7496[_0xbaef('0x2a')][_0xbaef('0x49')][_0xbaef('0x4a')](',');var _0x38b8e8={};_0x38b8e8[_0x2cd719[0x0]]={'$gte':moment(_0x2cd719[0x1])[_0xbaef('0x4b')](_0xbaef('0x4c'))};_0x4038cb[_0xbaef('0x45')]=_[_0xbaef('0x37')](_0x4038cb[_0xbaef('0x45')],_0x38b8e8);}_0x4038cb=_['merge']({},_0x4038cb,_0x1b7496[_0xbaef('0x4d')]);return db[_0xbaef('0x3d')]['count']({'where':_0x4038cb[_0xbaef('0x45')]})['then'](function(_0x39c186){_0x32af61[_0xbaef('0x19')]=_0x39c186;if(_0x1b7496['query']['includeAll']){_0x4038cb[_0xbaef('0x36')]=[{'all':!![]}];}return db['FaxMessage']['findAll'](_0x4038cb);})[_0xbaef('0x1d')](function(_0x4b7d02){_0x32af61[_0xbaef('0x4e')]=_0x4b7d02;return _0x32af61;});}})[_0xbaef('0x1d')](respondWithFilteredResult(_0x5e399a,_0x4038cb))[_0xbaef('0x38')](handleError(_0x5e399a,null));};exports[_0xbaef('0x4f')]=function(_0x53e805,_0xe6b9ea){return db[_0xbaef('0x24')]['find']({'where':{'id':_0x53e805[_0xbaef('0x2d')]['id']}})['then'](handleEntityNotFound(_0xe6b9ea,null))[_0xbaef('0x1d')](function(_0xae496){if(_0xae496){return _0xae496['setTags'](_0x53e805[_0xbaef('0x3a')][_0xbaef('0x3e')],_[_0xbaef('0x3f')](_0x53e805[_0xbaef('0x3a')],[_0xbaef('0x3e'),'id'])||{})[_0xbaef('0x50')](function(){return db['Tag'][_0xbaef('0x28')]({'attributes':['id',_0xbaef('0x20'),'color'],'where':{'id':_0x53e805[_0xbaef('0x3a')][_0xbaef('0x3e')]}});})[_0xbaef('0x1d')](function(_0x3d055c){socket[_0xbaef('0x51')](_0xbaef('0x52'),{'id':Number(_0x53e805[_0xbaef('0x2d')]['id']),'tags':_0x3d055c||[]});return{'id':Number(_0x53e805[_0xbaef('0x2d')]['id']),'tags':_0x3d055c||[]};});}})[_0xbaef('0x1d')](respondWithResult(_0xe6b9ea,null))[_0xbaef('0x38')](handleError(_0xe6b9ea,null));};exports[_0xbaef('0x53')]=function(_0x2bc653,_0x540359){return db[_0xbaef('0x24')][_0xbaef('0x3b')]({'where':{'id':_0x2bc653[_0xbaef('0x2d')]['id']}})[_0xbaef('0x1d')](handleEntityNotFound(_0x540359,null))['then'](function(_0x3f8a8f){if(_0x3f8a8f){return _0x3f8a8f['removeTags'](_0x2bc653['query'][_0xbaef('0x3e')]);}})['then'](respondWithStatusCode(_0x540359,null))[_0xbaef('0x38')](handleError(_0x540359,null));};exports[_0xbaef('0x54')]=function(_0xcddd8c,_0x54aa1){var _0x54c8ae=moment()[_0xbaef('0x55')]()['toString']();var _0x418ccf=path['join'](config[_0xbaef('0x56')],_0xbaef('0x57'),_0xbaef('0x58'),_0xbaef('0x59'));var _0x3050a5=path['join'](config[_0xbaef('0x56')],_0xbaef('0x57'),_0xbaef('0x58'),_0xbaef('0x5a'));var _0x172d78=path[_0xbaef('0x5b')](_0x418ccf,_0x54c8ae);var _0x81742=util[_0xbaef('0x4b')](_0xbaef('0x5c'),_0xcddd8c[_0xbaef('0x2d')]['id'],_0x54c8ae);var _0x298a31=path[_0xbaef('0x5b')](_0x418ccf,_0x81742);var _0x5e5ae6=[];_0x5e5ae6['push']({'model':db[_0xbaef('0x5d')],'as':_0xbaef('0x5d'),'raw':!![]});var _0x2dddbb=[{'model':db[_0xbaef('0x3d')],'as':_0xbaef('0x5e'),'attributes':['id',_0xbaef('0x3a'),'createdAt'],'include':_0x5e5ae6}];return db['FaxInteraction']['find']({'where':{'id':_0xcddd8c[_0xbaef('0x2d')]['id']},'include':_0x2dddbb})[_0xbaef('0x1d')](handleEntityNotFound(_0x54aa1,null))['then'](function(_0x4c8223){if(_0x4c8223&&_0x4c8223['Messages']){var _0x530a3b=_0x4c8223[_0xbaef('0x5f')]({'plain':!![]});fs[_0xbaef('0x60')](_0x172d78);for(var _0x42c0d8=0x0;_0x42c0d8<_0x530a3b[_0xbaef('0x5e')][_0xbaef('0x34')];_0x42c0d8++){var _0x167c92=_0x530a3b[_0xbaef('0x5e')][_0x42c0d8][_0xbaef('0x5d')];if(_0x167c92){var _0x27ee25=path[_0xbaef('0x5b')](_0x3050a5,_0x167c92[_0xbaef('0x61')]);if(fs[_0xbaef('0x62')](_0x27ee25)){fs[_0xbaef('0x63')](_0x27ee25)[_0xbaef('0x64')](fs[_0xbaef('0x65')](path['join'](_0x172d78,_0x167c92['basename'])));}}}return BPromise[_0xbaef('0x66')]()['then'](function(){return new BPromise(function(_0x4cc8d8,_0x15e6c2){zipdir(_0x172d78,{'saveTo':_0x298a31},function(_0x4c722a,_0x3286bd){if(_0x4c722a)return _0x15e6c2(_0x4c722a);return _0x4cc8d8(_0x3286bd);});})[_0xbaef('0x1d')](function(){return new BPromise(function(_0x89c498,_0x35651c){rimraf(_0x172d78,function(_0x173c6f){if(_0x173c6f)_0x35651c(_0x173c6f);return _0x89c498();});});})[_0xbaef('0x1d')](function(){return _0x54aa1[_0xbaef('0x54')](_0x298a31,_0x81742,function(_0x82ad51){if(_0x82ad51){console[_0xbaef('0x67')](_0xbaef('0x68'),_0x82ad51);}else{fs[_0xbaef('0x69')](_0x298a31);}});});});}else{return _0x54aa1[_0xbaef('0x12')](0xc8);}})[_0xbaef('0x38')](handleError(_0x54aa1,null));};