ba359f7e4ef5e8245c39cd1b57f2fc99077beb67
[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 _0xeb49=['keys','createdAt','updatedAt','CompanyId','ListId','isNil','from\x20is\x20mandatory','body\x20is\x20mandatory\x20and\x20not\x20empty','mapKey','mapKey\x20is\x20mandatory,\x20please\x20use\x20one\x20of\x20these:\x20','includes','mapKey\x20invalid,\x20please\x20use\x20one\x20of\x20these:\x20','from','find','account','CmList','List','DESC','Applications','get','applications','list','orderBy','priority','asc','Contacts','length','defaults','contact','fax','FaxInteraction','create','Contact\x20not\x20found','autoclose','push','close','unmanaged','*,*,*,*','created','interaction','FaxMessage','ContactId','AttachmentId','UserId','User','name','unshift','agent','waitForTheAssignedAgent','Start','startRouting','lodash','moment','bluebird','randomstring','ioredis','../../mysqldb','../../config/utils','../../config/logger','rpc','../../config/environment','jayson/promise','client','http','redis','socket.io-emitter','register','info','request\x20sent','debug','FaxAccount,\x20%s,\x20%s,\x20%s','stringify','error','FaxAccount,\x20%s,\x20%s','message','result','GetFaxAccount','FaxAccount','findAll','options','attributes','limit','include','model','map','then','catch','body','CmContact','Sequelize','ValidationError','no\x20available\x20attributes','difference'];(function(_0x52de74,_0x152687){var _0x33113e=function(_0x182424){while(--_0x182424){_0x52de74['push'](_0x52de74['shift']());}};_0x33113e(++_0x152687);}(_0xeb49,0x14a));var _0x9eb4=function(_0x47bba8,_0x378c3b){_0x47bba8=_0x47bba8-0x0;var _0x104e92=_0xeb49[_0x47bba8];return _0x104e92;};'use strict';var _=require(_0x9eb4('0x0'));var util=require('util');var moment=require(_0x9eb4('0x1'));var BPromise=require(_0x9eb4('0x2'));var rs=require(_0x9eb4('0x3'));var fs=require('fs');var Redis=require(_0x9eb4('0x4'));var db=require(_0x9eb4('0x5'))['db'];var utils=require(_0x9eb4('0x6'));var logger=require(_0x9eb4('0x7'))(_0x9eb4('0x8'));var config=require(_0x9eb4('0x9'));var jayson=require(_0x9eb4('0xa'));var client=jayson[_0x9eb4('0xb')][_0x9eb4('0xc')]({'port':0x232c});config[_0x9eb4('0xd')]=_['defaults'](config[_0x9eb4('0xd')],{'host':'localhost','port':0x18eb});var socket=require(_0x9eb4('0xe'))(new Redis(config[_0x9eb4('0xd')]));require('./faxAccount.socket')[_0x9eb4('0xf')](socket);function respondWithRpcPromise(_0x1f3acc,_0x40964f,_0xd5a7ab){return new BPromise(function(_0x269cfe,_0x376942){return client['request'](_0x1f3acc,_0xd5a7ab)['then'](function(_0x4ca005){logger[_0x9eb4('0x10')]('FaxAccount,\x20%s,\x20%s',_0x40964f,_0x9eb4('0x11'));logger[_0x9eb4('0x12')](_0x9eb4('0x13'),_0x40964f,'request\x20sent',JSON[_0x9eb4('0x14')](_0x4ca005));if(_0x4ca005[_0x9eb4('0x15')]){if(_0x4ca005[_0x9eb4('0x15')]['code']===0x1f4){logger['error'](_0x9eb4('0x16'),_0x40964f,_0x4ca005[_0x9eb4('0x15')][_0x9eb4('0x17')]);return _0x376942(_0x4ca005[_0x9eb4('0x15')][_0x9eb4('0x17')]);}logger[_0x9eb4('0x15')](_0x9eb4('0x16'),_0x40964f,_0x4ca005[_0x9eb4('0x15')][_0x9eb4('0x17')]);return _0x269cfe(_0x4ca005[_0x9eb4('0x15')]['message']);}else{logger['info'](_0x9eb4('0x16'),_0x40964f,'request\x20sent');_0x269cfe(_0x4ca005[_0x9eb4('0x18')][_0x9eb4('0x17')]);}})['catch'](function(_0x42d198){logger[_0x9eb4('0x15')](_0x9eb4('0x16'),_0x40964f,_0x42d198);_0x376942(_0x42d198);});});}exports[_0x9eb4('0x19')]=function(_0x20011a){var _0x3b01ac=this;return new Promise(function(_0x16c28a,_0x36f3bc){return db[_0x9eb4('0x1a')][_0x9eb4('0x1b')]({'raw':_0x20011a[_0x9eb4('0x1c')]?_0x20011a[_0x9eb4('0x1c')]['raw']===undefined?!![]:![]:!![],'where':_0x20011a[_0x9eb4('0x1c')]?_0x20011a[_0x9eb4('0x1c')]['where']||null:null,'attributes':_0x20011a[_0x9eb4('0x1c')]?_0x20011a[_0x9eb4('0x1c')][_0x9eb4('0x1d')]||null:null,'limit':_0x20011a[_0x9eb4('0x1c')]?_0x20011a[_0x9eb4('0x1c')][_0x9eb4('0x1e')]||null:null,'include':_0x20011a[_0x9eb4('0x1c')]?_0x20011a[_0x9eb4('0x1c')]['include']?_['map'](_0x20011a[_0x9eb4('0x1c')][_0x9eb4('0x1f')],function(_0x42eab4){return{'model':db[_0x42eab4[_0x9eb4('0x20')]],'as':_0x42eab4['as'],'attributes':_0x42eab4['attributes'],'include':_0x42eab4[_0x9eb4('0x1f')]?_[_0x9eb4('0x21')](_0x42eab4[_0x9eb4('0x1f')],function(_0x50d741){return{'model':db[_0x50d741[_0x9eb4('0x20')]],'as':_0x50d741['as'],'attributes':_0x50d741[_0x9eb4('0x1d')],'include':_0x50d741['include']?_[_0x9eb4('0x21')](_0x50d741['include'],function(_0x3d56ed){return{'model':db[_0x3d56ed[_0x9eb4('0x20')]],'as':_0x3d56ed['as'],'attributes':_0x3d56ed['attributes']};}):[]};}):[]};}):[]:[]})[_0x9eb4('0x22')](function(_0x54f028){logger['info']('GetFaxAccount',_0x20011a);logger[_0x9eb4('0x12')]('GetFaxAccount',_0x20011a,JSON['stringify'](_0x54f028));_0x16c28a(_0x54f028);})[_0x9eb4('0x23')](function(_0x59befd){logger[_0x9eb4('0x15')](_0x9eb4('0x19'),_0x59befd[_0x9eb4('0x17')],_0x20011a);_0x36f3bc(_0x3b01ac[_0x9eb4('0x15')](0x1f4,_0x59befd['message']));});});};exports['NotifyFaxAccount']=function(_0x386704,_0x2abfbb,_0x3707fe){var _0x1bd885=this;return new Promise(function(_0x58a234,_0x2b3101){var _0x560dc7={'body':_0x386704[_0x9eb4('0x24')],'channel':'fax'};var _0x181542=[];var _0xbaf699=[];var _0x51a570={};return db[_0x9eb4('0x25')]['describe']()[_0x9eb4('0x22')](function(_0x3746c0){if(!_0x3746c0){throw new db[(_0x9eb4('0x26'))][(_0x9eb4('0x27'))](_0x9eb4('0x28'));}_0x181542=_[_0x9eb4('0x29')](_[_0x9eb4('0x2a')](_0x3746c0),['createdAt','updatedAt']);_0xbaf699=_[_0x9eb4('0x29')](_[_0x9eb4('0x2a')](_0x3746c0),[_0x9eb4('0x2b'),_0x9eb4('0x2c'),_0x9eb4('0x2d'),_0x9eb4('0x2e')]);if(_0x386704['body']['id']){delete _0x386704['body']['id'];}if(_[_0x9eb4('0x2f')](_0x386704['body']['from'])){throw new db[(_0x9eb4('0x26'))][(_0x9eb4('0x27'))](_0x9eb4('0x30'));}if(_[_0x9eb4('0x2f')](_0x386704[_0x9eb4('0x24')][_0x9eb4('0x24')])||_0x386704['body'][_0x9eb4('0x24')]===''){throw new db[(_0x9eb4('0x26'))][(_0x9eb4('0x27'))](_0x9eb4('0x31'));}if(_[_0x9eb4('0x2f')](_0x386704[_0x9eb4('0x24')][_0x9eb4('0x32')])){throw new db[(_0x9eb4('0x26'))]['ValidationError'](_0x9eb4('0x33')+_0xbaf699);}if(!_[_0x9eb4('0x34')](_0xbaf699,_0x386704[_0x9eb4('0x24')][_0x9eb4('0x32')])){throw new db['Sequelize']['ValidationError'](_0x9eb4('0x35')+_0xbaf699);}_0x51a570[_0x386704['body'][_0x9eb4('0x32')]]=_0x386704['body'][_0x9eb4('0x36')];})[_0x9eb4('0x22')](function(){return db[_0x9eb4('0x1a')][_0x9eb4('0x37')]({'where':{'id':_0x386704[_0x9eb4('0x38')]['id']},'include':[{'model':db[_0x9eb4('0x39')],'as':_0x9eb4('0x3a'),'include':[{'model':db['CmContact'],'as':'Contacts','where':_0x51a570,'limit':0x1,'order':[[_0x9eb4('0x2c'),_0x9eb4('0x3b')]]}]},{'model':db['FaxApplication'],'as':_0x9eb4('0x3c')}]});})['then'](function(_0x1c1fc3){if(_0x1c1fc3&&_0x1c1fc3[_0x9eb4('0x3a')]){var _0x7c8c20=_0x1c1fc3[_0x9eb4('0x3d')]({'plain':!![]});_0x560dc7[_0x9eb4('0x38')]=_0x7c8c20;_0x560dc7[_0x9eb4('0x3e')]=_0x7c8c20[_0x9eb4('0x3c')];_0x560dc7[_0x9eb4('0x3f')]=_0x7c8c20[_0x9eb4('0x3a')];_0x560dc7['applications']=_[_0x9eb4('0x40')](_0x560dc7[_0x9eb4('0x3e')],[_0x9eb4('0x41')],[_0x9eb4('0x42')]);if(_0x560dc7['account']['Applications']){delete _0x560dc7[_0x9eb4('0x38')][_0x9eb4('0x3c')];}if(_0x560dc7[_0x9eb4('0x38')][_0x9eb4('0x3a')]&&_0x560dc7['account'][_0x9eb4('0x3a')][_0x9eb4('0x43')][_0x9eb4('0x44')]){return _0x560dc7[_0x9eb4('0x38')]['List'][_0x9eb4('0x43')][0x0];}var _0x40c476=_[_0x9eb4('0x45')](_0x386704[_0x9eb4('0x24')],{'firstName':_0x386704['body'][_0x9eb4('0x36')],'ListId':_0x7c8c20[_0x9eb4('0x2e')]});_0x40c476[_0x386704['body'][_0x9eb4('0x32')]]=_0x386704['body'][_0x9eb4('0x36')];return db[_0x9eb4('0x25')]['create'](_0x40c476,{'fields':_0x181542,'raw':!![]});}})[_0x9eb4('0x22')](function(_0x331a5b){_0x560dc7[_0x9eb4('0x46')]=_0x331a5b;if(_0x331a5b){var _0x2c34b6={'ContactId':_0x331a5b['id'],'FaxAccountId':_0x386704[_0x9eb4('0x38')]['id'],'fax':_0x331a5b[_0x9eb4('0x47')]};return db[_0x9eb4('0x48')]['find']({'where':{'ContactId':_0x331a5b['id'],'closed':![],'FaxAccountId':_0x386704[_0x9eb4('0x38')]['id']}})['then'](function(_0x5529d7){if(_0x5529d7){return[_0x5529d7,![]];}return db[_0x9eb4('0x48')][_0x9eb4('0x49')](_0x2c34b6)[_0x9eb4('0x22')](function(_0x2f3b16){return[_0x2f3b16,!![]];});});}else{throw new Error(_0x9eb4('0x4a'));}})['spread'](function(_0x80630,_0x464c19){var _0x35412a=_0x80630['get']({'plain':!![]});if(_0x464c19){if(_0x560dc7['account'][_0x9eb4('0x4b')]){_0x560dc7[_0x9eb4('0x3e')][_0x9eb4('0x4c')]({'id':0x0,'priority':_0x560dc7['applications'][_0x9eb4('0x44')]+0x1,'app':_0x9eb4('0x4d'),'appdata':_0x9eb4('0x4e'),'interval':_0x9eb4('0x4f')});}_0x35412a[_0x9eb4('0x50')]=!![];}else{_0x35412a[_0x9eb4('0x50')]=![];}_0x560dc7[_0x9eb4('0x51')]=_0x35412a;return db[_0x9eb4('0x52')]['create']({'body':_0x386704[_0x9eb4('0x24')]['body'],'FaxAccountId':_0x386704[_0x9eb4('0x38')]['id'],'FaxInteractionId':_0x80630['id'],'direction':'in','ContactId':_0x80630[_0x9eb4('0x53')],'AttachmentId':_0x386704['body'][_0x9eb4('0x54')]});})[_0x9eb4('0x22')](function(_0x3ebdc8){_0x560dc7['message']=_0x3ebdc8;if(_0x560dc7[_0x9eb4('0x51')][_0x9eb4('0x55')]){return db[_0x9eb4('0x56')][_0x9eb4('0x37')]({'attributes':['id',_0x9eb4('0x57')],'where':{'id':_0x560dc7[_0x9eb4('0x51')][_0x9eb4('0x55')]}})[_0x9eb4('0x22')](function(_0x536be5){if(_0x536be5){_0x560dc7[_0x9eb4('0x3e')][_0x9eb4('0x58')]({'id':0x0,'priority':0x0,'app':_0x9eb4('0x59'),'appdata':_0x536be5[_0x9eb4('0x57')]+','+(_0x560dc7[_0x9eb4('0x38')][_0x9eb4('0x5a')]||0xa),'interval':_0x9eb4('0x4f')});}return respondWithRpcPromise(_0x9eb4('0x5b'),_0x9eb4('0x5c'),_0x560dc7);});}return respondWithRpcPromise('Start',_0x9eb4('0x5c'),_0x560dc7);})[_0x9eb4('0x22')](function(_0x54bba1){_0x58a234(_0x54bba1);})[_0x9eb4('0x23')](function(_0x238f1b){_0x2b3101(_0x1bd885[_0x9eb4('0x15')](0x1f4,_0x238f1b[_0x9eb4('0x17')]));});});};