Built motion from commit c738b9ac.|2.6.25
[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 _0x2e71=['files','attachments','transcript-%d-%s.zip','push','Attachment','Messages','get','mkdirSync','basename','existsSync','createReadStream','createWriteStream','resolve','log','err','zip-dir','moment','bluebird','util','lodash','ioredis','../../components/interaction/service','../../config/logger','api','../../mysqldb','redis','localhost','./faxInteraction.socket','register','sendStatus','status','end','offset','undefined','limit','count','set','Content-Range','json','update','destroy','then','stack','name','index','map','FaxInteraction','key','getOptions','query','user','show','params','rawAttributes','keys','filters','intersection','model','attributes','fields','length','includeAll','include','options','find','catch','create','body','describe','FaxMessage','addMessage','ids','omit','getMessages','findOne','hasOwnProperty','nolimit','order','sort','pick','where','FaxInteractionId','filter','split','format','YYYY-MM-DD\x20HH:mm:ss','merge','findAll','rows','setTags','spread','Tag','emit','faxInteractionTags:save','removeTags','download','toString','join','root','server'];(function(_0x1d03f6,_0x4d0e90){var _0x49963a=function(_0x64acb3){while(--_0x64acb3){_0x1d03f6['push'](_0x1d03f6['shift']());}};_0x49963a(++_0x4d0e90);}(_0x2e71,0x19f));var _0x12e7=function(_0x37ffea,_0x25b006){_0x37ffea=_0x37ffea-0x0;var _0x2e2615=_0x2e71[_0x37ffea];return _0x2e2615;};'use strict';var rimraf=require('rimraf');var zipdir=require(_0x12e7('0x0'));var moment=require(_0x12e7('0x1'));var BPromise=require(_0x12e7('0x2'));var util=require(_0x12e7('0x3'));var path=require('path');var fs=require('fs');var _=require(_0x12e7('0x4'));var Redis=require(_0x12e7('0x5'));var interaction=require(_0x12e7('0x6'));var qs=require('../../components/parsers/qs');var logger=require(_0x12e7('0x7'))(_0x12e7('0x8'));var config=require('../../config/environment');var db=require(_0x12e7('0x9'))['db'];config[_0x12e7('0xa')]=_['defaults'](config['redis'],{'host':_0x12e7('0xb'),'port':0x18eb});var socket=require('socket.io-emitter')(new Redis(config[_0x12e7('0xa')]));require(_0x12e7('0xc'))[_0x12e7('0xd')](socket);function respondWithStatusCode(_0x1d3696,_0x5b44e8){_0x5b44e8=_0x5b44e8||0xcc;return function(_0x2f0b16){if(_0x2f0b16){return _0x1d3696[_0x12e7('0xe')](_0x5b44e8);}return _0x1d3696[_0x12e7('0xf')](_0x5b44e8)[_0x12e7('0x10')]();};}function respondWithResult(_0x3581d0,_0x10afbf){_0x10afbf=_0x10afbf||0xc8;return function(_0x219c7d){if(_0x219c7d){return _0x3581d0[_0x12e7('0xf')](_0x10afbf)['json'](_0x219c7d);}};}function respondWithFilteredResult(_0x445eb0,_0x584a2c){return function(_0x3200be){if(_0x3200be){var _0x172cd4=typeof _0x584a2c[_0x12e7('0x11')]===_0x12e7('0x12')&&typeof _0x584a2c[_0x12e7('0x13')]==='undefined';var _0x54ebb3=_0x3200be[_0x12e7('0x14')];var _0x20999f=_0x172cd4?0x0:_0x584a2c[_0x12e7('0x11')];var _0x18b0e5=_0x172cd4?_0x3200be[_0x12e7('0x14')]:_0x584a2c[_0x12e7('0x11')]+_0x584a2c['limit'];var _0x3d6d35;if(_0x18b0e5>=_0x54ebb3){_0x18b0e5=_0x54ebb3;_0x3d6d35=0xc8;}else{_0x3d6d35=0xce;}_0x445eb0[_0x12e7('0xf')](_0x3d6d35);return _0x445eb0[_0x12e7('0x15')](_0x12e7('0x16'),_0x20999f+'-'+_0x18b0e5+'/'+_0x54ebb3)[_0x12e7('0x17')](_0x3200be);}return null;};}function saveUpdates(_0x43109a){return function(_0x478042){if(_0x478042){return _0x478042[_0x12e7('0x18')](_0x43109a)['then'](function(_0x528264){return _0x528264;});}return null;};}function removeEntity(_0x3ff3ad){return function(_0x50c7d7){if(_0x50c7d7){return _0x50c7d7[_0x12e7('0x19')]()[_0x12e7('0x1a')](function(){_0x3ff3ad[_0x12e7('0xf')](0xcc)[_0x12e7('0x10')]();});}};}function handleEntityNotFound(_0x3738e1){return function(_0x5d90ff){if(!_0x5d90ff){_0x3738e1[_0x12e7('0xe')](0x194);}return _0x5d90ff;};}function handleError(_0x3de5ce,_0x4be406){_0x4be406=_0x4be406||0x1f4;return function(_0x5e82b){logger['error'](_0x5e82b[_0x12e7('0x1b')]);if(_0x5e82b[_0x12e7('0x1c')]){delete _0x5e82b[_0x12e7('0x1c')];}_0x3de5ce[_0x12e7('0xf')](_0x4be406)['send'](_0x5e82b);};}exports[_0x12e7('0x1d')]=function(_0x3130b2,_0x33ecad){var _0x262d84={};var _0x1139fc=_[_0x12e7('0x1e')](db[_0x12e7('0x1f')]['rawAttributes'],function(_0x2beb43){return{'name':_0x2beb43['fieldName'],'type':_0x2beb43['type'][_0x12e7('0x20')]};});_0x262d84=qs[_0x12e7('0x21')](_0x1139fc,_0x3130b2);return interaction['findAll']('fax',_0x3130b2[_0x12e7('0x22')],_0x3130b2[_0x12e7('0x23')],_0x262d84,_0x1139fc)['then'](respondWithFilteredResult(_0x33ecad,_0x262d84))['catch'](handleError(_0x33ecad,null));};exports[_0x12e7('0x24')]=function(_0x114ba3,_0x23a664){var _0x18892c={'raw':![],'where':{'id':_0x114ba3[_0x12e7('0x25')]['id']}},_0x5f15e1={};_0x5f15e1['model']=_['keys'](db[_0x12e7('0x1f')][_0x12e7('0x26')]);_0x5f15e1[_0x12e7('0x22')]=_[_0x12e7('0x27')](_0x114ba3['query']);_0x5f15e1[_0x12e7('0x28')]=_[_0x12e7('0x29')](_0x5f15e1[_0x12e7('0x2a')],_0x5f15e1[_0x12e7('0x22')]);_0x18892c[_0x12e7('0x2b')]=_[_0x12e7('0x29')](_0x5f15e1[_0x12e7('0x2a')],qs[_0x12e7('0x2c')](_0x114ba3[_0x12e7('0x22')][_0x12e7('0x2c')]));_0x18892c['attributes']=_0x18892c[_0x12e7('0x2b')][_0x12e7('0x2d')]?_0x18892c[_0x12e7('0x2b')]:_0x5f15e1['model'];if(_0x114ba3[_0x12e7('0x22')][_0x12e7('0x2e')]){_0x18892c[_0x12e7('0x2f')]=[{'all':!![]}];}_0x18892c=_['merge']({},_0x18892c,_0x114ba3[_0x12e7('0x30')]);return db['FaxInteraction'][_0x12e7('0x31')](_0x18892c)['then'](handleEntityNotFound(_0x23a664,null))[_0x12e7('0x1a')](respondWithResult(_0x23a664,null))[_0x12e7('0x32')](handleError(_0x23a664,null));};exports[_0x12e7('0x33')]=function(_0x453dde,_0x3a9a95){return db[_0x12e7('0x1f')][_0x12e7('0x33')](_0x453dde[_0x12e7('0x34')],{})[_0x12e7('0x1a')](respondWithResult(_0x3a9a95,0xc9))['catch'](handleError(_0x3a9a95,null));};exports['update']=function(_0x4f701c,_0x310367){if(_0x4f701c['body']['id']){delete _0x4f701c[_0x12e7('0x34')]['id'];}return db['FaxInteraction'][_0x12e7('0x31')]({'where':{'id':_0x4f701c[_0x12e7('0x25')]['id']}})[_0x12e7('0x1a')](handleEntityNotFound(_0x310367,null))[_0x12e7('0x1a')](saveUpdates(_0x4f701c[_0x12e7('0x34')],null))['then'](respondWithResult(_0x310367,null))[_0x12e7('0x32')](handleError(_0x310367,null));};exports['destroy']=function(_0x5f5b9e,_0xc757e5){return db['FaxInteraction'][_0x12e7('0x31')]({'where':{'id':_0x5f5b9e['params']['id']}})[_0x12e7('0x1a')](handleEntityNotFound(_0xc757e5,null))[_0x12e7('0x1a')](removeEntity(_0xc757e5,null))[_0x12e7('0x32')](handleError(_0xc757e5,null));};exports[_0x12e7('0x35')]=function(_0x1c0272,_0x39cb86){return db['FaxInteraction'][_0x12e7('0x35')]()[_0x12e7('0x1a')](respondWithResult(_0x39cb86,null))['catch'](handleError(_0x39cb86,null));};exports['addMessage']=function(_0x962d99,_0x1d957a){return db[_0x12e7('0x36')][_0x12e7('0x31')]({'where':{'id':_0x962d99[_0x12e7('0x25')]['id']}})[_0x12e7('0x1a')](handleEntityNotFound(_0x1d957a,null))[_0x12e7('0x1a')](function(_0x2e4c40){if(_0x2e4c40){return _0x2e4c40[_0x12e7('0x37')](_0x962d99['body'][_0x12e7('0x38')],_[_0x12e7('0x39')](_0x962d99[_0x12e7('0x34')],[_0x12e7('0x38'),'id'])||{});}})[_0x12e7('0x1a')](respondWithResult(_0x1d957a,null))[_0x12e7('0x32')](handleError(_0x1d957a,null));};exports[_0x12e7('0x3a')]=function(_0x25da7c,_0x281061){var _0x225adc={'raw':![],'where':{}};var _0x11519a={};var _0x3b717e={'count':0x0,'rows':[]};return db['FaxInteraction'][_0x12e7('0x3b')]({'where':{'id':_0x25da7c[_0x12e7('0x25')]['id']}})['then'](handleEntityNotFound(_0x281061,null))[_0x12e7('0x1a')](function(_0x3e8a7e){if(_0x3e8a7e){_0x11519a['model']=_[_0x12e7('0x27')](db[_0x12e7('0x36')][_0x12e7('0x26')]);_0x11519a[_0x12e7('0x22')]=_[_0x12e7('0x27')](_0x25da7c[_0x12e7('0x22')]);_0x11519a[_0x12e7('0x28')]=_[_0x12e7('0x29')](_0x11519a['model'],_0x11519a[_0x12e7('0x22')]);_0x225adc['attributes']=_[_0x12e7('0x29')](_0x11519a[_0x12e7('0x2a')],qs[_0x12e7('0x2c')](_0x25da7c[_0x12e7('0x22')][_0x12e7('0x2c')]));_0x225adc['attributes']=_0x225adc[_0x12e7('0x2b')][_0x12e7('0x2d')]?_0x225adc['attributes']:_0x11519a[_0x12e7('0x2a')];if(!_0x25da7c[_0x12e7('0x22')][_0x12e7('0x3c')](_0x12e7('0x3d'))){_0x225adc[_0x12e7('0x13')]=qs[_0x12e7('0x13')](_0x25da7c[_0x12e7('0x22')]['limit']);_0x225adc[_0x12e7('0x11')]=qs[_0x12e7('0x11')](_0x25da7c[_0x12e7('0x22')]['offset']);}_0x225adc[_0x12e7('0x3e')]=qs[_0x12e7('0x3f')](_0x25da7c[_0x12e7('0x22')]['sort']);_0x225adc['where']=qs[_0x12e7('0x28')](_[_0x12e7('0x40')](_0x25da7c[_0x12e7('0x22')],_0x11519a[_0x12e7('0x28')]));_0x225adc[_0x12e7('0x41')][_0x12e7('0x42')]=_0x3e8a7e['id'];if(_0x25da7c[_0x12e7('0x22')][_0x12e7('0x43')]){_0x225adc['where']=_['merge'](_0x225adc['where'],{'$or':_['map'](_0x225adc['attributes'],function(_0x444344){var _0x2fdd8a={};_0x2fdd8a[_0x444344]={'$like':'%'+_0x25da7c['query'][_0x12e7('0x43')]+'%'};return _0x2fdd8a;})});}if(_0x25da7c[_0x12e7('0x22')]['$gte']){var _0x582046=_0x25da7c[_0x12e7('0x22')]['$gte'][_0x12e7('0x44')](',');var _0x5dd7f8={};_0x5dd7f8[_0x582046[0x0]]={'$gte':moment(_0x582046[0x1])[_0x12e7('0x45')](_0x12e7('0x46'))};_0x225adc[_0x12e7('0x41')]=_[_0x12e7('0x47')](_0x225adc[_0x12e7('0x41')],_0x5dd7f8);}_0x225adc=_['merge']({},_0x225adc,_0x25da7c[_0x12e7('0x30')]);return db[_0x12e7('0x36')][_0x12e7('0x14')]({'where':_0x225adc[_0x12e7('0x41')]})[_0x12e7('0x1a')](function(_0x6ca024){_0x3b717e[_0x12e7('0x14')]=_0x6ca024;if(_0x25da7c['query'][_0x12e7('0x2e')]){_0x225adc[_0x12e7('0x2f')]=[{'all':!![]}];}return db['FaxMessage'][_0x12e7('0x48')](_0x225adc);})[_0x12e7('0x1a')](function(_0x6e1336){_0x3b717e[_0x12e7('0x49')]=_0x6e1336;return _0x3b717e;});}})[_0x12e7('0x1a')](respondWithFilteredResult(_0x281061,_0x225adc))['catch'](handleError(_0x281061,null));};exports['addTags']=function(_0x312137,_0x11136e){return db['FaxInteraction'][_0x12e7('0x31')]({'where':{'id':_0x312137[_0x12e7('0x25')]['id']}})[_0x12e7('0x1a')](handleEntityNotFound(_0x11136e,null))['then'](function(_0x99ff3a){if(_0x99ff3a){return _0x99ff3a[_0x12e7('0x4a')](_0x312137['body']['ids'],_[_0x12e7('0x39')](_0x312137[_0x12e7('0x34')],[_0x12e7('0x38'),'id'])||{})[_0x12e7('0x4b')](function(){return db[_0x12e7('0x4c')][_0x12e7('0x48')]({'attributes':['id','name','color'],'where':{'id':_0x312137[_0x12e7('0x34')][_0x12e7('0x38')]}});})['then'](function(_0x3c4e68){socket[_0x12e7('0x4d')](_0x12e7('0x4e'),{'id':Number(_0x312137[_0x12e7('0x25')]['id']),'tags':_0x3c4e68||[]});return{'id':Number(_0x312137[_0x12e7('0x25')]['id']),'tags':_0x3c4e68||[]};});}})['then'](respondWithResult(_0x11136e,null))[_0x12e7('0x32')](handleError(_0x11136e,null));};exports[_0x12e7('0x4f')]=function(_0x51bd9a,_0x7823db){return db[_0x12e7('0x1f')][_0x12e7('0x31')]({'where':{'id':_0x51bd9a[_0x12e7('0x25')]['id']}})[_0x12e7('0x1a')](handleEntityNotFound(_0x7823db,null))[_0x12e7('0x1a')](function(_0x591f1d){if(_0x591f1d){return _0x591f1d[_0x12e7('0x4f')](_0x51bd9a[_0x12e7('0x22')][_0x12e7('0x38')]);}})['then'](respondWithStatusCode(_0x7823db,null))[_0x12e7('0x32')](handleError(_0x7823db,null));};exports[_0x12e7('0x50')]=function(_0x565bcb,_0x1ebeb8){var _0x1d2c13=moment()['unix']()[_0x12e7('0x51')]();var _0x36c331=path[_0x12e7('0x52')](config[_0x12e7('0x53')],_0x12e7('0x54'),'files','tmp');var _0x3e331d=path[_0x12e7('0x52')](config[_0x12e7('0x53')],_0x12e7('0x54'),_0x12e7('0x55'),_0x12e7('0x56'));var _0xc58bd=path[_0x12e7('0x52')](_0x36c331,_0x1d2c13);var _0x60179f=util[_0x12e7('0x45')](_0x12e7('0x57'),_0x565bcb[_0x12e7('0x25')]['id'],_0x1d2c13);var _0x50d2f4=path['join'](_0x36c331,_0x60179f);var _0xd2f87e=[];_0xd2f87e[_0x12e7('0x58')]({'model':db[_0x12e7('0x59')],'as':'Attachment','raw':!![]});var _0x2a603a=[{'model':db['FaxMessage'],'as':_0x12e7('0x5a'),'attributes':['id',_0x12e7('0x34'),'createdAt'],'include':_0xd2f87e}];return db['FaxInteraction'][_0x12e7('0x31')]({'where':{'id':_0x565bcb[_0x12e7('0x25')]['id']},'include':_0x2a603a})[_0x12e7('0x1a')](handleEntityNotFound(_0x1ebeb8,null))['then'](function(_0x25bce1){if(_0x25bce1&&_0x25bce1[_0x12e7('0x5a')]){var _0x60ac29=_0x25bce1[_0x12e7('0x5b')]({'plain':!![]});fs[_0x12e7('0x5c')](_0xc58bd);for(var _0x2e2e58=0x0;_0x2e2e58<_0x60ac29[_0x12e7('0x5a')][_0x12e7('0x2d')];_0x2e2e58++){var _0xb045d=_0x60ac29[_0x12e7('0x5a')][_0x2e2e58][_0x12e7('0x59')];if(_0xb045d){var _0x2cbd8d=path[_0x12e7('0x52')](_0x3e331d,_0xb045d[_0x12e7('0x5d')]);if(fs[_0x12e7('0x5e')](_0x2cbd8d)){fs[_0x12e7('0x5f')](_0x2cbd8d)['pipe'](fs[_0x12e7('0x60')](path['join'](_0xc58bd,_0xb045d[_0x12e7('0x5d')])));}}}return BPromise[_0x12e7('0x61')]()[_0x12e7('0x1a')](function(){return new BPromise(function(_0xfc8ede,_0xbebf4c){zipdir(_0xc58bd,{'saveTo':_0x50d2f4},function(_0x5cfb50,_0x277b49){if(_0x5cfb50)return _0xbebf4c(_0x5cfb50);return _0xfc8ede(_0x277b49);});})[_0x12e7('0x1a')](function(){return new BPromise(function(_0x53befa,_0x1f6370){rimraf(_0xc58bd,function(_0x1391d7){if(_0x1391d7)_0x1f6370(_0x1391d7);return _0x53befa();});});})[_0x12e7('0x1a')](function(){return _0x1ebeb8[_0x12e7('0x50')](_0x50d2f4,_0x60179f,function(_0x53fb1a){if(_0x53fb1a){console[_0x12e7('0x62')](_0x12e7('0x63'),_0x53fb1a);}else{fs['unlinkSync'](_0x50d2f4);}});});});}else{return _0x1ebeb8[_0x12e7('0xe')](0xc8);}})[_0x12e7('0x32')](handleError(_0x1ebeb8,null));};