728e8fc5d77cacf3da6dd2178d1a3626c1e84010
[motion2.git] / server / api / faxMessage / faxMessage.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 _0x236c=['map','FaxMessage','rawAttributes','fieldName','type','key','model','intersection','query','attributes','fields','length','hasOwnProperty','nolimit','offset','order','sort','where','filters','pick','filter','merge','VIRTUAL','options','includeAll','include','findAll','catch','params','keys','find','body','describe','../../config/logger','fax-interactions','accept','fax','readAt','format','UserId','user','agent','CmContact','Contact','get','FaxInteraction','read1stAt','YYYY-MM-DD\x20HH:mm:ss','interaction','[FAXMESSAGE:ACCEPT]\x20id=%s\x20name=%s\x20role=%s\x20interaction=%s\x20body=%s','role','null','acceptMessage','manual','interface','SIP/%s','channel','event','EventManager','acceptmessage','FaxInteractionId','[FAXMESSAGE:REJECT]\x20id=%s\x20name=%s\x20role=%s\x20interaction=%s\x20body=%s','RejectMessage','rejectMessage','rejectmessage','create','findOne','Attachment','AttachmentId','SendFax','isNil','/var/opt/motion2/server/files/attachments/%s','basename','download','join','server','attachments','html-pdf','rimraf','zip-dir','fast-json-patch','request-promise','moment','mustache','util','path','sox','to-csv','ejs','squel','crypto','querystring','ioredis','../../components/auth/service','../../components/parsers/qs','../../components/parsers/advancedSearch','../../config/license/hardware','api','../../config/utils','../../config/license/util','../../mysqldb','defaults','socket.io-emitter','redis','./faxMessage.socket','register','client','http','request','then','FaxMessage,\x20%s,\x20%s','FaxMessage,\x20%s,\x20%s,\x20%s','request\x20sent','stringify','error','code','message','info','result','end','status','count','limit','set','json','reject','save','update','destroy','stack','name','index'];(function(_0x1808b2,_0x35f5a6){var _0x498147=function(_0x17d30a){while(--_0x17d30a){_0x1808b2['push'](_0x1808b2['shift']());}};_0x498147(++_0x35f5a6);}(_0x236c,0x155));var _0xc236=function(_0x10bc34,_0x37ad2b){_0x10bc34=_0x10bc34-0x0;var _0x329624=_0x236c[_0x10bc34];return _0x329624;};'use strict';var pdf=require(_0xc236('0x0'));var emlformat=require('eml-format');var rimraf=require(_0xc236('0x1'));var zipdir=require(_0xc236('0x2'));var jsonpatch=require(_0xc236('0x3'));var rp=require(_0xc236('0x4'));var moment=require(_0xc236('0x5'));var BPromise=require('bluebird');var Mustache=require(_0xc236('0x6'));var util=require(_0xc236('0x7'));var path=require(_0xc236('0x8'));var sox=require(_0xc236('0x9'));var csv=require(_0xc236('0xa'));var ejs=require(_0xc236('0xb'));var fs=require('fs');var _=require('lodash');var squel=require(_0xc236('0xc'));var crypto=require(_0xc236('0xd'));var jsforce=require('jsforce');var deskjs=require('desk.js');var toCsv=require('to-csv');var querystring=require(_0xc236('0xe'));var Papa=require('papaparse');var Redis=require(_0xc236('0xf'));var authService=require(_0xc236('0x10'));var qs=require(_0xc236('0x11'));var as=require(_0xc236('0x12'));var hardwareService=require(_0xc236('0x13'));var logger=require('../../config/logger')(_0xc236('0x14'));var utils=require(_0xc236('0x15'));var config=require('../../config/environment');var licenseUtil=require(_0xc236('0x16'));var db=require(_0xc236('0x17'))['db'];config['redis']=_[_0xc236('0x18')](config['redis'],{'host':'localhost','port':0x18eb});var socket=require(_0xc236('0x19'))(new Redis(config[_0xc236('0x1a')]));require(_0xc236('0x1b'))[_0xc236('0x1c')](socket);var jayson=require('jayson/promise');var client=jayson[_0xc236('0x1d')]['http']({'port':0x232c});var client9002=jayson['client'][_0xc236('0x1e')]({'port':0x232a});function respondWithRpcPromise(_0x32f2fd,_0x443a46,_0x1aeafc,_0x267913){return new BPromise(function(_0x5ac3ed,_0x588aa1){var _0x57355b=_0x267913||client;return _0x57355b[_0xc236('0x1f')](_0x32f2fd,_0x1aeafc)[_0xc236('0x20')](function(_0x11ec65){logger['info'](_0xc236('0x21'),_0x443a46,'request\x20sent');logger['debug'](_0xc236('0x22'),_0x443a46,_0xc236('0x23'),JSON[_0xc236('0x24')](_0x11ec65));if(_0x11ec65[_0xc236('0x25')]){if(_0x11ec65[_0xc236('0x25')][_0xc236('0x26')]===0x1f4){logger[_0xc236('0x25')](_0xc236('0x21'),_0x443a46,_0x11ec65[_0xc236('0x25')][_0xc236('0x27')]);return _0x588aa1(_0x11ec65[_0xc236('0x25')]['message']);}logger[_0xc236('0x25')](_0xc236('0x21'),_0x443a46,_0x11ec65[_0xc236('0x25')][_0xc236('0x27')]);return _0x5ac3ed(_0x11ec65[_0xc236('0x25')][_0xc236('0x27')]);}else{logger[_0xc236('0x28')](_0xc236('0x21'),_0x443a46,_0xc236('0x23'));_0x5ac3ed(_0x11ec65[_0xc236('0x29')][_0xc236('0x27')]);}})['catch'](function(_0x308cd6){logger[_0xc236('0x25')](_0xc236('0x21'),_0x443a46,_0x308cd6);_0x588aa1(_0x308cd6);});});}function respondWithStatusCode(_0x9017ec,_0x561da1){_0x561da1=_0x561da1||0xcc;return function(_0x42f248){if(_0x42f248){return _0x9017ec['sendStatus'](_0x561da1);}return _0x9017ec['status'](_0x561da1)[_0xc236('0x2a')]();};}function respondWithResult(_0x4eace8,_0x36e578){_0x36e578=_0x36e578||0xc8;return function(_0x4f753c){if(_0x4f753c){return _0x4eace8[_0xc236('0x2b')](_0x36e578)['json'](_0x4f753c);}};}function respondWithFilteredResult(_0x423842,_0x1d144b){return function(_0x4f5175){if(_0x4f5175){var _0x5a61b5=_0x4f5175[_0xc236('0x2c')],_0x265c8d=_0x1d144b['offset'],_0x1fd31d=_0x1d144b['offset']+_0x1d144b[_0xc236('0x2d')],_0x1f4995;if(_0x1fd31d>=_0x5a61b5){_0x1fd31d=_0x5a61b5;_0x1f4995=0xc8;}else{_0x1f4995=0xce;}_0x423842['status'](_0x1f4995);return _0x423842[_0xc236('0x2e')]('Content-Range',_0x265c8d+'-'+_0x1fd31d+'/'+_0x5a61b5)[_0xc236('0x2f')](_0x4f5175);}return null;};}function patchUpdates(_0x40a6c8){return function(_0x57c99e){try{jsonpatch['apply'](_0x57c99e,_0x40a6c8,!![]);}catch(_0x2537f9){return BPromise[_0xc236('0x30')](_0x2537f9);}return _0x57c99e[_0xc236('0x31')]();};}function saveUpdates(_0x2f64bd,_0x944298){return function(_0xa298f8){if(_0xa298f8){return _0xa298f8[_0xc236('0x32')](_0x2f64bd)[_0xc236('0x20')](function(_0x3f58a0){return _0x3f58a0;});}return null;};}function removeEntity(_0x4942d7,_0x51fd41){return function(_0x5c151a){if(_0x5c151a){return _0x5c151a[_0xc236('0x33')]()[_0xc236('0x20')](function(){_0x4942d7[_0xc236('0x2b')](0xcc)[_0xc236('0x2a')]();});}};}function handleEntityNotFound(_0x2e117c,_0x1f4b38){return function(_0x3ad726){if(!_0x3ad726){_0x2e117c['sendStatus'](0x194);}return _0x3ad726;};}function handleError(_0x15f8c0,_0x3f9b1d){_0x3f9b1d=_0x3f9b1d||0x1f4;return function(_0xc77281){logger['error'](_0xc77281[_0xc236('0x34')]);if(_0xc77281[_0xc236('0x35')]){delete _0xc77281[_0xc236('0x35')];}_0x15f8c0[_0xc236('0x2b')](_0x3f9b1d)['send'](_0xc77281);};}exports[_0xc236('0x36')]=function(_0x40ec71,_0x47216d){var _0x961f71={},_0x3f3785={},_0x1edab3={'count':0x0,'rows':[]};var _0x282c8c=_[_0xc236('0x37')](db[_0xc236('0x38')][_0xc236('0x39')],function(_0x2bb05e){return{'name':_0x2bb05e[_0xc236('0x3a')],'type':_0x2bb05e[_0xc236('0x3b')][_0xc236('0x3c')]};});_0x3f3785[_0xc236('0x3d')]=_[_0xc236('0x37')](_0x282c8c,_0xc236('0x35'));_0x3f3785['query']=_['keys'](_0x40ec71['query']);_0x3f3785['filters']=_[_0xc236('0x3e')](_0x3f3785['model'],_0x3f3785[_0xc236('0x3f')]);_0x961f71[_0xc236('0x40')]=_[_0xc236('0x3e')](_0x3f3785[_0xc236('0x3d')],qs[_0xc236('0x41')](_0x40ec71[_0xc236('0x3f')][_0xc236('0x41')]));_0x961f71[_0xc236('0x40')]=_0x961f71[_0xc236('0x40')][_0xc236('0x42')]?_0x961f71[_0xc236('0x40')]:_0x3f3785[_0xc236('0x3d')];if(!_0x40ec71[_0xc236('0x3f')][_0xc236('0x43')](_0xc236('0x44'))){_0x961f71['limit']=qs[_0xc236('0x2d')](_0x40ec71[_0xc236('0x3f')]['limit']);_0x961f71[_0xc236('0x45')]=qs['offset'](_0x40ec71[_0xc236('0x3f')]['offset']);}_0x961f71[_0xc236('0x46')]=qs[_0xc236('0x47')](_0x40ec71[_0xc236('0x3f')]['sort']);_0x961f71[_0xc236('0x48')]=qs[_0xc236('0x49')](_[_0xc236('0x4a')](_0x40ec71['query'],_0x3f3785[_0xc236('0x49')]),_0x282c8c);if(_0x40ec71[_0xc236('0x3f')][_0xc236('0x4b')]){_0x961f71[_0xc236('0x48')]=_[_0xc236('0x4c')](_0x961f71[_0xc236('0x48')],{'$or':_['map'](_0x282c8c,function(_0x359f21){if(_0x359f21['type']!==_0xc236('0x4d')){var _0x3f1965={};_0x3f1965[_0x359f21[_0xc236('0x35')]]={'$like':'%'+_0x40ec71[_0xc236('0x3f')][_0xc236('0x4b')]+'%'};return _0x3f1965;}})});}_0x961f71=_[_0xc236('0x4c')]({},_0x961f71,_0x40ec71[_0xc236('0x4e')]);var _0x5b61ea={'where':_0x961f71[_0xc236('0x48')]};return db['FaxMessage'][_0xc236('0x2c')](_0x5b61ea)[_0xc236('0x20')](function(_0x490416){_0x1edab3[_0xc236('0x2c')]=_0x490416;if(_0x40ec71[_0xc236('0x3f')][_0xc236('0x4f')]){_0x961f71[_0xc236('0x50')]=[{'all':!![]}];}return db[_0xc236('0x38')][_0xc236('0x51')](_0x961f71);})[_0xc236('0x20')](function(_0x5a904e){_0x1edab3['rows']=_0x5a904e;return _0x1edab3;})[_0xc236('0x20')](respondWithFilteredResult(_0x47216d,_0x961f71))[_0xc236('0x52')](handleError(_0x47216d,null));};exports['show']=function(_0xcfaa44,_0x4467da){var _0xeac3bd={'raw':!![],'where':{'id':_0xcfaa44[_0xc236('0x53')]['id']}},_0x7c856f={};_0x7c856f[_0xc236('0x3d')]=_[_0xc236('0x54')](db[_0xc236('0x38')][_0xc236('0x39')]);_0x7c856f['query']=_[_0xc236('0x54')](_0xcfaa44[_0xc236('0x3f')]);_0x7c856f[_0xc236('0x49')]=_[_0xc236('0x3e')](_0x7c856f[_0xc236('0x3d')],_0x7c856f[_0xc236('0x3f')]);_0xeac3bd[_0xc236('0x40')]=_['intersection'](_0x7c856f[_0xc236('0x3d')],qs[_0xc236('0x41')](_0xcfaa44[_0xc236('0x3f')][_0xc236('0x41')]));_0xeac3bd['attributes']=_0xeac3bd[_0xc236('0x40')][_0xc236('0x42')]?_0xeac3bd[_0xc236('0x40')]:_0x7c856f[_0xc236('0x3d')];if(_0xcfaa44[_0xc236('0x3f')]['includeAll']){_0xeac3bd[_0xc236('0x50')]=[{'all':!![]}];}_0xeac3bd=_['merge']({},_0xeac3bd,_0xcfaa44[_0xc236('0x4e')]);return db[_0xc236('0x38')][_0xc236('0x55')](_0xeac3bd)[_0xc236('0x20')](handleEntityNotFound(_0x4467da,null))[_0xc236('0x20')](respondWithResult(_0x4467da,null))['catch'](handleError(_0x4467da,null));};exports['update']=function(_0x3bee67,_0x13a5bf){if(_0x3bee67[_0xc236('0x56')]['id']){delete _0x3bee67[_0xc236('0x56')]['id'];}return db[_0xc236('0x38')][_0xc236('0x55')]({'where':{'id':_0x3bee67[_0xc236('0x53')]['id']}})[_0xc236('0x20')](handleEntityNotFound(_0x13a5bf,null))[_0xc236('0x20')](saveUpdates(_0x3bee67[_0xc236('0x56')],null))['then'](respondWithResult(_0x13a5bf,null))['catch'](handleError(_0x13a5bf,null));};exports[_0xc236('0x33')]=function(_0x3a84b1,_0x8e19c6){return db[_0xc236('0x38')]['find']({'where':{'id':_0x3a84b1[_0xc236('0x53')]['id']}})[_0xc236('0x20')](handleEntityNotFound(_0x8e19c6,null))['then'](removeEntity(_0x8e19c6,null))[_0xc236('0x52')](handleError(_0x8e19c6,null));};exports[_0xc236('0x57')]=function(_0x445f03,_0x182618){return db['FaxMessage'][_0xc236('0x57')]()[_0xc236('0x20')](respondWithResult(_0x182618,null))[_0xc236('0x52')](handleError(_0x182618,null));};var interaction_log=require(_0xc236('0x58'))(_0xc236('0x59'));exports[_0xc236('0x5a')]=function(_0x1bc9a6,_0x4d7bad,_0x490a69){var _0x4c99a4={'agent':{},'channel':_0xc236('0x5b')};if(_0x1bc9a6[_0xc236('0x56')]['id']){delete _0x1bc9a6[_0xc236('0x56')]['id'];}_0x1bc9a6[_0xc236('0x56')]['read']=!![];_0x1bc9a6[_0xc236('0x56')][_0xc236('0x5c')]=moment()[_0xc236('0x5d')]('YYYY-MM-DD\x20HH:mm:ss');_0x1bc9a6[_0xc236('0x56')][_0xc236('0x5e')]=_0x1bc9a6[_0xc236('0x56')][_0xc236('0x5e')]||_0x1bc9a6[_0xc236('0x5f')]['id'];_0x4c99a4[_0xc236('0x60')]['id']=_0x1bc9a6['body']['UserId'];return db[_0xc236('0x38')][_0xc236('0x55')]({'where':{'id':_0x1bc9a6[_0xc236('0x53')]['id'],'UserId':null},'include':[{'model':db[_0xc236('0x61')],'as':_0xc236('0x62')}]})[_0xc236('0x20')](handleEntityNotFound(_0x4d7bad,null))[_0xc236('0x20')](saveUpdates(_0x1bc9a6['body'],null))['then'](function(_0x4b59d3){if(_0x4b59d3){_0x4c99a4[_0xc236('0x27')]=_0x4b59d3[_0xc236('0x63')]({'plain':!![]});return db[_0xc236('0x64')][_0xc236('0x55')]({'where':{'id':_0x4b59d3['FaxInteractionId']}});}return null;})['then'](handleEntityNotFound(_0x4d7bad,null))['then'](function(_0x528d3d){if(_0x528d3d){return _0x528d3d[_0xc236('0x32')]({'UserId':_0x1bc9a6['body'][_0xc236('0x5e')],'read1stAt':_['isNil'](_0x528d3d[_0xc236('0x65')])?moment()[_0xc236('0x5d')](_0xc236('0x66')):undefined});}return null;})[_0xc236('0x20')](function(_0x26d708){if(_0x26d708){_0x4c99a4[_0xc236('0x67')]=_0x26d708[_0xc236('0x63')]({'plain':!![]});interaction_log['info'](_0xc236('0x68'),_0x1bc9a6['user']['id'],_0x1bc9a6[_0xc236('0x5f')][_0xc236('0x35')],_0x1bc9a6[_0xc236('0x5f')][_0xc236('0x69')],_0x4c99a4[_0xc236('0x67')]['id'],_0x1bc9a6[_0xc236('0x56')]?JSON['stringify'](_0x1bc9a6[_0xc236('0x56')]):_0xc236('0x6a'));return respondWithRpcPromise('AcceptMessage',_0xc236('0x6b'),_0x4c99a4);}return null;})[_0xc236('0x20')](function(_0x11d899){if(_0x11d899){if(_0x1bc9a6['body'][_0xc236('0x6c')]){_0x4c99a4[_0xc236('0x27')][_0xc236('0x6d')]=util[_0xc236('0x5d')](_0xc236('0x6e'),_0x1bc9a6[_0xc236('0x5f')][_0xc236('0x35')]);_0x4c99a4[_0xc236('0x27')][_0xc236('0x6f')]=_0x4c99a4[_0xc236('0x6f')];_0x4c99a4[_0xc236('0x27')][_0xc236('0x70')]='accept';return respondWithRpcPromise(_0xc236('0x71'),_0xc236('0x71'),{'event':_0xc236('0x72'),'message':_0x4c99a4['message']},client9002)[_0xc236('0x20')](function(){return _0x4c99a4;});}return _0x4c99a4;}return null;})[_0xc236('0x20')](respondWithResult(_0x4d7bad,null))[_0xc236('0x52')](handleError(_0x4d7bad,null));};var interaction_log=require(_0xc236('0x58'))('fax-interactions');exports[_0xc236('0x30')]=function(_0x4a433e,_0x1923c7,_0x5c0b4f){var _0x7ae92b={'agent':{},'channel':_0xc236('0x5b')};if(_0x4a433e['body']['id']){delete _0x4a433e['body']['id'];}_0x4a433e['body'][_0xc236('0x5e')]=_0x4a433e['body'][_0xc236('0x5e')]||_0x4a433e[_0xc236('0x5f')]['id'];_0x7ae92b['agent']['id']=_0x4a433e[_0xc236('0x56')][_0xc236('0x5e')];return db['FaxMessage'][_0xc236('0x55')]({'where':{'id':_0x4a433e[_0xc236('0x53')]['id'],'UserId':null}})[_0xc236('0x20')](handleEntityNotFound(_0x1923c7,null))[_0xc236('0x20')](function(_0x511858){if(_0x511858){_0x7ae92b[_0xc236('0x27')]=_0x511858[_0xc236('0x63')]({'plain':!![]});return db[_0xc236('0x64')][_0xc236('0x55')]({'where':{'id':_0x511858[_0xc236('0x73')]}});}return null;})[_0xc236('0x20')](handleEntityNotFound(_0x1923c7,null))[_0xc236('0x20')](function(_0x509f3b){if(_0x509f3b){_0x7ae92b['interaction']=_0x509f3b[_0xc236('0x63')]({'plain':!![]});interaction_log[_0xc236('0x28')](_0xc236('0x74'),_0x4a433e[_0xc236('0x5f')]['id'],_0x4a433e[_0xc236('0x5f')][_0xc236('0x35')],_0x4a433e[_0xc236('0x5f')][_0xc236('0x69')],_0x7ae92b['interaction']['id'],_0x4a433e['body']?JSON[_0xc236('0x24')](_0x4a433e['body']):_0xc236('0x6a'));return respondWithRpcPromise(_0xc236('0x75'),_0xc236('0x76'),_0x7ae92b);}return null;})['then'](function(_0x15ffa6){if(_0x15ffa6){_0x15ffa6['message'][_0xc236('0x6d')]=util[_0xc236('0x5d')](_0xc236('0x6e'),_0x4a433e[_0xc236('0x5f')]['name']);_0x15ffa6[_0xc236('0x27')][_0xc236('0x6f')]=_0x7ae92b['channel'];_0x15ffa6[_0xc236('0x27')][_0xc236('0x70')]=_0xc236('0x30');respondWithRpcPromise(_0xc236('0x71'),_0xc236('0x71'),{'event':_0xc236('0x77'),'message':_0x15ffa6[_0xc236('0x27')]},client9002);return _0x7ae92b;}return null;})['then'](respondWithResult(_0x1923c7,null))[_0xc236('0x52')](handleError(_0x1923c7,null));};exports[_0xc236('0x78')]=function(_0x456d0f,_0xd965d0){var _0x4bffbf;return db[_0xc236('0x38')][_0xc236('0x78')](_0x456d0f['body'],{})[_0xc236('0x20')](function(_0x593b62){_0x4bffbf=_0x593b62;return db[_0xc236('0x61')][_0xc236('0x79')]({'where':{'id':_0x4bffbf['ContactId']}});})[_0xc236('0x20')](function(_0x339240){if(_['isNil'](_0x339240)){return;}else{_0x4bffbf['fax']=_0x339240[_0xc236('0x5b')];return db[_0xc236('0x7a')][_0xc236('0x79')]({'where':{'id':_0x4bffbf[_0xc236('0x7b')]}});}})[_0xc236('0x20')](function(_0x17ce2d){return respondWithRpcPromise('SendFax',_0xc236('0x7c'),{'FaxAccountId':_[_0xc236('0x7d')](_0x456d0f[_0xc236('0x56')])?undefined:_0x456d0f[_0xc236('0x56')]['FaxAccountId'],'path':_[_0xc236('0x7d')](_0x17ce2d)?undefined:util[_0xc236('0x5d')](_0xc236('0x7e'),_0x17ce2d[_0xc236('0x7f')]),'fax':_[_0xc236('0x7d')](_0x4bffbf['fax'])?undefined:_0x4bffbf['fax'],'AttachmentId':_0x4bffbf[_0xc236('0x7b')]},client9002);})['then'](respondWithResult(_0xd965d0,0xc9))[_0xc236('0x52')](handleError(_0xd965d0,null));};exports[_0xc236('0x80')]=function(_0x130454,_0x324965){var _0x4f6a56=path[_0xc236('0x81')](config['root'],_0xc236('0x82'),'files',_0xc236('0x83'));return db[_0xc236('0x38')][_0xc236('0x55')]({'where':{'id':_0x130454[_0xc236('0x53')]['id']},'include':[{'model':db[_0xc236('0x7a')],'as':_0xc236('0x7a')}]})[_0xc236('0x20')](handleEntityNotFound(_0x324965,null))[_0xc236('0x20')](function(_0x21da06){if(_0x21da06){return _0x324965['download'](path['join'](_0x4f6a56,_0x21da06[_0xc236('0x7a')][_0xc236('0x7f')]));}})[_0xc236('0x52')](handleError(_0x324965,null));};