Built motion from commit 55091a5c.|2.6.30
[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 _0xd8aa=['get','mkdirSync','basename','existsSync','createReadStream','pipe','createWriteStream','resolve','log','err','unlinkSync','rimraf','zip-dir','moment','bluebird','util','path','lodash','ioredis','../../components/interaction/service','../../components/parsers/qs','../../config/logger','api','../../config/environment','../../mysqldb','redis','localhost','socket.io-emitter','./faxInteraction.socket','register','sendStatus','status','end','json','offset','undefined','count','limit','update','destroy','then','error','name','send','map','FaxInteraction','rawAttributes','fieldName','key','getOptions','findAll','fax','query','user','catch','show','params','model','keys','filters','attributes','intersection','fields','length','include','options','create','body','find','describe','addMessage','FaxMessage','ids','omit','getMessages','hasOwnProperty','nolimit','order','sort','where','pick','FaxInteractionId','filter','merge','$gte','split','YYYY-MM-DD\x20HH:mm:ss','includeAll','addTags','setTags','spread','removeTags','download','unix','toString','root','server','join','format','transcript-%d-%s.zip','push','Attachment','Messages','createdAt'];(function(_0x488818,_0x17c6de){var _0x30783c=function(_0x1b418c){while(--_0x1b418c){_0x488818['push'](_0x488818['shift']());}};_0x30783c(++_0x17c6de);}(_0xd8aa,0x1ab));var _0xad8a=function(_0x432682,_0x253044){_0x432682=_0x432682-0x0;var _0x463d05=_0xd8aa[_0x432682];return _0x463d05;};'use strict';var rimraf=require(_0xad8a('0x0'));var zipdir=require(_0xad8a('0x1'));var moment=require(_0xad8a('0x2'));var BPromise=require(_0xad8a('0x3'));var util=require(_0xad8a('0x4'));var path=require(_0xad8a('0x5'));var fs=require('fs');var _=require(_0xad8a('0x6'));var Redis=require(_0xad8a('0x7'));var interaction=require(_0xad8a('0x8'));var qs=require(_0xad8a('0x9'));var logger=require(_0xad8a('0xa'))(_0xad8a('0xb'));var config=require(_0xad8a('0xc'));var db=require(_0xad8a('0xd'))['db'];config[_0xad8a('0xe')]=_['defaults'](config['redis'],{'host':_0xad8a('0xf'),'port':0x18eb});var socket=require(_0xad8a('0x10'))(new Redis(config[_0xad8a('0xe')]));require(_0xad8a('0x11'))[_0xad8a('0x12')](socket);function respondWithStatusCode(_0x3c5c6e,_0x5a3e9f){_0x5a3e9f=_0x5a3e9f||0xcc;return function(_0xf65afb){if(_0xf65afb){return _0x3c5c6e[_0xad8a('0x13')](_0x5a3e9f);}return _0x3c5c6e[_0xad8a('0x14')](_0x5a3e9f)[_0xad8a('0x15')]();};}function respondWithResult(_0x17ede8,_0x15cd28){_0x15cd28=_0x15cd28||0xc8;return function(_0x5615e1){if(_0x5615e1){return _0x17ede8[_0xad8a('0x14')](_0x15cd28)[_0xad8a('0x16')](_0x5615e1);}};}function respondWithFilteredResult(_0x31dd43,_0x247461){return function(_0x227f41){if(_0x227f41){var _0x3d1f79=typeof _0x247461[_0xad8a('0x17')]==='undefined'&&typeof _0x247461['limit']===_0xad8a('0x18');var _0x1fa87d=_0x227f41[_0xad8a('0x19')];var _0xfe5e47=_0x3d1f79?0x0:_0x247461[_0xad8a('0x17')];var _0x372219=_0x3d1f79?_0x227f41['count']:_0x247461[_0xad8a('0x17')]+_0x247461[_0xad8a('0x1a')];var _0x531587;if(_0x372219>=_0x1fa87d){_0x372219=_0x1fa87d;_0x531587=0xc8;}else{_0x531587=0xce;}_0x31dd43['status'](_0x531587);return _0x31dd43['set']('Content-Range',_0xfe5e47+'-'+_0x372219+'/'+_0x1fa87d)[_0xad8a('0x16')](_0x227f41);}return null;};}function saveUpdates(_0x4497e8){return function(_0xfa0223){if(_0xfa0223){return _0xfa0223[_0xad8a('0x1b')](_0x4497e8)['then'](function(_0x32af7){return _0x32af7;});}return null;};}function removeEntity(_0x20dfec){return function(_0x569c8e){if(_0x569c8e){return _0x569c8e[_0xad8a('0x1c')]()[_0xad8a('0x1d')](function(){_0x20dfec[_0xad8a('0x14')](0xcc)['end']();});}};}function handleEntityNotFound(_0x5f0dfd){return function(_0x387553){if(!_0x387553){_0x5f0dfd[_0xad8a('0x13')](0x194);}return _0x387553;};}function handleError(_0x4fd2ec,_0x5359ac){_0x5359ac=_0x5359ac||0x1f4;return function(_0x3d8db1){logger[_0xad8a('0x1e')](_0x3d8db1['stack']);if(_0x3d8db1['name']){delete _0x3d8db1[_0xad8a('0x1f')];}_0x4fd2ec[_0xad8a('0x14')](_0x5359ac)[_0xad8a('0x20')](_0x3d8db1);};}exports['index']=function(_0x3c1c3a,_0x1e1b15){var _0x11dd5d={};var _0x106a4b=_[_0xad8a('0x21')](db[_0xad8a('0x22')][_0xad8a('0x23')],function(_0x4eef25){return{'name':_0x4eef25[_0xad8a('0x24')],'type':_0x4eef25['type'][_0xad8a('0x25')]};});_0x11dd5d=qs[_0xad8a('0x26')](_0x106a4b,_0x3c1c3a);return interaction[_0xad8a('0x27')](_0xad8a('0x28'),_0x3c1c3a[_0xad8a('0x29')],_0x3c1c3a[_0xad8a('0x2a')],_0x11dd5d,_0x106a4b)[_0xad8a('0x1d')](respondWithFilteredResult(_0x1e1b15,_0x11dd5d))[_0xad8a('0x2b')](handleError(_0x1e1b15,null));};exports[_0xad8a('0x2c')]=function(_0x3557a9,_0x3e2af4){var _0x352ba1={'raw':![],'where':{'id':_0x3557a9[_0xad8a('0x2d')]['id']}},_0x428b26={};_0x428b26[_0xad8a('0x2e')]=_[_0xad8a('0x2f')](db[_0xad8a('0x22')][_0xad8a('0x23')]);_0x428b26[_0xad8a('0x29')]=_[_0xad8a('0x2f')](_0x3557a9[_0xad8a('0x29')]);_0x428b26[_0xad8a('0x30')]=_['intersection'](_0x428b26[_0xad8a('0x2e')],_0x428b26['query']);_0x352ba1[_0xad8a('0x31')]=_[_0xad8a('0x32')](_0x428b26['model'],qs[_0xad8a('0x33')](_0x3557a9[_0xad8a('0x29')][_0xad8a('0x33')]));_0x352ba1['attributes']=_0x352ba1[_0xad8a('0x31')][_0xad8a('0x34')]?_0x352ba1[_0xad8a('0x31')]:_0x428b26[_0xad8a('0x2e')];if(_0x3557a9['query']['includeAll']){_0x352ba1[_0xad8a('0x35')]=[{'all':!![]}];}_0x352ba1=_['merge']({},_0x352ba1,_0x3557a9[_0xad8a('0x36')]);return db[_0xad8a('0x22')]['find'](_0x352ba1)[_0xad8a('0x1d')](handleEntityNotFound(_0x3e2af4,null))[_0xad8a('0x1d')](respondWithResult(_0x3e2af4,null))['catch'](handleError(_0x3e2af4,null));};exports['create']=function(_0x503d78,_0x219f88){return db['FaxInteraction'][_0xad8a('0x37')](_0x503d78[_0xad8a('0x38')],{})['then'](respondWithResult(_0x219f88,0xc9))['catch'](handleError(_0x219f88,null));};exports[_0xad8a('0x1b')]=function(_0x7d118,_0x3df33f){if(_0x7d118[_0xad8a('0x38')]['id']){delete _0x7d118[_0xad8a('0x38')]['id'];}return db[_0xad8a('0x22')]['find']({'where':{'id':_0x7d118[_0xad8a('0x2d')]['id']}})[_0xad8a('0x1d')](handleEntityNotFound(_0x3df33f,null))[_0xad8a('0x1d')](saveUpdates(_0x7d118[_0xad8a('0x38')],null))[_0xad8a('0x1d')](respondWithResult(_0x3df33f,null))[_0xad8a('0x2b')](handleError(_0x3df33f,null));};exports[_0xad8a('0x1c')]=function(_0x10fd95,_0x33550b){return db['FaxInteraction'][_0xad8a('0x39')]({'where':{'id':_0x10fd95[_0xad8a('0x2d')]['id']}})[_0xad8a('0x1d')](handleEntityNotFound(_0x33550b,null))[_0xad8a('0x1d')](removeEntity(_0x33550b,null))['catch'](handleError(_0x33550b,null));};exports[_0xad8a('0x3a')]=function(_0x4f5fc0,_0x464270){return db['FaxInteraction'][_0xad8a('0x3a')]()[_0xad8a('0x1d')](respondWithResult(_0x464270,null))['catch'](handleError(_0x464270,null));};exports[_0xad8a('0x3b')]=function(_0x20b124,_0x38c247){return db[_0xad8a('0x3c')][_0xad8a('0x39')]({'where':{'id':_0x20b124[_0xad8a('0x2d')]['id']}})[_0xad8a('0x1d')](handleEntityNotFound(_0x38c247,null))[_0xad8a('0x1d')](function(_0x1c3bf6){if(_0x1c3bf6){return _0x1c3bf6[_0xad8a('0x3b')](_0x20b124[_0xad8a('0x38')][_0xad8a('0x3d')],_[_0xad8a('0x3e')](_0x20b124['body'],[_0xad8a('0x3d'),'id'])||{});}})['then'](respondWithResult(_0x38c247,null))[_0xad8a('0x2b')](handleError(_0x38c247,null));};exports[_0xad8a('0x3f')]=function(_0x480b89,_0x172c55){var _0x48078={'raw':![],'where':{}};var _0x2cd42b={};var _0x3ae406={'count':0x0,'rows':[]};return db['FaxInteraction']['findOne']({'where':{'id':_0x480b89['params']['id']}})[_0xad8a('0x1d')](handleEntityNotFound(_0x172c55,null))[_0xad8a('0x1d')](function(_0x75166){if(_0x75166){_0x2cd42b[_0xad8a('0x2e')]=_[_0xad8a('0x2f')](db['FaxMessage'][_0xad8a('0x23')]);_0x2cd42b[_0xad8a('0x29')]=_[_0xad8a('0x2f')](_0x480b89['query']);_0x2cd42b[_0xad8a('0x30')]=_[_0xad8a('0x32')](_0x2cd42b['model'],_0x2cd42b[_0xad8a('0x29')]);_0x48078[_0xad8a('0x31')]=_[_0xad8a('0x32')](_0x2cd42b['model'],qs[_0xad8a('0x33')](_0x480b89['query'][_0xad8a('0x33')]));_0x48078[_0xad8a('0x31')]=_0x48078[_0xad8a('0x31')][_0xad8a('0x34')]?_0x48078[_0xad8a('0x31')]:_0x2cd42b[_0xad8a('0x2e')];if(!_0x480b89[_0xad8a('0x29')][_0xad8a('0x40')](_0xad8a('0x41'))){_0x48078[_0xad8a('0x1a')]=qs[_0xad8a('0x1a')](_0x480b89[_0xad8a('0x29')][_0xad8a('0x1a')]);_0x48078['offset']=qs[_0xad8a('0x17')](_0x480b89[_0xad8a('0x29')][_0xad8a('0x17')]);}_0x48078[_0xad8a('0x42')]=qs[_0xad8a('0x43')](_0x480b89[_0xad8a('0x29')]['sort']);_0x48078[_0xad8a('0x44')]=qs[_0xad8a('0x30')](_[_0xad8a('0x45')](_0x480b89[_0xad8a('0x29')],_0x2cd42b[_0xad8a('0x30')]));_0x48078[_0xad8a('0x44')][_0xad8a('0x46')]=_0x75166['id'];if(_0x480b89[_0xad8a('0x29')][_0xad8a('0x47')]){_0x48078[_0xad8a('0x44')]=_[_0xad8a('0x48')](_0x48078[_0xad8a('0x44')],{'$or':_[_0xad8a('0x21')](_0x48078[_0xad8a('0x31')],function(_0x321709){var _0x236e1d={};_0x236e1d[_0x321709]={'$like':'%'+_0x480b89[_0xad8a('0x29')][_0xad8a('0x47')]+'%'};return _0x236e1d;})});}if(_0x480b89['query'][_0xad8a('0x49')]){var _0x3e698e=_0x480b89['query'][_0xad8a('0x49')][_0xad8a('0x4a')](',');var _0x23b47c={};_0x23b47c[_0x3e698e[0x0]]={'$gte':moment(_0x3e698e[0x1])['format'](_0xad8a('0x4b'))};_0x48078['where']=_[_0xad8a('0x48')](_0x48078['where'],_0x23b47c);}_0x48078=_[_0xad8a('0x48')]({},_0x48078,_0x480b89[_0xad8a('0x36')]);return db[_0xad8a('0x3c')]['count']({'where':_0x48078[_0xad8a('0x44')]})[_0xad8a('0x1d')](function(_0x536445){_0x3ae406[_0xad8a('0x19')]=_0x536445;if(_0x480b89[_0xad8a('0x29')][_0xad8a('0x4c')]){_0x48078['include']=[{'all':!![]}];}return db[_0xad8a('0x3c')][_0xad8a('0x27')](_0x48078);})[_0xad8a('0x1d')](function(_0x12767a){_0x3ae406['rows']=_0x12767a;return _0x3ae406;});}})[_0xad8a('0x1d')](respondWithFilteredResult(_0x172c55,_0x48078))['catch'](handleError(_0x172c55,null));};exports[_0xad8a('0x4d')]=function(_0x5f064c,_0x24d085){return db[_0xad8a('0x22')][_0xad8a('0x39')]({'where':{'id':_0x5f064c[_0xad8a('0x2d')]['id']}})[_0xad8a('0x1d')](handleEntityNotFound(_0x24d085,null))[_0xad8a('0x1d')](function(_0x8dfcfc){if(_0x8dfcfc){return _0x8dfcfc[_0xad8a('0x4e')](_0x5f064c[_0xad8a('0x38')][_0xad8a('0x3d')],_['omit'](_0x5f064c[_0xad8a('0x38')],['ids','id'])||{})[_0xad8a('0x4f')](function(){return db['Tag'][_0xad8a('0x27')]({'attributes':['id',_0xad8a('0x1f'),'color'],'where':{'id':_0x5f064c[_0xad8a('0x38')][_0xad8a('0x3d')]}});})[_0xad8a('0x1d')](function(_0x4da546){socket['emit']('faxInteractionTags:save',{'id':Number(_0x5f064c[_0xad8a('0x2d')]['id']),'tags':_0x4da546||[]});return{'id':Number(_0x5f064c[_0xad8a('0x2d')]['id']),'tags':_0x4da546||[]};});}})['then'](respondWithResult(_0x24d085,null))[_0xad8a('0x2b')](handleError(_0x24d085,null));};exports[_0xad8a('0x50')]=function(_0x10ddaf,_0x83f51){return db[_0xad8a('0x22')][_0xad8a('0x39')]({'where':{'id':_0x10ddaf[_0xad8a('0x2d')]['id']}})[_0xad8a('0x1d')](handleEntityNotFound(_0x83f51,null))[_0xad8a('0x1d')](function(_0x2d908b){if(_0x2d908b){return _0x2d908b[_0xad8a('0x50')](_0x10ddaf[_0xad8a('0x29')][_0xad8a('0x3d')]);}})['then'](respondWithStatusCode(_0x83f51,null))['catch'](handleError(_0x83f51,null));};exports[_0xad8a('0x51')]=function(_0x3dc48a,_0xac89b5){var _0x3044b7=moment()[_0xad8a('0x52')]()[_0xad8a('0x53')]();var _0x2e138a=path['join'](config[_0xad8a('0x54')],_0xad8a('0x55'),'files','tmp');var _0x5d106e=path[_0xad8a('0x56')](config[_0xad8a('0x54')],_0xad8a('0x55'),'files','attachments');var _0x17f6c0=path['join'](_0x2e138a,_0x3044b7);var _0x4ce82b=util[_0xad8a('0x57')](_0xad8a('0x58'),_0x3dc48a[_0xad8a('0x2d')]['id'],_0x3044b7);var _0x39f554=path[_0xad8a('0x56')](_0x2e138a,_0x4ce82b);var _0x578b60=[];_0x578b60[_0xad8a('0x59')]({'model':db[_0xad8a('0x5a')],'as':_0xad8a('0x5a'),'raw':!![]});var _0x23c081=[{'model':db[_0xad8a('0x3c')],'as':_0xad8a('0x5b'),'attributes':['id',_0xad8a('0x38'),_0xad8a('0x5c')],'include':_0x578b60}];return db[_0xad8a('0x22')][_0xad8a('0x39')]({'where':{'id':_0x3dc48a[_0xad8a('0x2d')]['id']},'include':_0x23c081})[_0xad8a('0x1d')](handleEntityNotFound(_0xac89b5,null))[_0xad8a('0x1d')](function(_0x1d8ce5){if(_0x1d8ce5&&_0x1d8ce5[_0xad8a('0x5b')]){var _0x19c826=_0x1d8ce5[_0xad8a('0x5d')]({'plain':!![]});fs[_0xad8a('0x5e')](_0x17f6c0);for(var _0x31da87=0x0;_0x31da87<_0x19c826[_0xad8a('0x5b')][_0xad8a('0x34')];_0x31da87++){var _0x298bf8=_0x19c826['Messages'][_0x31da87][_0xad8a('0x5a')];if(_0x298bf8){var _0x262a60=path[_0xad8a('0x56')](_0x5d106e,_0x298bf8[_0xad8a('0x5f')]);if(fs[_0xad8a('0x60')](_0x262a60)){fs[_0xad8a('0x61')](_0x262a60)[_0xad8a('0x62')](fs[_0xad8a('0x63')](path[_0xad8a('0x56')](_0x17f6c0,_0x298bf8['basename'])));}}}return BPromise[_0xad8a('0x64')]()[_0xad8a('0x1d')](function(){return new BPromise(function(_0x5ad629,_0x4154b7){zipdir(_0x17f6c0,{'saveTo':_0x39f554},function(_0x3aab11,_0x3367ac){if(_0x3aab11)return _0x4154b7(_0x3aab11);return _0x5ad629(_0x3367ac);});})[_0xad8a('0x1d')](function(){return new BPromise(function(_0x4db7bc,_0x37c96a){rimraf(_0x17f6c0,function(_0x5f23cf){if(_0x5f23cf)_0x37c96a(_0x5f23cf);return _0x4db7bc();});});})[_0xad8a('0x1d')](function(){return _0xac89b5['download'](_0x39f554,_0x4ce82b,function(_0x5ef2c9){if(_0x5ef2c9){console[_0xad8a('0x65')](_0xad8a('0x66'),_0x5ef2c9);}else{fs[_0xad8a('0x67')](_0x39f554);}});});});}else{return _0xac89b5[_0xad8a('0x13')](0xc8);}})[_0xad8a('0x2b')](handleError(_0xac89b5,null));};