e2b26b08589d4d1307cdb472889fbc52d5a40eac
[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 _0xa704=['download','toString','join','root','files','server','attachments','transcript-%d-%s.zip','push','Attachment','Messages','createdAt','get','mkdirSync','basename','existsSync','createReadStream','pipe','createWriteStream','resolve','log','err','unlinkSync','rimraf','moment','bluebird','util','path','lodash','ioredis','../../components/interaction/service','../../config/logger','api','redis','defaults','localhost','socket.io-emitter','register','sendStatus','end','json','offset','undefined','limit','count','set','Content-Range','then','destroy','status','error','stack','name','send','index','map','FaxInteraction','rawAttributes','fieldName','type','findAll','fax','query','user','catch','show','params','model','keys','attributes','intersection','fields','includeAll','merge','options','find','body','update','describe','FaxMessage','addMessage','omit','getMessages','filters','length','nolimit','order','where','pick','filter','split','format','YYYY-MM-DD\x20HH:mm:ss','include','rows','addTags','setTags','ids','spread','Tag','color','emit','faxInteractionTags:save','removeTags'];(function(_0x2b4411,_0x2625ed){var _0x8e41ef=function(_0x2aa8c1){while(--_0x2aa8c1){_0x2b4411['push'](_0x2b4411['shift']());}};_0x8e41ef(++_0x2625ed);}(_0xa704,0x1b7));var _0x4a70=function(_0x29a134,_0x194c27){_0x29a134=_0x29a134-0x0;var _0x136398=_0xa704[_0x29a134];return _0x136398;};'use strict';var rimraf=require(_0x4a70('0x0'));var zipdir=require('zip-dir');var moment=require(_0x4a70('0x1'));var BPromise=require(_0x4a70('0x2'));var util=require(_0x4a70('0x3'));var path=require(_0x4a70('0x4'));var fs=require('fs');var _=require(_0x4a70('0x5'));var Redis=require(_0x4a70('0x6'));var interaction=require(_0x4a70('0x7'));var qs=require('../../components/parsers/qs');var logger=require(_0x4a70('0x8'))(_0x4a70('0x9'));var config=require('../../config/environment');var db=require('../../mysqldb')['db'];config[_0x4a70('0xa')]=_[_0x4a70('0xb')](config['redis'],{'host':_0x4a70('0xc'),'port':0x18eb});var socket=require(_0x4a70('0xd'))(new Redis(config['redis']));require('./faxInteraction.socket')[_0x4a70('0xe')](socket);function respondWithStatusCode(_0x49bbe4,_0x5c12da){_0x5c12da=_0x5c12da||0xcc;return function(_0xd6b26c){if(_0xd6b26c){return _0x49bbe4[_0x4a70('0xf')](_0x5c12da);}return _0x49bbe4['status'](_0x5c12da)[_0x4a70('0x10')]();};}function respondWithResult(_0x3f7658,_0xf6f486){_0xf6f486=_0xf6f486||0xc8;return function(_0x3c59ce){if(_0x3c59ce){return _0x3f7658['status'](_0xf6f486)[_0x4a70('0x11')](_0x3c59ce);}};}function respondWithFilteredResult(_0x246b6b,_0x3f55b3){return function(_0x33d30c){if(_0x33d30c){var _0x4c1cc1=typeof _0x3f55b3[_0x4a70('0x12')]===_0x4a70('0x13')&&typeof _0x3f55b3[_0x4a70('0x14')]===_0x4a70('0x13');var _0x377a86=_0x33d30c[_0x4a70('0x15')];var _0x5b400b=_0x4c1cc1?0x0:_0x3f55b3['offset'];var _0x26920f=_0x4c1cc1?_0x33d30c[_0x4a70('0x15')]:_0x3f55b3['offset']+_0x3f55b3[_0x4a70('0x14')];var _0x5d79a7;if(_0x26920f>=_0x377a86){_0x26920f=_0x377a86;_0x5d79a7=0xc8;}else{_0x5d79a7=0xce;}_0x246b6b['status'](_0x5d79a7);return _0x246b6b[_0x4a70('0x16')](_0x4a70('0x17'),_0x5b400b+'-'+_0x26920f+'/'+_0x377a86)[_0x4a70('0x11')](_0x33d30c);}return null;};}function saveUpdates(_0xa7ca00){return function(_0x249074){if(_0x249074){return _0x249074['update'](_0xa7ca00)[_0x4a70('0x18')](function(_0x5bbd4b){return _0x5bbd4b;});}return null;};}function removeEntity(_0x524d50){return function(_0x4f031f){if(_0x4f031f){return _0x4f031f[_0x4a70('0x19')]()[_0x4a70('0x18')](function(){_0x524d50[_0x4a70('0x1a')](0xcc)[_0x4a70('0x10')]();});}};}function handleEntityNotFound(_0x181e3d){return function(_0x41d485){if(!_0x41d485){_0x181e3d[_0x4a70('0xf')](0x194);}return _0x41d485;};}function handleError(_0x3a231d,_0x221407){_0x221407=_0x221407||0x1f4;return function(_0x490304){logger[_0x4a70('0x1b')](_0x490304[_0x4a70('0x1c')]);if(_0x490304[_0x4a70('0x1d')]){delete _0x490304[_0x4a70('0x1d')];}_0x3a231d['status'](_0x221407)[_0x4a70('0x1e')](_0x490304);};}exports[_0x4a70('0x1f')]=function(_0x52546a,_0x4fb05d){var _0x573987={};var _0x22186c=_[_0x4a70('0x20')](db[_0x4a70('0x21')][_0x4a70('0x22')],function(_0x111853){return{'name':_0x111853[_0x4a70('0x23')],'type':_0x111853[_0x4a70('0x24')]['key']};});_0x573987=qs['getOptions'](_0x22186c,_0x52546a);return interaction[_0x4a70('0x25')](_0x4a70('0x26'),_0x52546a[_0x4a70('0x27')],_0x52546a[_0x4a70('0x28')],_0x573987,_0x22186c)[_0x4a70('0x18')](respondWithFilteredResult(_0x4fb05d,_0x573987))[_0x4a70('0x29')](handleError(_0x4fb05d,null));};exports[_0x4a70('0x2a')]=function(_0x4b643b,_0x4a79d4){var _0x2afebb={'raw':![],'where':{'id':_0x4b643b[_0x4a70('0x2b')]['id']}},_0xb9b72a={};_0xb9b72a[_0x4a70('0x2c')]=_[_0x4a70('0x2d')](db['FaxInteraction'][_0x4a70('0x22')]);_0xb9b72a[_0x4a70('0x27')]=_[_0x4a70('0x2d')](_0x4b643b[_0x4a70('0x27')]);_0xb9b72a['filters']=_['intersection'](_0xb9b72a[_0x4a70('0x2c')],_0xb9b72a[_0x4a70('0x27')]);_0x2afebb[_0x4a70('0x2e')]=_[_0x4a70('0x2f')](_0xb9b72a[_0x4a70('0x2c')],qs[_0x4a70('0x30')](_0x4b643b[_0x4a70('0x27')][_0x4a70('0x30')]));_0x2afebb[_0x4a70('0x2e')]=_0x2afebb[_0x4a70('0x2e')]['length']?_0x2afebb[_0x4a70('0x2e')]:_0xb9b72a[_0x4a70('0x2c')];if(_0x4b643b['query'][_0x4a70('0x31')]){_0x2afebb['include']=[{'all':!![]}];}_0x2afebb=_[_0x4a70('0x32')]({},_0x2afebb,_0x4b643b[_0x4a70('0x33')]);return db[_0x4a70('0x21')][_0x4a70('0x34')](_0x2afebb)['then'](handleEntityNotFound(_0x4a79d4,null))[_0x4a70('0x18')](respondWithResult(_0x4a79d4,null))[_0x4a70('0x29')](handleError(_0x4a79d4,null));};exports['create']=function(_0x5d1271,_0x288612){return db['FaxInteraction']['create'](_0x5d1271[_0x4a70('0x35')],{})[_0x4a70('0x18')](respondWithResult(_0x288612,0xc9))[_0x4a70('0x29')](handleError(_0x288612,null));};exports[_0x4a70('0x36')]=function(_0x55388e,_0x258bf3){if(_0x55388e[_0x4a70('0x35')]['id']){delete _0x55388e['body']['id'];}return db['FaxInteraction'][_0x4a70('0x34')]({'where':{'id':_0x55388e[_0x4a70('0x2b')]['id']}})['then'](handleEntityNotFound(_0x258bf3,null))[_0x4a70('0x18')](saveUpdates(_0x55388e[_0x4a70('0x35')],null))[_0x4a70('0x18')](respondWithResult(_0x258bf3,null))[_0x4a70('0x29')](handleError(_0x258bf3,null));};exports['destroy']=function(_0x98aa36,_0xa0afd7){return db[_0x4a70('0x21')]['find']({'where':{'id':_0x98aa36[_0x4a70('0x2b')]['id']}})[_0x4a70('0x18')](handleEntityNotFound(_0xa0afd7,null))['then'](removeEntity(_0xa0afd7,null))[_0x4a70('0x29')](handleError(_0xa0afd7,null));};exports[_0x4a70('0x37')]=function(_0xe3620d,_0x58d1b3){return db[_0x4a70('0x21')][_0x4a70('0x37')]()[_0x4a70('0x18')](respondWithResult(_0x58d1b3,null))[_0x4a70('0x29')](handleError(_0x58d1b3,null));};exports['addMessage']=function(_0x20b252,_0x3318d1){return db[_0x4a70('0x38')]['find']({'where':{'id':_0x20b252[_0x4a70('0x2b')]['id']}})[_0x4a70('0x18')](handleEntityNotFound(_0x3318d1,null))['then'](function(_0x5ec442){if(_0x5ec442){return _0x5ec442[_0x4a70('0x39')](_0x20b252['body']['ids'],_[_0x4a70('0x3a')](_0x20b252[_0x4a70('0x35')],['ids','id'])||{});}})['then'](respondWithResult(_0x3318d1,null))[_0x4a70('0x29')](handleError(_0x3318d1,null));};exports[_0x4a70('0x3b')]=function(_0x568ef8,_0x18b246){var _0x56cf84={'raw':![],'where':{}};var _0x50a0d1={};var _0x381822={'count':0x0,'rows':[]};return db[_0x4a70('0x21')]['findOne']({'where':{'id':_0x568ef8[_0x4a70('0x2b')]['id']}})['then'](handleEntityNotFound(_0x18b246,null))[_0x4a70('0x18')](function(_0x7792e0){if(_0x7792e0){_0x50a0d1['model']=_[_0x4a70('0x2d')](db[_0x4a70('0x38')][_0x4a70('0x22')]);_0x50a0d1['query']=_[_0x4a70('0x2d')](_0x568ef8['query']);_0x50a0d1[_0x4a70('0x3c')]=_[_0x4a70('0x2f')](_0x50a0d1[_0x4a70('0x2c')],_0x50a0d1[_0x4a70('0x27')]);_0x56cf84[_0x4a70('0x2e')]=_[_0x4a70('0x2f')](_0x50a0d1[_0x4a70('0x2c')],qs[_0x4a70('0x30')](_0x568ef8[_0x4a70('0x27')][_0x4a70('0x30')]));_0x56cf84[_0x4a70('0x2e')]=_0x56cf84[_0x4a70('0x2e')][_0x4a70('0x3d')]?_0x56cf84[_0x4a70('0x2e')]:_0x50a0d1[_0x4a70('0x2c')];if(!_0x568ef8[_0x4a70('0x27')]['hasOwnProperty'](_0x4a70('0x3e'))){_0x56cf84[_0x4a70('0x14')]=qs['limit'](_0x568ef8['query'][_0x4a70('0x14')]);_0x56cf84[_0x4a70('0x12')]=qs[_0x4a70('0x12')](_0x568ef8[_0x4a70('0x27')][_0x4a70('0x12')]);}_0x56cf84[_0x4a70('0x3f')]=qs['sort'](_0x568ef8['query']['sort']);_0x56cf84[_0x4a70('0x40')]=qs[_0x4a70('0x3c')](_[_0x4a70('0x41')](_0x568ef8[_0x4a70('0x27')],_0x50a0d1[_0x4a70('0x3c')]));_0x56cf84[_0x4a70('0x40')]['FaxInteractionId']=_0x7792e0['id'];if(_0x568ef8[_0x4a70('0x27')][_0x4a70('0x42')]){_0x56cf84[_0x4a70('0x40')]=_['merge'](_0x56cf84[_0x4a70('0x40')],{'$or':_[_0x4a70('0x20')](_0x56cf84['attributes'],function(_0x16138f){var _0x5df17d={};_0x5df17d[_0x16138f]={'$like':'%'+_0x568ef8[_0x4a70('0x27')][_0x4a70('0x42')]+'%'};return _0x5df17d;})});}if(_0x568ef8[_0x4a70('0x27')]['$gte']){var _0xfc7f66=_0x568ef8[_0x4a70('0x27')]['$gte'][_0x4a70('0x43')](',');var _0x1038ed={};_0x1038ed[_0xfc7f66[0x0]]={'$gte':moment(_0xfc7f66[0x1])[_0x4a70('0x44')](_0x4a70('0x45'))};_0x56cf84[_0x4a70('0x40')]=_[_0x4a70('0x32')](_0x56cf84[_0x4a70('0x40')],_0x1038ed);}_0x56cf84=_[_0x4a70('0x32')]({},_0x56cf84,_0x568ef8['options']);return db['FaxMessage'][_0x4a70('0x15')]({'where':_0x56cf84[_0x4a70('0x40')]})[_0x4a70('0x18')](function(_0x3fd4e4){_0x381822[_0x4a70('0x15')]=_0x3fd4e4;if(_0x568ef8[_0x4a70('0x27')][_0x4a70('0x31')]){_0x56cf84[_0x4a70('0x46')]=[{'all':!![]}];}return db['FaxMessage'][_0x4a70('0x25')](_0x56cf84);})['then'](function(_0x5b62b7){_0x381822[_0x4a70('0x47')]=_0x5b62b7;return _0x381822;});}})['then'](respondWithFilteredResult(_0x18b246,_0x56cf84))[_0x4a70('0x29')](handleError(_0x18b246,null));};exports[_0x4a70('0x48')]=function(_0x574c87,_0x1fe795){return db['FaxInteraction'][_0x4a70('0x34')]({'where':{'id':_0x574c87[_0x4a70('0x2b')]['id']}})[_0x4a70('0x18')](handleEntityNotFound(_0x1fe795,null))[_0x4a70('0x18')](function(_0x541faa){if(_0x541faa){return _0x541faa[_0x4a70('0x49')](_0x574c87[_0x4a70('0x35')][_0x4a70('0x4a')],_[_0x4a70('0x3a')](_0x574c87[_0x4a70('0x35')],[_0x4a70('0x4a'),'id'])||{})[_0x4a70('0x4b')](function(){return db[_0x4a70('0x4c')][_0x4a70('0x25')]({'attributes':['id',_0x4a70('0x1d'),_0x4a70('0x4d')],'where':{'id':_0x574c87[_0x4a70('0x35')]['ids']}});})[_0x4a70('0x18')](function(_0x3c5d40){socket[_0x4a70('0x4e')](_0x4a70('0x4f'),{'id':Number(_0x574c87[_0x4a70('0x2b')]['id']),'tags':_0x3c5d40||[]});return{'id':Number(_0x574c87[_0x4a70('0x2b')]['id']),'tags':_0x3c5d40||[]};});}})[_0x4a70('0x18')](respondWithResult(_0x1fe795,null))[_0x4a70('0x29')](handleError(_0x1fe795,null));};exports[_0x4a70('0x50')]=function(_0x3b26c3,_0x45534a){return db[_0x4a70('0x21')][_0x4a70('0x34')]({'where':{'id':_0x3b26c3[_0x4a70('0x2b')]['id']}})[_0x4a70('0x18')](handleEntityNotFound(_0x45534a,null))[_0x4a70('0x18')](function(_0x221a40){if(_0x221a40){return _0x221a40['removeTags'](_0x3b26c3['query']['ids']);}})[_0x4a70('0x18')](respondWithStatusCode(_0x45534a,null))[_0x4a70('0x29')](handleError(_0x45534a,null));};exports[_0x4a70('0x51')]=function(_0x2291f6,_0xf6de97){var _0xb9ddfa=moment()['unix']()[_0x4a70('0x52')]();var _0x97632f=path[_0x4a70('0x53')](config[_0x4a70('0x54')],'server',_0x4a70('0x55'),'tmp');var _0x6780f2=path[_0x4a70('0x53')](config[_0x4a70('0x54')],_0x4a70('0x56'),'files',_0x4a70('0x57'));var _0x1110a5=path[_0x4a70('0x53')](_0x97632f,_0xb9ddfa);var _0x1032b7=util[_0x4a70('0x44')](_0x4a70('0x58'),_0x2291f6[_0x4a70('0x2b')]['id'],_0xb9ddfa);var _0x35fe8d=path['join'](_0x97632f,_0x1032b7);var _0x2114b0=[];_0x2114b0[_0x4a70('0x59')]({'model':db[_0x4a70('0x5a')],'as':_0x4a70('0x5a'),'raw':!![]});var _0x202e48=[{'model':db[_0x4a70('0x38')],'as':_0x4a70('0x5b'),'attributes':['id',_0x4a70('0x35'),_0x4a70('0x5c')],'include':_0x2114b0}];return db[_0x4a70('0x21')][_0x4a70('0x34')]({'where':{'id':_0x2291f6[_0x4a70('0x2b')]['id']},'include':_0x202e48})['then'](handleEntityNotFound(_0xf6de97,null))[_0x4a70('0x18')](function(_0x150652){if(_0x150652&&_0x150652[_0x4a70('0x5b')]){var _0xe6d97c=_0x150652[_0x4a70('0x5d')]({'plain':!![]});fs[_0x4a70('0x5e')](_0x1110a5);for(var _0x2494dc=0x0;_0x2494dc<_0xe6d97c[_0x4a70('0x5b')][_0x4a70('0x3d')];_0x2494dc++){var _0x210dad=_0xe6d97c[_0x4a70('0x5b')][_0x2494dc][_0x4a70('0x5a')];if(_0x210dad){var _0x1ab3e0=path[_0x4a70('0x53')](_0x6780f2,_0x210dad[_0x4a70('0x5f')]);if(fs[_0x4a70('0x60')](_0x1ab3e0)){fs[_0x4a70('0x61')](_0x1ab3e0)[_0x4a70('0x62')](fs[_0x4a70('0x63')](path[_0x4a70('0x53')](_0x1110a5,_0x210dad[_0x4a70('0x5f')])));}}}return BPromise[_0x4a70('0x64')]()[_0x4a70('0x18')](function(){return new BPromise(function(_0x4228c7,_0x444780){zipdir(_0x1110a5,{'saveTo':_0x35fe8d},function(_0x398191,_0x4f409c){if(_0x398191)return _0x444780(_0x398191);return _0x4228c7(_0x4f409c);});})[_0x4a70('0x18')](function(){return new BPromise(function(_0x3f32c0,_0x1a2c6c){rimraf(_0x1110a5,function(_0x1e8b9b){if(_0x1e8b9b)_0x1a2c6c(_0x1e8b9b);return _0x3f32c0();});});})['then'](function(){return _0xf6de97[_0x4a70('0x51')](_0x35fe8d,_0x1032b7,function(_0x483b01){if(_0x483b01){console[_0x4a70('0x65')](_0x4a70('0x66'),_0x483b01);}else{fs[_0x4a70('0x67')](_0x35fe8d);}});});});}else{return _0xf6de97[_0x4a70('0xf')](0xc8);}})['catch'](handleError(_0xf6de97,null));};