Built motion from commit a61a4a20.|2.5.46
[motion2.git] / server / api / faxAccount / faxAccount.rpc.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 _0xcb2b=['created','create','ContactId','User','name','unshift','agent','waitForTheAssignedAgent','Start','startRouting','lodash','util','moment','bluebird','randomstring','ioredis','../../mysqldb','../../config/utils','../../config/logger','rpc','../../config/environment','jayson/promise','client','http','redis','defaults','localhost','socket.io-emitter','./faxAccount.socket','register','request','then','FaxAccount,\x20%s,\x20%s','request\x20sent','debug','stringify','error','code','message','info','FaxAccount','options','raw','map','model','attributes','include','GetFaxAccount','catch','body','fax','CmContact','describe','no\x20available\x20attributes','difference','keys','createdAt','updatedAt','CompanyId','ListId','isNil','Sequelize','ValidationError','from\x20is\x20mandatory','mapKey','mapKey\x20is\x20mandatory,\x20please\x20use\x20one\x20of\x20these:\x20','includes','mapKey\x20invalid,\x20please\x20use\x20one\x20of\x20these:\x20','find','account','CmList','List','Contacts','FaxApplication','Applications','get','applications','list','priority','length','from','FaxInteraction','Contact\x20not\x20found','spread','autoclose','push','close','unmanaged','*,*,*,*'];(function(_0xa464c9,_0x7c86d8){var _0x3d73c4=function(_0x5c2056){while(--_0x5c2056){_0xa464c9['push'](_0xa464c9['shift']());}};_0x3d73c4(++_0x7c86d8);}(_0xcb2b,0x1c7));var _0xbcb2=function(_0x303875,_0x29fc7f){_0x303875=_0x303875-0x0;var _0x507814=_0xcb2b[_0x303875];return _0x507814;};'use strict';var _=require(_0xbcb2('0x0'));var util=require(_0xbcb2('0x1'));var moment=require(_0xbcb2('0x2'));var BPromise=require(_0xbcb2('0x3'));var rs=require(_0xbcb2('0x4'));var fs=require('fs');var Redis=require(_0xbcb2('0x5'));var db=require(_0xbcb2('0x6'))['db'];var utils=require(_0xbcb2('0x7'));var logger=require(_0xbcb2('0x8'))(_0xbcb2('0x9'));var config=require(_0xbcb2('0xa'));var jayson=require(_0xbcb2('0xb'));var client=jayson[_0xbcb2('0xc')][_0xbcb2('0xd')]({'port':0x232c});config[_0xbcb2('0xe')]=_[_0xbcb2('0xf')](config[_0xbcb2('0xe')],{'host':_0xbcb2('0x10'),'port':0x18eb});var socket=require(_0xbcb2('0x11'))(new Redis(config['redis']));require(_0xbcb2('0x12'))[_0xbcb2('0x13')](socket);function respondWithRpcPromise(_0x493be4,_0x78dc37,_0x3773b0){return new BPromise(function(_0x43b1fe,_0x5b6448){return client[_0xbcb2('0x14')](_0x493be4,_0x3773b0)[_0xbcb2('0x15')](function(_0x82aa4f){logger['info'](_0xbcb2('0x16'),_0x78dc37,_0xbcb2('0x17'));logger[_0xbcb2('0x18')]('FaxAccount,\x20%s,\x20%s,\x20%s',_0x78dc37,_0xbcb2('0x17'),JSON[_0xbcb2('0x19')](_0x82aa4f));if(_0x82aa4f[_0xbcb2('0x1a')]){if(_0x82aa4f[_0xbcb2('0x1a')][_0xbcb2('0x1b')]===0x1f4){logger[_0xbcb2('0x1a')](_0xbcb2('0x16'),_0x78dc37,_0x82aa4f[_0xbcb2('0x1a')]['message']);return _0x5b6448(_0x82aa4f[_0xbcb2('0x1a')][_0xbcb2('0x1c')]);}logger['error']('FaxAccount,\x20%s,\x20%s',_0x78dc37,_0x82aa4f[_0xbcb2('0x1a')][_0xbcb2('0x1c')]);return _0x43b1fe(_0x82aa4f[_0xbcb2('0x1a')][_0xbcb2('0x1c')]);}else{logger[_0xbcb2('0x1d')](_0xbcb2('0x16'),_0x78dc37,_0xbcb2('0x17'));_0x43b1fe(_0x82aa4f['result']['message']);}})['catch'](function(_0x1a7e71){logger[_0xbcb2('0x1a')](_0xbcb2('0x16'),_0x78dc37,_0x1a7e71);_0x5b6448(_0x1a7e71);});});}exports['GetFaxAccount']=function(_0x297561){var _0x5f3384=this;return new Promise(function(_0x47c38c,_0x18a2ec){return db[_0xbcb2('0x1e')]['findAll']({'raw':_0x297561[_0xbcb2('0x1f')]?_0x297561['options'][_0xbcb2('0x20')]===undefined?!![]:![]:!![],'where':_0x297561[_0xbcb2('0x1f')]?_0x297561[_0xbcb2('0x1f')]['where']||null:null,'attributes':_0x297561[_0xbcb2('0x1f')]?_0x297561[_0xbcb2('0x1f')]['attributes']||null:null,'limit':_0x297561[_0xbcb2('0x1f')]?_0x297561['options']['limit']||null:null,'include':_0x297561[_0xbcb2('0x1f')]?_0x297561['options']['include']?_[_0xbcb2('0x21')](_0x297561[_0xbcb2('0x1f')]['include'],function(_0x5df693){return{'model':db[_0x5df693[_0xbcb2('0x22')]],'as':_0x5df693['as'],'attributes':_0x5df693[_0xbcb2('0x23')],'include':_0x5df693[_0xbcb2('0x24')]?_[_0xbcb2('0x21')](_0x5df693['include'],function(_0x146831){return{'model':db[_0x146831[_0xbcb2('0x22')]],'as':_0x146831['as'],'attributes':_0x146831[_0xbcb2('0x23')],'include':_0x146831['include']?_[_0xbcb2('0x21')](_0x146831['include'],function(_0x35c8b5){return{'model':db[_0x35c8b5[_0xbcb2('0x22')]],'as':_0x35c8b5['as'],'attributes':_0x35c8b5[_0xbcb2('0x23')]};}):[]};}):[]};}):[]:[]})['then'](function(_0x5f0028){logger[_0xbcb2('0x1d')](_0xbcb2('0x25'),_0x297561);logger[_0xbcb2('0x18')](_0xbcb2('0x25'),_0x297561,JSON[_0xbcb2('0x19')](_0x5f0028));_0x47c38c(_0x5f0028);})[_0xbcb2('0x26')](function(_0x391def){logger[_0xbcb2('0x1a')]('GetFaxAccount',_0x391def[_0xbcb2('0x1c')],_0x297561);_0x18a2ec(_0x5f3384[_0xbcb2('0x1a')](0x1f4,_0x391def[_0xbcb2('0x1c')]));});});};exports['NotifyFaxAccount']=function(_0x38d371,_0x892179,_0x44fa8f){var _0x18c12c=this;return new Promise(function(_0x3b191a,_0xb6b5fb){var _0x393618={'body':_0x38d371[_0xbcb2('0x27')],'channel':_0xbcb2('0x28')};var _0x4d46ba=[];var _0x1ade60=[];var _0x4f4f7c={};return db[_0xbcb2('0x29')][_0xbcb2('0x2a')]()['then'](function(_0x4d0b94){if(!_0x4d0b94){throw new db['Sequelize']['ValidationError'](_0xbcb2('0x2b'));}_0x4d46ba=_[_0xbcb2('0x2c')](_[_0xbcb2('0x2d')](_0x4d0b94),[_0xbcb2('0x2e'),_0xbcb2('0x2f')]);_0x1ade60=_['difference'](_[_0xbcb2('0x2d')](_0x4d0b94),[_0xbcb2('0x2e'),_0xbcb2('0x2f'),_0xbcb2('0x30'),_0xbcb2('0x31')]);if(_0x38d371[_0xbcb2('0x27')]['id']){delete _0x38d371[_0xbcb2('0x27')]['id'];}if(_[_0xbcb2('0x32')](_0x38d371[_0xbcb2('0x27')]['from'])){throw new db[(_0xbcb2('0x33'))][(_0xbcb2('0x34'))](_0xbcb2('0x35'));}if(_['isNil'](_0x38d371['body'][_0xbcb2('0x27')])||_0x38d371[_0xbcb2('0x27')][_0xbcb2('0x27')]===''){throw new db[(_0xbcb2('0x33'))]['ValidationError']('body\x20is\x20mandatory\x20and\x20not\x20empty');}if(_[_0xbcb2('0x32')](_0x38d371[_0xbcb2('0x27')][_0xbcb2('0x36')])){throw new db[(_0xbcb2('0x33'))][(_0xbcb2('0x34'))](_0xbcb2('0x37')+_0x1ade60);}if(!_[_0xbcb2('0x38')](_0x1ade60,_0x38d371[_0xbcb2('0x27')][_0xbcb2('0x36')])){throw new db['Sequelize'][(_0xbcb2('0x34'))](_0xbcb2('0x39')+_0x1ade60);}_0x4f4f7c[_0x38d371[_0xbcb2('0x27')][_0xbcb2('0x36')]]=_0x38d371[_0xbcb2('0x27')]['from'];})[_0xbcb2('0x15')](function(){return db[_0xbcb2('0x1e')][_0xbcb2('0x3a')]({'where':{'id':_0x38d371[_0xbcb2('0x3b')]['id']},'include':[{'model':db[_0xbcb2('0x3c')],'as':_0xbcb2('0x3d'),'include':[{'model':db['CmContact'],'as':_0xbcb2('0x3e'),'where':_0x4f4f7c,'limit':0x1,'order':[[_0xbcb2('0x2f'),'DESC']]}]},{'model':db[_0xbcb2('0x3f')],'as':_0xbcb2('0x40')}]});})[_0xbcb2('0x15')](function(_0xe3c777){if(_0xe3c777&&_0xe3c777['List']){var _0x11bfe3=_0xe3c777[_0xbcb2('0x41')]({'plain':!![]});_0x393618[_0xbcb2('0x3b')]=_0x11bfe3;_0x393618[_0xbcb2('0x42')]=_0x11bfe3['Applications'];_0x393618[_0xbcb2('0x43')]=_0x11bfe3[_0xbcb2('0x3d')];_0x393618['applications']=_['orderBy'](_0x393618['applications'],[_0xbcb2('0x44')],['asc']);if(_0x393618['account'][_0xbcb2('0x40')]){delete _0x393618[_0xbcb2('0x3b')][_0xbcb2('0x40')];}if(_0x393618[_0xbcb2('0x3b')][_0xbcb2('0x3d')]&&_0x393618['account']['List'][_0xbcb2('0x3e')][_0xbcb2('0x45')]){return _0x393618['account']['List'][_0xbcb2('0x3e')][0x0];}var _0x3a0dc7=_['defaults'](_0x38d371[_0xbcb2('0x27')],{'firstName':_0x38d371[_0xbcb2('0x27')]['from'],'ListId':_0x11bfe3[_0xbcb2('0x31')]});_0x3a0dc7[_0x38d371[_0xbcb2('0x27')]['mapKey']]=_0x38d371[_0xbcb2('0x27')][_0xbcb2('0x46')];return db[_0xbcb2('0x29')]['create'](_0x3a0dc7,{'fields':_0x4d46ba,'raw':!![]});}})[_0xbcb2('0x15')](function(_0x2fa8bf){_0x393618['contact']=_0x2fa8bf;if(_0x2fa8bf){var _0x1d8ae4={'ContactId':_0x2fa8bf['id'],'FaxAccountId':_0x38d371[_0xbcb2('0x3b')]['id'],'fax':_0x2fa8bf[_0xbcb2('0x28')]};return db[_0xbcb2('0x47')][_0xbcb2('0x3a')]({'where':{'ContactId':_0x2fa8bf['id'],'closed':![],'FaxAccountId':_0x38d371[_0xbcb2('0x3b')]['id']}})[_0xbcb2('0x15')](function(_0x53751f){if(_0x53751f){return[_0x53751f,![]];}return db['FaxInteraction']['create'](_0x1d8ae4)[_0xbcb2('0x15')](function(_0x596767){return[_0x596767,!![]];});});}else{throw new Error(_0xbcb2('0x48'));}})[_0xbcb2('0x49')](function(_0x1f688e,_0xf2a08a){var _0x4bd0ed=_0x1f688e[_0xbcb2('0x41')]({'plain':!![]});if(_0xf2a08a){if(_0x393618[_0xbcb2('0x3b')][_0xbcb2('0x4a')]){_0x393618['applications'][_0xbcb2('0x4b')]({'id':0x0,'priority':_0x393618['applications'][_0xbcb2('0x45')]+0x1,'app':_0xbcb2('0x4c'),'appdata':_0xbcb2('0x4d'),'interval':_0xbcb2('0x4e')});}_0x4bd0ed[_0xbcb2('0x4f')]=!![];}else{_0x4bd0ed[_0xbcb2('0x4f')]=![];}_0x393618['interaction']=_0x4bd0ed;return db['FaxMessage'][_0xbcb2('0x50')]({'body':_0x38d371['body'][_0xbcb2('0x27')],'FaxAccountId':_0x38d371[_0xbcb2('0x3b')]['id'],'FaxInteractionId':_0x1f688e['id'],'direction':'in','ContactId':_0x1f688e[_0xbcb2('0x51')],'AttachmentId':_0x38d371[_0xbcb2('0x27')]['AttachmentId']});})[_0xbcb2('0x15')](function(_0xdbbe94){_0x393618['message']=_0xdbbe94;if(_0x393618['interaction']['UserId']){return db[_0xbcb2('0x52')][_0xbcb2('0x3a')]({'attributes':['id',_0xbcb2('0x53')],'where':{'id':_0x393618['interaction']['UserId']}})[_0xbcb2('0x15')](function(_0x518076){if(_0x518076){_0x393618[_0xbcb2('0x42')][_0xbcb2('0x54')]({'id':0x0,'priority':0x0,'app':_0xbcb2('0x55'),'appdata':_0x518076[_0xbcb2('0x53')]+','+(_0x393618[_0xbcb2('0x3b')][_0xbcb2('0x56')]||0xa),'interval':_0xbcb2('0x4e')});}return respondWithRpcPromise(_0xbcb2('0x57'),'startRouting',_0x393618);});}return respondWithRpcPromise(_0xbcb2('0x57'),_0xbcb2('0x58'),_0x393618);})['then'](function(_0x59e410){_0x3b191a(_0x59e410);})[_0xbcb2('0x26')](function(_0x43ad4d){_0xb6b5fb(_0x18c12c['error'](0x1f4,_0x43ad4d[_0xbcb2('0x1c')]));});});};