Built motion from commit da617fac.|2.6.6
[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 _0x5166=['includes','mapKey\x20invalid,\x20please\x20use\x20one\x20of\x20these:\x20','from','FaxAccount','account','CmList','List','CmContact','DESC','FaxApplication','Applications','get','applications','list','orderBy','priority','asc','Contacts','length','create','find','Contact\x20not\x20found','autoclose','close','unmanaged','*,*,*,*','created','interaction','FaxMessage','ContactId','AttachmentId','User','name','UserId','unshift','agent','Start','startRouting','lodash','util','moment','bluebird','randomstring','ioredis','../../config/utils','../../config/logger','rpc','../../config/environment','client','redis','defaults','socket.io-emitter','./faxAccount.socket','register','request','then','info','FaxAccount,\x20%s,\x20%s','FaxAccount,\x20%s,\x20%s,\x20%s','request\x20sent','stringify','error','code','message','result','catch','findAll','options','raw','where','include','map','model','attributes','GetFaxAccount','debug','NotifyFaxAccount','body','fax','describe','ValidationError','no\x20available\x20attributes','keys','createdAt','updatedAt','CompanyId','ListId','isNil','from\x20is\x20mandatory','body\x20is\x20mandatory\x20and\x20not\x20empty','mapKey','Sequelize'];(function(_0x1e73fc,_0x533750){var _0xeceac4=function(_0x2c6dda){while(--_0x2c6dda){_0x1e73fc['push'](_0x1e73fc['shift']());}};_0xeceac4(++_0x533750);}(_0x5166,0x196));var _0x6516=function(_0x4c4fb1,_0x3a5db2){_0x4c4fb1=_0x4c4fb1-0x0;var _0x5105ff=_0x5166[_0x4c4fb1];return _0x5105ff;};'use strict';var _=require(_0x6516('0x0'));var util=require(_0x6516('0x1'));var moment=require(_0x6516('0x2'));var BPromise=require(_0x6516('0x3'));var rs=require(_0x6516('0x4'));var fs=require('fs');var Redis=require(_0x6516('0x5'));var db=require('../../mysqldb')['db'];var utils=require(_0x6516('0x6'));var logger=require(_0x6516('0x7'))(_0x6516('0x8'));var config=require(_0x6516('0x9'));var jayson=require('jayson/promise');var client=jayson[_0x6516('0xa')]['http']({'port':0x232c});config[_0x6516('0xb')]=_[_0x6516('0xc')](config[_0x6516('0xb')],{'host':'localhost','port':0x18eb});var socket=require(_0x6516('0xd'))(new Redis(config[_0x6516('0xb')]));require(_0x6516('0xe'))[_0x6516('0xf')](socket);function respondWithRpcPromise(_0x591a64,_0x362cea,_0x6b4de2){return new BPromise(function(_0x301381,_0x39bed6){return client[_0x6516('0x10')](_0x591a64,_0x6b4de2)[_0x6516('0x11')](function(_0x50d375){logger[_0x6516('0x12')](_0x6516('0x13'),_0x362cea,'request\x20sent');logger['debug'](_0x6516('0x14'),_0x362cea,_0x6516('0x15'),JSON[_0x6516('0x16')](_0x50d375));if(_0x50d375[_0x6516('0x17')]){if(_0x50d375['error'][_0x6516('0x18')]===0x1f4){logger[_0x6516('0x17')](_0x6516('0x13'),_0x362cea,_0x50d375['error'][_0x6516('0x19')]);return _0x39bed6(_0x50d375[_0x6516('0x17')][_0x6516('0x19')]);}logger[_0x6516('0x17')](_0x6516('0x13'),_0x362cea,_0x50d375[_0x6516('0x17')]['message']);return _0x301381(_0x50d375['error'][_0x6516('0x19')]);}else{logger[_0x6516('0x12')]('FaxAccount,\x20%s,\x20%s',_0x362cea,_0x6516('0x15'));_0x301381(_0x50d375[_0x6516('0x1a')][_0x6516('0x19')]);}})[_0x6516('0x1b')](function(_0x4a523a){logger[_0x6516('0x17')](_0x6516('0x13'),_0x362cea,_0x4a523a);_0x39bed6(_0x4a523a);});});}exports['GetFaxAccount']=function(_0x1beca2){var _0x506b0b=this;return new Promise(function(_0x14bc2b,_0x37733a){return db['FaxAccount'][_0x6516('0x1c')]({'raw':_0x1beca2[_0x6516('0x1d')]?_0x1beca2[_0x6516('0x1d')][_0x6516('0x1e')]===undefined?!![]:![]:!![],'where':_0x1beca2['options']?_0x1beca2[_0x6516('0x1d')][_0x6516('0x1f')]||null:null,'attributes':_0x1beca2['options']?_0x1beca2[_0x6516('0x1d')]['attributes']||null:null,'limit':_0x1beca2[_0x6516('0x1d')]?_0x1beca2[_0x6516('0x1d')]['limit']||null:null,'include':_0x1beca2[_0x6516('0x1d')]?_0x1beca2['options'][_0x6516('0x20')]?_[_0x6516('0x21')](_0x1beca2[_0x6516('0x1d')]['include'],function(_0x223147){return{'model':db[_0x223147[_0x6516('0x22')]],'as':_0x223147['as'],'attributes':_0x223147[_0x6516('0x23')],'include':_0x223147['include']?_['map'](_0x223147['include'],function(_0x4bcda2){return{'model':db[_0x4bcda2[_0x6516('0x22')]],'as':_0x4bcda2['as'],'attributes':_0x4bcda2[_0x6516('0x23')],'include':_0x4bcda2['include']?_[_0x6516('0x21')](_0x4bcda2[_0x6516('0x20')],function(_0x21db4b){return{'model':db[_0x21db4b['model']],'as':_0x21db4b['as'],'attributes':_0x21db4b[_0x6516('0x23')]};}):[]};}):[]};}):[]:[]})['then'](function(_0x6804c0){logger[_0x6516('0x12')](_0x6516('0x24'),_0x1beca2);logger[_0x6516('0x25')]('GetFaxAccount',_0x1beca2,JSON[_0x6516('0x16')](_0x6804c0));_0x14bc2b(_0x6804c0);})[_0x6516('0x1b')](function(_0x1fee38){logger['error'](_0x6516('0x24'),_0x1fee38['message'],_0x1beca2);_0x37733a(_0x506b0b[_0x6516('0x17')](0x1f4,_0x1fee38[_0x6516('0x19')]));});});};exports[_0x6516('0x26')]=function(_0x10f337,_0x341c35,_0x4e229e){var _0x1e32cc=this;return new Promise(function(_0x5cd452,_0x5ec3c6){var _0x9c1fad={'body':_0x10f337[_0x6516('0x27')],'channel':_0x6516('0x28')};var _0x6c6c52=[];var _0x2363d=[];var _0x2b98d6={};return db['CmContact'][_0x6516('0x29')]()[_0x6516('0x11')](function(_0x5d60be){if(!_0x5d60be){throw new db['Sequelize'][(_0x6516('0x2a'))](_0x6516('0x2b'));}_0x6c6c52=_['difference'](_[_0x6516('0x2c')](_0x5d60be),[_0x6516('0x2d'),'updatedAt']);_0x2363d=_['difference'](_[_0x6516('0x2c')](_0x5d60be),[_0x6516('0x2d'),_0x6516('0x2e'),_0x6516('0x2f'),_0x6516('0x30')]);if(_0x10f337[_0x6516('0x27')]['id']){delete _0x10f337['body']['id'];}if(_[_0x6516('0x31')](_0x10f337[_0x6516('0x27')]['from'])){throw new db['Sequelize'][(_0x6516('0x2a'))](_0x6516('0x32'));}if(_[_0x6516('0x31')](_0x10f337[_0x6516('0x27')][_0x6516('0x27')])||_0x10f337[_0x6516('0x27')][_0x6516('0x27')]===''){throw new db['Sequelize'][(_0x6516('0x2a'))](_0x6516('0x33'));}if(_['isNil'](_0x10f337[_0x6516('0x27')][_0x6516('0x34')])){throw new db[(_0x6516('0x35'))][(_0x6516('0x2a'))]('mapKey\x20is\x20mandatory,\x20please\x20use\x20one\x20of\x20these:\x20'+_0x2363d);}if(!_[_0x6516('0x36')](_0x2363d,_0x10f337['body'][_0x6516('0x34')])){throw new db[(_0x6516('0x35'))][(_0x6516('0x2a'))](_0x6516('0x37')+_0x2363d);}_0x2b98d6[_0x10f337['body'][_0x6516('0x34')]]=_0x10f337[_0x6516('0x27')][_0x6516('0x38')];})[_0x6516('0x11')](function(){return db[_0x6516('0x39')]['find']({'where':{'id':_0x10f337[_0x6516('0x3a')]['id']},'include':[{'model':db[_0x6516('0x3b')],'as':_0x6516('0x3c'),'include':[{'model':db[_0x6516('0x3d')],'as':'Contacts','where':_0x2b98d6,'limit':0x1,'order':[[_0x6516('0x2e'),_0x6516('0x3e')]]}]},{'model':db[_0x6516('0x3f')],'as':_0x6516('0x40')}]});})['then'](function(_0x29ed69){if(_0x29ed69&&_0x29ed69['List']){var _0x17baca=_0x29ed69[_0x6516('0x41')]({'plain':!![]});_0x9c1fad['account']=_0x17baca;_0x9c1fad[_0x6516('0x42')]=_0x17baca[_0x6516('0x40')];_0x9c1fad[_0x6516('0x43')]=_0x17baca[_0x6516('0x3c')];_0x9c1fad[_0x6516('0x42')]=_[_0x6516('0x44')](_0x9c1fad['applications'],[_0x6516('0x45')],[_0x6516('0x46')]);if(_0x9c1fad[_0x6516('0x3a')][_0x6516('0x40')]){delete _0x9c1fad[_0x6516('0x3a')][_0x6516('0x40')];}if(_0x9c1fad[_0x6516('0x3a')][_0x6516('0x3c')]&&_0x9c1fad[_0x6516('0x3a')][_0x6516('0x3c')][_0x6516('0x47')][_0x6516('0x48')]){return _0x9c1fad[_0x6516('0x3a')]['List'][_0x6516('0x47')][0x0];}var _0x259c0b=_[_0x6516('0xc')](_0x10f337[_0x6516('0x27')],{'firstName':_0x10f337[_0x6516('0x27')]['from'],'ListId':_0x17baca['ListId']});_0x259c0b[_0x10f337['body'][_0x6516('0x34')]]=_0x10f337[_0x6516('0x27')][_0x6516('0x38')];return db['CmContact'][_0x6516('0x49')](_0x259c0b,{'fields':_0x6c6c52,'raw':!![]});}})[_0x6516('0x11')](function(_0x532409){_0x9c1fad['contact']=_0x532409;if(_0x532409){var _0xaa1f43={'ContactId':_0x532409['id'],'FaxAccountId':_0x10f337[_0x6516('0x3a')]['id'],'fax':_0x532409['fax']};return db['FaxInteraction'][_0x6516('0x4a')]({'where':{'ContactId':_0x532409['id'],'closed':![],'FaxAccountId':_0x10f337[_0x6516('0x3a')]['id']}})[_0x6516('0x11')](function(_0x5ee6fa){if(_0x5ee6fa){return[_0x5ee6fa,![]];}return db['FaxInteraction'][_0x6516('0x49')](_0xaa1f43)[_0x6516('0x11')](function(_0x57a506){return[_0x57a506,!![]];});});}else{throw new Error(_0x6516('0x4b'));}})['spread'](function(_0xbf8b13,_0x1dcc22){var _0x1b615a=_0xbf8b13[_0x6516('0x41')]({'plain':!![]});if(_0x1dcc22){if(_0x9c1fad['account'][_0x6516('0x4c')]){_0x9c1fad['applications']['push']({'id':0x0,'priority':_0x9c1fad[_0x6516('0x42')][_0x6516('0x48')]+0x1,'app':_0x6516('0x4d'),'appdata':_0x6516('0x4e'),'interval':_0x6516('0x4f')});}_0x1b615a[_0x6516('0x50')]=!![];}else{_0x1b615a[_0x6516('0x50')]=![];}_0x9c1fad[_0x6516('0x51')]=_0x1b615a;return db[_0x6516('0x52')][_0x6516('0x49')]({'body':_0x10f337[_0x6516('0x27')][_0x6516('0x27')],'FaxAccountId':_0x10f337['account']['id'],'FaxInteractionId':_0xbf8b13['id'],'direction':'in','ContactId':_0xbf8b13[_0x6516('0x53')],'AttachmentId':_0x10f337[_0x6516('0x27')][_0x6516('0x54')]});})[_0x6516('0x11')](function(_0x2e8d01){_0x9c1fad[_0x6516('0x19')]=_0x2e8d01;if(_0x9c1fad[_0x6516('0x51')]['UserId']){return db[_0x6516('0x55')]['find']({'attributes':['id',_0x6516('0x56')],'where':{'id':_0x9c1fad[_0x6516('0x51')][_0x6516('0x57')]}})[_0x6516('0x11')](function(_0x1d9a58){if(_0x1d9a58){_0x9c1fad['applications'][_0x6516('0x58')]({'id':0x0,'priority':0x0,'app':_0x6516('0x59'),'appdata':_0x1d9a58[_0x6516('0x56')]+','+(_0x9c1fad['account']['waitForTheAssignedAgent']||0xa),'interval':_0x6516('0x4f')});}return respondWithRpcPromise(_0x6516('0x5a'),'startRouting',_0x9c1fad);});}return respondWithRpcPromise('Start',_0x6516('0x5b'),_0x9c1fad);})[_0x6516('0x11')](function(_0x11f798){_0x5cd452(_0x11f798);})['catch'](function(_0x357305){_0x5ec3c6(_0x1e32cc[_0x6516('0x17')](0x1f4,_0x357305[_0x6516('0x19')]));});});};