Built motion from commit b5413ace.|2.6.9
[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 _0x3531=['count','limit','set','Content-Range','json','update','then','destroy','error','stack','name','index','FaxInteraction','rawAttributes','fieldName','type','key','getOptions','fax','query','user','catch','show','params','model','keys','filters','intersection','fields','attributes','length','includeAll','include','merge','options','find','create','body','addMessage','FaxMessage','ids','omit','getMessages','hasOwnProperty','nolimit','order','sort','where','pick','FaxInteractionId','filter','map','$gte','format','YYYY-MM-DD\x20HH:mm:ss','findAll','rows','addTags','setTags','spread','color','faxInteractionTags:save','removeTags','unix','join','root','server','files','tmp','attachments','push','Attachment','Messages','mkdirSync','basename','existsSync','createReadStream','resolve','download','log','err','unlinkSync','zip-dir','moment','bluebird','util','lodash','ioredis','../../components/parsers/qs','api','../../config/environment','../../mysqldb','defaults','redis','localhost','socket.io-emitter','./faxInteraction.socket','sendStatus','status','end','offset','undefined'];(function(_0x4cc6ee,_0x2b4705){var _0x283a81=function(_0x5aca62){while(--_0x5aca62){_0x4cc6ee['push'](_0x4cc6ee['shift']());}};_0x283a81(++_0x2b4705);}(_0x3531,0x1ea));var _0x1353=function(_0x92c450,_0x41f1e3){_0x92c450=_0x92c450-0x0;var _0x2a9599=_0x3531[_0x92c450];return _0x2a9599;};'use strict';var rimraf=require('rimraf');var zipdir=require(_0x1353('0x0'));var moment=require(_0x1353('0x1'));var BPromise=require(_0x1353('0x2'));var util=require(_0x1353('0x3'));var path=require('path');var fs=require('fs');var _=require(_0x1353('0x4'));var Redis=require(_0x1353('0x5'));var interaction=require('../../components/interaction/service');var qs=require(_0x1353('0x6'));var logger=require('../../config/logger')(_0x1353('0x7'));var config=require(_0x1353('0x8'));var db=require(_0x1353('0x9'))['db'];config['redis']=_[_0x1353('0xa')](config[_0x1353('0xb')],{'host':_0x1353('0xc'),'port':0x18eb});var socket=require(_0x1353('0xd'))(new Redis(config[_0x1353('0xb')]));require(_0x1353('0xe'))['register'](socket);function respondWithStatusCode(_0x151802,_0x4d778e){_0x4d778e=_0x4d778e||0xcc;return function(_0x12923a){if(_0x12923a){return _0x151802[_0x1353('0xf')](_0x4d778e);}return _0x151802[_0x1353('0x10')](_0x4d778e)[_0x1353('0x11')]();};}function respondWithResult(_0x16da4d,_0x1dc495){_0x1dc495=_0x1dc495||0xc8;return function(_0x18b960){if(_0x18b960){return _0x16da4d['status'](_0x1dc495)['json'](_0x18b960);}};}function respondWithFilteredResult(_0x420739,_0x3c741c){return function(_0x5207ca){if(_0x5207ca){var _0x1fa67f=typeof _0x3c741c[_0x1353('0x12')]===_0x1353('0x13')&&typeof _0x3c741c['limit']===_0x1353('0x13');var _0x489ff0=_0x5207ca[_0x1353('0x14')];var _0x29233e=_0x1fa67f?0x0:_0x3c741c['offset'];var _0x49ac9d=_0x1fa67f?_0x5207ca[_0x1353('0x14')]:_0x3c741c[_0x1353('0x12')]+_0x3c741c[_0x1353('0x15')];var _0x3c7622;if(_0x49ac9d>=_0x489ff0){_0x49ac9d=_0x489ff0;_0x3c7622=0xc8;}else{_0x3c7622=0xce;}_0x420739[_0x1353('0x10')](_0x3c7622);return _0x420739[_0x1353('0x16')](_0x1353('0x17'),_0x29233e+'-'+_0x49ac9d+'/'+_0x489ff0)[_0x1353('0x18')](_0x5207ca);}return null;};}function saveUpdates(_0x58adaa){return function(_0xf393e5){if(_0xf393e5){return _0xf393e5[_0x1353('0x19')](_0x58adaa)[_0x1353('0x1a')](function(_0x42795c){return _0x42795c;});}return null;};}function removeEntity(_0xa16c30){return function(_0x122599){if(_0x122599){return _0x122599[_0x1353('0x1b')]()[_0x1353('0x1a')](function(){_0xa16c30[_0x1353('0x10')](0xcc)['end']();});}};}function handleEntityNotFound(_0x4f5ef2){return function(_0x59ee3b){if(!_0x59ee3b){_0x4f5ef2['sendStatus'](0x194);}return _0x59ee3b;};}function handleError(_0x3d92fa,_0x306ef1){_0x306ef1=_0x306ef1||0x1f4;return function(_0x2f5e01){logger[_0x1353('0x1c')](_0x2f5e01[_0x1353('0x1d')]);if(_0x2f5e01[_0x1353('0x1e')]){delete _0x2f5e01[_0x1353('0x1e')];}_0x3d92fa['status'](_0x306ef1)['send'](_0x2f5e01);};}exports[_0x1353('0x1f')]=function(_0x585033,_0x305815){var _0x1f0e43={};var _0x13f153=_['map'](db[_0x1353('0x20')][_0x1353('0x21')],function(_0x7b55a8){return{'name':_0x7b55a8[_0x1353('0x22')],'type':_0x7b55a8[_0x1353('0x23')][_0x1353('0x24')]};});_0x1f0e43=qs[_0x1353('0x25')](_0x13f153,_0x585033);return interaction['findAll'](_0x1353('0x26'),_0x585033[_0x1353('0x27')],_0x585033[_0x1353('0x28')],_0x1f0e43,_0x13f153)[_0x1353('0x1a')](respondWithFilteredResult(_0x305815,_0x1f0e43))[_0x1353('0x29')](handleError(_0x305815,null));};exports[_0x1353('0x2a')]=function(_0x215aa2,_0x54ea4b){var _0x249000={'raw':![],'where':{'id':_0x215aa2[_0x1353('0x2b')]['id']}},_0x1cd08a={};_0x1cd08a[_0x1353('0x2c')]=_[_0x1353('0x2d')](db[_0x1353('0x20')][_0x1353('0x21')]);_0x1cd08a[_0x1353('0x27')]=_[_0x1353('0x2d')](_0x215aa2[_0x1353('0x27')]);_0x1cd08a[_0x1353('0x2e')]=_[_0x1353('0x2f')](_0x1cd08a[_0x1353('0x2c')],_0x1cd08a['query']);_0x249000['attributes']=_[_0x1353('0x2f')](_0x1cd08a[_0x1353('0x2c')],qs[_0x1353('0x30')](_0x215aa2[_0x1353('0x27')][_0x1353('0x30')]));_0x249000[_0x1353('0x31')]=_0x249000[_0x1353('0x31')][_0x1353('0x32')]?_0x249000[_0x1353('0x31')]:_0x1cd08a[_0x1353('0x2c')];if(_0x215aa2[_0x1353('0x27')][_0x1353('0x33')]){_0x249000[_0x1353('0x34')]=[{'all':!![]}];}_0x249000=_[_0x1353('0x35')]({},_0x249000,_0x215aa2[_0x1353('0x36')]);return db[_0x1353('0x20')][_0x1353('0x37')](_0x249000)[_0x1353('0x1a')](handleEntityNotFound(_0x54ea4b,null))[_0x1353('0x1a')](respondWithResult(_0x54ea4b,null))[_0x1353('0x29')](handleError(_0x54ea4b,null));};exports[_0x1353('0x38')]=function(_0x410204,_0x2369ed){return db[_0x1353('0x20')][_0x1353('0x38')](_0x410204['body'],{})['then'](respondWithResult(_0x2369ed,0xc9))[_0x1353('0x29')](handleError(_0x2369ed,null));};exports[_0x1353('0x19')]=function(_0x45657b,_0xeb8e10){if(_0x45657b[_0x1353('0x39')]['id']){delete _0x45657b[_0x1353('0x39')]['id'];}return db[_0x1353('0x20')][_0x1353('0x37')]({'where':{'id':_0x45657b['params']['id']}})[_0x1353('0x1a')](handleEntityNotFound(_0xeb8e10,null))[_0x1353('0x1a')](saveUpdates(_0x45657b['body'],null))['then'](respondWithResult(_0xeb8e10,null))[_0x1353('0x29')](handleError(_0xeb8e10,null));};exports[_0x1353('0x1b')]=function(_0x1caf46,_0x185031){return db[_0x1353('0x20')][_0x1353('0x37')]({'where':{'id':_0x1caf46['params']['id']}})['then'](handleEntityNotFound(_0x185031,null))[_0x1353('0x1a')](removeEntity(_0x185031,null))['catch'](handleError(_0x185031,null));};exports['describe']=function(_0x10cd25,_0x3ea905){return db[_0x1353('0x20')]['describe']()[_0x1353('0x1a')](respondWithResult(_0x3ea905,null))[_0x1353('0x29')](handleError(_0x3ea905,null));};exports[_0x1353('0x3a')]=function(_0x15dc57,_0x16d186){return db[_0x1353('0x3b')][_0x1353('0x37')]({'where':{'id':_0x15dc57[_0x1353('0x2b')]['id']}})['then'](handleEntityNotFound(_0x16d186,null))[_0x1353('0x1a')](function(_0x50795e){if(_0x50795e){return _0x50795e[_0x1353('0x3a')](_0x15dc57[_0x1353('0x39')][_0x1353('0x3c')],_[_0x1353('0x3d')](_0x15dc57[_0x1353('0x39')],[_0x1353('0x3c'),'id'])||{});}})[_0x1353('0x1a')](respondWithResult(_0x16d186,null))[_0x1353('0x29')](handleError(_0x16d186,null));};exports[_0x1353('0x3e')]=function(_0x2b303f,_0x3b8523){var _0x1ea72f={'raw':![],'where':{}};var _0x26cfe0={};var _0x43ede1={'count':0x0,'rows':[]};return db[_0x1353('0x20')]['findOne']({'where':{'id':_0x2b303f[_0x1353('0x2b')]['id']}})[_0x1353('0x1a')](handleEntityNotFound(_0x3b8523,null))[_0x1353('0x1a')](function(_0x3e1fda){if(_0x3e1fda){_0x26cfe0[_0x1353('0x2c')]=_[_0x1353('0x2d')](db[_0x1353('0x3b')][_0x1353('0x21')]);_0x26cfe0[_0x1353('0x27')]=_[_0x1353('0x2d')](_0x2b303f[_0x1353('0x27')]);_0x26cfe0[_0x1353('0x2e')]=_[_0x1353('0x2f')](_0x26cfe0[_0x1353('0x2c')],_0x26cfe0['query']);_0x1ea72f[_0x1353('0x31')]=_[_0x1353('0x2f')](_0x26cfe0[_0x1353('0x2c')],qs[_0x1353('0x30')](_0x2b303f[_0x1353('0x27')]['fields']));_0x1ea72f[_0x1353('0x31')]=_0x1ea72f[_0x1353('0x31')][_0x1353('0x32')]?_0x1ea72f[_0x1353('0x31')]:_0x26cfe0[_0x1353('0x2c')];if(!_0x2b303f[_0x1353('0x27')][_0x1353('0x3f')](_0x1353('0x40'))){_0x1ea72f[_0x1353('0x15')]=qs[_0x1353('0x15')](_0x2b303f['query'][_0x1353('0x15')]);_0x1ea72f[_0x1353('0x12')]=qs[_0x1353('0x12')](_0x2b303f['query'][_0x1353('0x12')]);}_0x1ea72f[_0x1353('0x41')]=qs[_0x1353('0x42')](_0x2b303f[_0x1353('0x27')][_0x1353('0x42')]);_0x1ea72f[_0x1353('0x43')]=qs[_0x1353('0x2e')](_[_0x1353('0x44')](_0x2b303f['query'],_0x26cfe0[_0x1353('0x2e')]));_0x1ea72f['where'][_0x1353('0x45')]=_0x3e1fda['id'];if(_0x2b303f['query'][_0x1353('0x46')]){_0x1ea72f[_0x1353('0x43')]=_['merge'](_0x1ea72f['where'],{'$or':_[_0x1353('0x47')](_0x1ea72f[_0x1353('0x31')],function(_0x86b64e){var _0xa0f415={};_0xa0f415[_0x86b64e]={'$like':'%'+_0x2b303f[_0x1353('0x27')][_0x1353('0x46')]+'%'};return _0xa0f415;})});}if(_0x2b303f['query'][_0x1353('0x48')]){var _0x4f7c22=_0x2b303f[_0x1353('0x27')]['$gte']['split'](',');var _0x5c0eb9={};_0x5c0eb9[_0x4f7c22[0x0]]={'$gte':moment(_0x4f7c22[0x1])[_0x1353('0x49')](_0x1353('0x4a'))};_0x1ea72f[_0x1353('0x43')]=_[_0x1353('0x35')](_0x1ea72f[_0x1353('0x43')],_0x5c0eb9);}_0x1ea72f=_['merge']({},_0x1ea72f,_0x2b303f[_0x1353('0x36')]);return db[_0x1353('0x3b')][_0x1353('0x14')]({'where':_0x1ea72f[_0x1353('0x43')]})['then'](function(_0x4cfd40){_0x43ede1['count']=_0x4cfd40;if(_0x2b303f[_0x1353('0x27')][_0x1353('0x33')]){_0x1ea72f[_0x1353('0x34')]=[{'all':!![]}];}return db[_0x1353('0x3b')][_0x1353('0x4b')](_0x1ea72f);})[_0x1353('0x1a')](function(_0x1306f7){_0x43ede1[_0x1353('0x4c')]=_0x1306f7;return _0x43ede1;});}})[_0x1353('0x1a')](respondWithFilteredResult(_0x3b8523,_0x1ea72f))[_0x1353('0x29')](handleError(_0x3b8523,null));};exports[_0x1353('0x4d')]=function(_0xeeffe6,_0x1dbf53){return db['FaxInteraction'][_0x1353('0x37')]({'where':{'id':_0xeeffe6[_0x1353('0x2b')]['id']}})[_0x1353('0x1a')](handleEntityNotFound(_0x1dbf53,null))[_0x1353('0x1a')](function(_0x3e7644){if(_0x3e7644){return _0x3e7644[_0x1353('0x4e')](_0xeeffe6[_0x1353('0x39')][_0x1353('0x3c')],_[_0x1353('0x3d')](_0xeeffe6[_0x1353('0x39')],[_0x1353('0x3c'),'id'])||{})[_0x1353('0x4f')](function(){return db['Tag'][_0x1353('0x4b')]({'attributes':['id','name',_0x1353('0x50')],'where':{'id':_0xeeffe6[_0x1353('0x39')][_0x1353('0x3c')]}});})[_0x1353('0x1a')](function(_0x36a202){socket['emit'](_0x1353('0x51'),{'id':Number(_0xeeffe6[_0x1353('0x2b')]['id']),'tags':_0x36a202||[]});return{'id':Number(_0xeeffe6[_0x1353('0x2b')]['id']),'tags':_0x36a202||[]};});}})[_0x1353('0x1a')](respondWithResult(_0x1dbf53,null))[_0x1353('0x29')](handleError(_0x1dbf53,null));};exports[_0x1353('0x52')]=function(_0x5e2927,_0x5ee4a2){return db[_0x1353('0x20')][_0x1353('0x37')]({'where':{'id':_0x5e2927[_0x1353('0x2b')]['id']}})[_0x1353('0x1a')](handleEntityNotFound(_0x5ee4a2,null))['then'](function(_0x5bfc17){if(_0x5bfc17){return _0x5bfc17[_0x1353('0x52')](_0x5e2927[_0x1353('0x27')][_0x1353('0x3c')]);}})[_0x1353('0x1a')](respondWithStatusCode(_0x5ee4a2,null))['catch'](handleError(_0x5ee4a2,null));};exports['download']=function(_0x468c61,_0x377204){var _0x545f62=moment()[_0x1353('0x53')]()['toString']();var _0x1aa12e=path[_0x1353('0x54')](config[_0x1353('0x55')],_0x1353('0x56'),_0x1353('0x57'),_0x1353('0x58'));var _0x5c1397=path[_0x1353('0x54')](config[_0x1353('0x55')],_0x1353('0x56'),_0x1353('0x57'),_0x1353('0x59'));var _0x1cbfb1=path[_0x1353('0x54')](_0x1aa12e,_0x545f62);var _0x20605d=util[_0x1353('0x49')]('transcript-%d-%s.zip',_0x468c61[_0x1353('0x2b')]['id'],_0x545f62);var _0x1d6ccf=path[_0x1353('0x54')](_0x1aa12e,_0x20605d);var _0x5c47c5=[];_0x5c47c5[_0x1353('0x5a')]({'model':db[_0x1353('0x5b')],'as':'Attachment','raw':!![]});var _0x2dac89=[{'model':db['FaxMessage'],'as':'Messages','attributes':['id',_0x1353('0x39'),'createdAt'],'include':_0x5c47c5}];return db[_0x1353('0x20')][_0x1353('0x37')]({'where':{'id':_0x468c61[_0x1353('0x2b')]['id']},'include':_0x2dac89})['then'](handleEntityNotFound(_0x377204,null))[_0x1353('0x1a')](function(_0x8ba490){if(_0x8ba490&&_0x8ba490[_0x1353('0x5c')]){var _0x3c81b1=_0x8ba490['get']({'plain':!![]});fs[_0x1353('0x5d')](_0x1cbfb1);for(var _0x1c4396=0x0;_0x1c4396<_0x3c81b1[_0x1353('0x5c')][_0x1353('0x32')];_0x1c4396++){var _0x33f3ab=_0x3c81b1[_0x1353('0x5c')][_0x1c4396][_0x1353('0x5b')];if(_0x33f3ab){var _0x2c52ce=path[_0x1353('0x54')](_0x5c1397,_0x33f3ab[_0x1353('0x5e')]);if(fs[_0x1353('0x5f')](_0x2c52ce)){fs[_0x1353('0x60')](_0x2c52ce)['pipe'](fs['createWriteStream'](path[_0x1353('0x54')](_0x1cbfb1,_0x33f3ab[_0x1353('0x5e')])));}}}return BPromise[_0x1353('0x61')]()[_0x1353('0x1a')](function(){return new BPromise(function(_0x32b7a5,_0x13b025){zipdir(_0x1cbfb1,{'saveTo':_0x1d6ccf},function(_0x369993,_0x452d04){if(_0x369993)return _0x13b025(_0x369993);return _0x32b7a5(_0x452d04);});})[_0x1353('0x1a')](function(){return new BPromise(function(_0x487992,_0x2ae8a5){rimraf(_0x1cbfb1,function(_0x520885){if(_0x520885)_0x2ae8a5(_0x520885);return _0x487992();});});})['then'](function(){return _0x377204[_0x1353('0x62')](_0x1d6ccf,_0x20605d,function(_0x2be680){if(_0x2be680){console[_0x1353('0x63')](_0x1353('0x64'),_0x2be680);}else{fs[_0x1353('0x65')](_0x1d6ccf);}});});});}else{return _0x377204['sendStatus'](0xc8);}})[_0x1353('0x29')](handleError(_0x377204,null));};