753c209302fce29ec0e63fe0084970c058847229
[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 _0x158a=['isNil','FaxAccountId','/var/opt/motion2/server/files/attachments/%s','basename','download','join','root','server','files','attachments','Attachment','util','../../config/logger','../../config/environment','../../mysqldb','redis','defaults','localhost','socket.io-emitter','./faxMessage.socket','jayson/promise','client','http','then','FaxMessage,\x20%s,\x20%s','request\x20sent','FaxMessage,\x20%s,\x20%s,\x20%s','stringify','error','code','message','info','result','catch','json','undefined','offset','count','status','set','Content-Range','update','destroy','end','stack','name','send','index','FaxMessage','type','model','query','keys','filters','intersection','fields','attributes','length','hasOwnProperty','nolimit','limit','order','sort','where','merge','VIRTUAL','filter','options','includeAll','findAll','rows','show','params','rawAttributes','find','body','describe','accept','sms','acceptMessage','fax','reject','UserId','user','agent','get','FaxInteraction','FaxInteractionId','interaction','[FAXMESSAGE:REJECT]\x20id=%s\x20name=%s\x20role=%s\x20interaction=%s\x20body=%s','role','RejectMessage','ContactId','sequelize','QueryTypes','SELECT','contact','User','fullname','email','internal','interface','format','SIP/%s','channel','motionChannel','event','EventManager','rejectmessage','create','findOne','AttachmentId','SendFax'];(function(_0xd34c38,_0x455c59){var _0xd180d6=function(_0x4a9cd4){while(--_0x4a9cd4){_0xd34c38['push'](_0xd34c38['shift']());}};_0xd180d6(++_0x455c59);}(_0x158a,0x7c));var _0xa158=function(_0x277651,_0x22fb4f){_0x277651=_0x277651-0x0;var _0x4a3eb1=_0x158a[_0x277651];return _0x4a3eb1;};'use strict';var util=require(_0xa158('0x0'));var path=require('path');var _=require('lodash');var Redis=require('ioredis');var interactionService=require('../../components/interaction/service');var qs=require('../../components/parsers/qs');var logger=require(_0xa158('0x1'))('api');var config=require(_0xa158('0x2'));var db=require(_0xa158('0x3'))['db'];config[_0xa158('0x4')]=_[_0xa158('0x5')](config['redis'],{'host':_0xa158('0x6'),'port':0x18eb});var socket=require(_0xa158('0x7'))(new Redis(config[_0xa158('0x4')]));require(_0xa158('0x8'))['register'](socket);var jayson=require(_0xa158('0x9'));var client=jayson[_0xa158('0xa')]['http']({'port':0x232c});var client9002=jayson['client'][_0xa158('0xb')]({'port':0x232a});var interaction_log=require(_0xa158('0x1'))('fax-interactions');function respondWithRpcPromise(_0x6a2c7b,_0x29d575,_0x36e490,_0x486f18){return new Promise(function(_0x1fc7f1,_0x42dc68){var _0x1277bd=_0x486f18||client;return _0x1277bd['request'](_0x6a2c7b,_0x36e490)[_0xa158('0xc')](function(_0x1f727e){logger['info'](_0xa158('0xd'),_0x29d575,_0xa158('0xe'));logger['debug'](_0xa158('0xf'),_0x29d575,_0xa158('0xe'),JSON[_0xa158('0x10')](_0x1f727e));if(_0x1f727e[_0xa158('0x11')]){if(_0x1f727e[_0xa158('0x11')][_0xa158('0x12')]===0x1f4){logger[_0xa158('0x11')]('FaxMessage,\x20%s,\x20%s',_0x29d575,_0x1f727e[_0xa158('0x11')][_0xa158('0x13')]);return _0x42dc68(_0x1f727e[_0xa158('0x11')][_0xa158('0x13')]);}logger[_0xa158('0x11')]('FaxMessage,\x20%s,\x20%s',_0x29d575,_0x1f727e[_0xa158('0x11')][_0xa158('0x13')]);return _0x1fc7f1(_0x1f727e[_0xa158('0x11')][_0xa158('0x13')]);}else{logger[_0xa158('0x14')](_0xa158('0xd'),_0x29d575,_0xa158('0xe'));_0x1fc7f1(_0x1f727e[_0xa158('0x15')]['message']);}})[_0xa158('0x16')](function(_0x4835e5){logger[_0xa158('0x11')]('FaxMessage,\x20%s,\x20%s',_0x29d575,_0x4835e5);_0x42dc68(_0x4835e5);});});}function respondWithResult(_0x1c4bb2,_0x372bc5){_0x372bc5=_0x372bc5||0xc8;return function(_0x58125c){if(_0x58125c){return _0x1c4bb2['status'](_0x372bc5)[_0xa158('0x17')](_0x58125c);}};}function respondWithFilteredResult(_0x1dd414,_0x44823d){return function(_0x21c8ed){if(_0x21c8ed){var _0x104d04=typeof _0x44823d['offset']===_0xa158('0x18')&&typeof _0x44823d['limit']===_0xa158('0x18');var _0x853475=_0x21c8ed['count'];var _0x22f251=_0x104d04?0x0:_0x44823d[_0xa158('0x19')];var _0x443dbf=_0x104d04?_0x21c8ed[_0xa158('0x1a')]:_0x44823d[_0xa158('0x19')]+_0x44823d['limit'];var _0x344492;if(_0x443dbf>=_0x853475){_0x443dbf=_0x853475;_0x344492=0xc8;}else{_0x344492=0xce;}_0x1dd414[_0xa158('0x1b')](_0x344492);return _0x1dd414[_0xa158('0x1c')](_0xa158('0x1d'),_0x22f251+'-'+_0x443dbf+'/'+_0x853475)[_0xa158('0x17')](_0x21c8ed);}return null;};}function saveUpdates(_0xa8b5d){return function(_0x14e470){if(_0x14e470){return _0x14e470[_0xa158('0x1e')](_0xa8b5d)[_0xa158('0xc')](function(_0x469944){return _0x469944;});}return null;};}function removeEntity(_0x1b1bd3){return function(_0x1aa606){if(_0x1aa606){return _0x1aa606[_0xa158('0x1f')]()[_0xa158('0xc')](function(){_0x1b1bd3[_0xa158('0x1b')](0xcc)[_0xa158('0x20')]();});}};}function handleEntityNotFound(_0x49ebf1){return function(_0xcafedc){if(!_0xcafedc){_0x49ebf1['sendStatus'](0x194);}return _0xcafedc;};}function handleError(_0x4ccf3f,_0x3a18a5){_0x3a18a5=_0x3a18a5||0x1f4;return function(_0x3c716f){logger[_0xa158('0x11')](_0x3c716f[_0xa158('0x21')]);if(_0x3c716f[_0xa158('0x22')]){delete _0x3c716f['name'];}_0x4ccf3f['status'](_0x3a18a5)[_0xa158('0x23')](_0x3c716f);};}exports[_0xa158('0x24')]=function(_0x510437,_0x5a4a82){var _0x42fe6e={},_0x5a5dee={},_0x54e1e0={'count':0x0,'rows':[]};var _0x51aee2=_['map'](db[_0xa158('0x25')]['rawAttributes'],function(_0x4066c9){return{'name':_0x4066c9['fieldName'],'type':_0x4066c9[_0xa158('0x26')]['key']};});_0x5a5dee[_0xa158('0x27')]=_['map'](_0x51aee2,'name');_0x5a5dee[_0xa158('0x28')]=_[_0xa158('0x29')](_0x510437[_0xa158('0x28')]);_0x5a5dee[_0xa158('0x2a')]=_[_0xa158('0x2b')](_0x5a5dee['model'],_0x5a5dee[_0xa158('0x28')]);_0x42fe6e['attributes']=_[_0xa158('0x2b')](_0x5a5dee[_0xa158('0x27')],qs['fields'](_0x510437[_0xa158('0x28')][_0xa158('0x2c')]));_0x42fe6e[_0xa158('0x2d')]=_0x42fe6e[_0xa158('0x2d')][_0xa158('0x2e')]?_0x42fe6e[_0xa158('0x2d')]:_0x5a5dee[_0xa158('0x27')];if(!_0x510437[_0xa158('0x28')][_0xa158('0x2f')](_0xa158('0x30'))){_0x42fe6e[_0xa158('0x31')]=qs[_0xa158('0x31')](_0x510437[_0xa158('0x28')][_0xa158('0x31')]);_0x42fe6e['offset']=qs['offset'](_0x510437[_0xa158('0x28')]['offset']);}_0x42fe6e[_0xa158('0x32')]=qs[_0xa158('0x33')](_0x510437[_0xa158('0x28')]['sort']);_0x42fe6e['where']=qs[_0xa158('0x2a')](_['pick'](_0x510437['query'],_0x5a5dee[_0xa158('0x2a')]),_0x51aee2);if(_0x510437[_0xa158('0x28')]['filter']){_0x42fe6e[_0xa158('0x34')]=_[_0xa158('0x35')](_0x42fe6e[_0xa158('0x34')],{'$or':_['map'](_0x51aee2,function(_0x653f4){if(_0x653f4[_0xa158('0x26')]!==_0xa158('0x36')){var _0x6047e={};_0x6047e[_0x653f4[_0xa158('0x22')]]={'$like':'%'+_0x510437['query'][_0xa158('0x37')]+'%'};return _0x6047e;}})});}_0x42fe6e=_[_0xa158('0x35')]({},_0x42fe6e,_0x510437[_0xa158('0x38')]);var _0x197847={'where':_0x42fe6e[_0xa158('0x34')]};return db['FaxMessage'][_0xa158('0x1a')](_0x197847)[_0xa158('0xc')](function(_0x590f18){_0x54e1e0[_0xa158('0x1a')]=_0x590f18;if(_0x510437[_0xa158('0x28')][_0xa158('0x39')]){_0x42fe6e['include']=[{'all':!![]}];}return db[_0xa158('0x25')][_0xa158('0x3a')](_0x42fe6e);})[_0xa158('0xc')](function(_0x54f3b7){_0x54e1e0[_0xa158('0x3b')]=_0x54f3b7;return _0x54e1e0;})[_0xa158('0xc')](respondWithFilteredResult(_0x5a4a82,_0x42fe6e))[_0xa158('0x16')](handleError(_0x5a4a82,null));};exports[_0xa158('0x3c')]=function(_0x4db40e,_0xd44f3e){var _0xf8e5d8={'raw':!![],'where':{'id':_0x4db40e[_0xa158('0x3d')]['id']}},_0x2020f3={};_0x2020f3['model']=_[_0xa158('0x29')](db[_0xa158('0x25')][_0xa158('0x3e')]);_0x2020f3['query']=_['keys'](_0x4db40e['query']);_0x2020f3['filters']=_[_0xa158('0x2b')](_0x2020f3[_0xa158('0x27')],_0x2020f3[_0xa158('0x28')]);_0xf8e5d8[_0xa158('0x2d')]=_[_0xa158('0x2b')](_0x2020f3[_0xa158('0x27')],qs['fields'](_0x4db40e[_0xa158('0x28')]['fields']));_0xf8e5d8[_0xa158('0x2d')]=_0xf8e5d8[_0xa158('0x2d')][_0xa158('0x2e')]?_0xf8e5d8[_0xa158('0x2d')]:_0x2020f3[_0xa158('0x27')];if(_0x4db40e[_0xa158('0x28')][_0xa158('0x39')]){_0xf8e5d8['include']=[{'all':!![]}];}_0xf8e5d8=_['merge']({},_0xf8e5d8,_0x4db40e[_0xa158('0x38')]);return db[_0xa158('0x25')][_0xa158('0x3f')](_0xf8e5d8)['then'](handleEntityNotFound(_0xd44f3e,null))[_0xa158('0xc')](respondWithResult(_0xd44f3e,null))[_0xa158('0x16')](handleError(_0xd44f3e,null));};exports[_0xa158('0x1e')]=function(_0x2f8d28,_0xeefd81){if(_0x2f8d28[_0xa158('0x40')]['id']){delete _0x2f8d28[_0xa158('0x40')]['id'];}return db['FaxMessage'][_0xa158('0x3f')]({'where':{'id':_0x2f8d28[_0xa158('0x3d')]['id']}})[_0xa158('0xc')](handleEntityNotFound(_0xeefd81,null))['then'](saveUpdates(_0x2f8d28[_0xa158('0x40')],null))[_0xa158('0xc')](respondWithResult(_0xeefd81,null))[_0xa158('0x16')](handleError(_0xeefd81,null));};exports[_0xa158('0x1f')]=function(_0x14f754,_0x5aa72f){return db[_0xa158('0x25')]['find']({'where':{'id':_0x14f754[_0xa158('0x3d')]['id']}})[_0xa158('0xc')](handleEntityNotFound(_0x5aa72f,null))[_0xa158('0xc')](removeEntity(_0x5aa72f,null))['catch'](handleError(_0x5aa72f,null));};exports[_0xa158('0x41')]=function(_0x305c31,_0x5ec2ff){return db[_0xa158('0x25')]['describe']()[_0xa158('0xc')](respondWithResult(_0x5ec2ff,null))[_0xa158('0x16')](handleError(_0x5ec2ff,null));};exports[_0xa158('0x42')]=function(_0x4205ec,_0x435a11){var _0x49f338=_0xa158('0x43');return interactionService[_0xa158('0x44')](_0x4205ec,_0x49f338)['then'](respondWithResult(_0x435a11,null))[_0xa158('0x16')](handleError(_0x435a11,null));};exports[_0xa158('0x42')]=function(_0x10cbc2,_0x46029b){var _0x3b81f5=_0xa158('0x45');return interactionService[_0xa158('0x44')](_0x10cbc2,_0x3b81f5)['then'](respondWithResult(_0x46029b,null))[_0xa158('0x16')](handleError(_0x46029b,null));};exports[_0xa158('0x46')]=function(_0x17f06c,_0x2c5997){var _0x50d50d={'agent':{},'channel':'fax'};if(_0x17f06c[_0xa158('0x40')]['id']){delete _0x17f06c[_0xa158('0x40')]['id'];}_0x17f06c[_0xa158('0x40')][_0xa158('0x47')]=_0x17f06c['body']['UserId']||_0x17f06c[_0xa158('0x48')]['id'];_0x50d50d[_0xa158('0x49')]['id']=_0x17f06c[_0xa158('0x40')][_0xa158('0x47')];return db[_0xa158('0x25')][_0xa158('0x3f')]({'where':{'id':_0x17f06c['params']['id'],'UserId':null}})['then'](handleEntityNotFound(_0x2c5997,null))[_0xa158('0xc')](function(_0x3ef98a){if(_0x3ef98a){_0x50d50d[_0xa158('0x13')]=_0x3ef98a[_0xa158('0x4a')]({'plain':!![]});return db[_0xa158('0x4b')][_0xa158('0x3f')]({'where':{'id':_0x3ef98a[_0xa158('0x4c')]}});}return null;})[_0xa158('0xc')](handleEntityNotFound(_0x2c5997,null))['then'](function(_0x4ccc76){if(_0x4ccc76){_0x50d50d[_0xa158('0x4d')]=_0x4ccc76[_0xa158('0x4a')]({'plain':!![]});interaction_log[_0xa158('0x14')](_0xa158('0x4e'),_0x17f06c[_0xa158('0x48')]['id'],_0x17f06c['user']['name'],_0x17f06c['user'][_0xa158('0x4f')],_0x50d50d[_0xa158('0x4d')]['id'],_0x17f06c[_0xa158('0x40')]?JSON[_0xa158('0x10')](_0x17f06c['body']):'null');return respondWithRpcPromise(_0xa158('0x50'),'rejectMessage',_0x50d50d);}return null;})[_0xa158('0xc')](function(_0x2c68fc){var _0x2b8fe1='SELECT\x20*\x20FROM\x20cm_contacts\x20WHERE\x20id\x20=\x20'+_0x2c68fc['message'][_0xa158('0x51')];return db[_0xa158('0x52')]['query'](_0x2b8fe1,{'type':db['Sequelize'][_0xa158('0x53')][_0xa158('0x54')],'raw':!![]})[_0xa158('0xc')](function(_0x3db176){return _0x3db176;});})[_0xa158('0xc')](function(_0x32b937){if(_0x32b937){_0x50d50d[_0xa158('0x13')][_0xa158('0x55')]=_0x32b937[0x0];if(!_0x17f06c['body'][_0xa158('0x47')])return;return db[_0xa158('0x56')][_0xa158('0x3f')]({'where':{'id':_0x17f06c[_0xa158('0x40')]['UserId'],'role':_0xa158('0x49')},'attributes':['id',_0xa158('0x22'),_0xa158('0x57'),_0xa158('0x58'),_0xa158('0x59')],'raw':!![]});}return null;})['then'](function(_0xa409ac){if(!_0xa409ac)return null;_0x50d50d[_0xa158('0x13')][_0xa158('0x49')]=_0xa409ac;return _0x50d50d;})[_0xa158('0xc')](function(_0x51c598){if(_0x51c598){_0x51c598[_0xa158('0x13')][_0xa158('0x5a')]=util[_0xa158('0x5b')](_0xa158('0x5c'),_0x17f06c['user']['name']);_0x51c598[_0xa158('0x13')][_0xa158('0x5d')]=_0x50d50d['channel'];_0x51c598[_0xa158('0x13')][_0xa158('0x5e')]=_0x50d50d[_0xa158('0x5d')];_0x51c598[_0xa158('0x13')][_0xa158('0x5f')]=_0xa158('0x46');respondWithRpcPromise(_0xa158('0x60'),'EventManager',{'event':_0xa158('0x61'),'message':_0x51c598[_0xa158('0x13')]},client9002);return _0x50d50d;}return null;})[_0xa158('0xc')](respondWithResult(_0x2c5997,null))[_0xa158('0x16')](handleError(_0x2c5997,null));};exports[_0xa158('0x62')]=function(_0x4e4067,_0x5a7a66){var _0xcd5704;return db[_0xa158('0x25')][_0xa158('0x62')](_0x4e4067[_0xa158('0x40')],{})[_0xa158('0xc')](function(_0x52c161){_0xcd5704=_0x52c161;return db['CmContact'][_0xa158('0x63')]({'where':{'id':_0xcd5704[_0xa158('0x51')]}});})['then'](function(_0x132aa7){if(_['isNil'](_0x132aa7)){return;}else{_0xcd5704[_0xa158('0x45')]=_0x132aa7['fax'];return db['Attachment'][_0xa158('0x63')]({'where':{'id':_0xcd5704[_0xa158('0x64')]}});}})[_0xa158('0xc')](function(_0x323d33){return respondWithRpcPromise(_0xa158('0x65'),_0xa158('0x65'),{'FaxAccountId':_[_0xa158('0x66')](_0x4e4067[_0xa158('0x40')])?undefined:_0x4e4067[_0xa158('0x40')][_0xa158('0x67')],'path':_[_0xa158('0x66')](_0x323d33)?undefined:util['format'](_0xa158('0x68'),_0x323d33[_0xa158('0x69')]),'fax':_[_0xa158('0x66')](_0xcd5704[_0xa158('0x45')])?undefined:_0xcd5704[_0xa158('0x45')],'AttachmentId':_0xcd5704[_0xa158('0x64')]},client9002);})[_0xa158('0xc')](respondWithResult(_0x5a7a66,0xc9))[_0xa158('0x16')](handleError(_0x5a7a66,null));};exports[_0xa158('0x6a')]=function(_0x2f8103,_0x5d6ca1){var _0x575d40=path[_0xa158('0x6b')](config[_0xa158('0x6c')],_0xa158('0x6d'),_0xa158('0x6e'),_0xa158('0x6f'));return db[_0xa158('0x25')][_0xa158('0x3f')]({'where':{'id':_0x2f8103[_0xa158('0x3d')]['id']},'include':[{'model':db[_0xa158('0x70')],'as':_0xa158('0x70')}]})[_0xa158('0xc')](handleEntityNotFound(_0x5d6ca1,null))['then'](function(_0x33dd30){if(_0x33dd30){return _0x5d6ca1[_0xa158('0x6a')](path['join'](_0x575d40,_0x33dd30[_0xa158('0x70')][_0xa158('0x69')]));}})['catch'](handleError(_0x5d6ca1,null));};