Built motion from commit (unavailable).|2.5.14
[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 _0x7899=['get','applications','list','orderBy','asc','length','create','contact','FaxInteraction','Contact\x20not\x20found','spread','autoclose','close','unmanaged','created','FaxMessage','ContactId','UserId','interaction','unshift','agent','name','*,*,*,*','Start','startRouting','lodash','util','moment','bluebird','randomstring','../../mysqldb','../../config/utils','../../config/logger','rpc','../../config/environment','client','http','redis','defaults','localhost','socket.io-emitter','register','request','then','request\x20sent','debug','FaxAccount,\x20%s,\x20%s,\x20%s','stringify','error','code','FaxAccount,\x20%s,\x20%s','message','info','result','catch','FaxAccount','findAll','raw','options','where','attributes','limit','include','map','model','GetFaxAccount','NotifyFaxAccount','body','fax','describe','Sequelize','ValidationError','difference','keys','createdAt','updatedAt','ListId','isNil','from','from\x20is\x20mandatory','body\x20is\x20mandatory\x20and\x20not\x20empty','mapKey','includes','mapKey\x20invalid,\x20please\x20use\x20one\x20of\x20these:\x20','find','account','CmList','CmContact','Contacts','DESC','Applications','List'];(function(_0x406115,_0x19f7a1){var _0xbbabdb=function(_0x28554d){while(--_0x28554d){_0x406115['push'](_0x406115['shift']());}};_0xbbabdb(++_0x19f7a1);}(_0x7899,0xd1));var _0x9789=function(_0x193ddf,_0x6f30bb){_0x193ddf=_0x193ddf-0x0;var _0x5bc6df=_0x7899[_0x193ddf];return _0x5bc6df;};'use strict';var _=require(_0x9789('0x0'));var util=require(_0x9789('0x1'));var moment=require(_0x9789('0x2'));var BPromise=require(_0x9789('0x3'));var rs=require(_0x9789('0x4'));var fs=require('fs');var Redis=require('ioredis');var db=require(_0x9789('0x5'))['db'];var utils=require(_0x9789('0x6'));var logger=require(_0x9789('0x7'))(_0x9789('0x8'));var config=require(_0x9789('0x9'));var jayson=require('jayson/promise');var client=jayson[_0x9789('0xa')][_0x9789('0xb')]({'port':0x232c});config[_0x9789('0xc')]=_[_0x9789('0xd')](config['redis'],{'host':_0x9789('0xe'),'port':0x18eb});var socket=require(_0x9789('0xf'))(new Redis(config[_0x9789('0xc')]));require('./faxAccount.socket')[_0x9789('0x10')](socket);function respondWithRpcPromise(_0x109a8e,_0x13c29d,_0x17986b){return new BPromise(function(_0x3e0894,_0x4c03c3){return client[_0x9789('0x11')](_0x109a8e,_0x17986b)[_0x9789('0x12')](function(_0x55949a){logger['info']('FaxAccount,\x20%s,\x20%s',_0x13c29d,_0x9789('0x13'));logger[_0x9789('0x14')](_0x9789('0x15'),_0x13c29d,'request\x20sent',JSON[_0x9789('0x16')](_0x55949a));if(_0x55949a['error']){if(_0x55949a[_0x9789('0x17')][_0x9789('0x18')]===0x1f4){logger[_0x9789('0x17')](_0x9789('0x19'),_0x13c29d,_0x55949a[_0x9789('0x17')][_0x9789('0x1a')]);return _0x4c03c3(_0x55949a[_0x9789('0x17')][_0x9789('0x1a')]);}logger[_0x9789('0x17')](_0x9789('0x19'),_0x13c29d,_0x55949a[_0x9789('0x17')][_0x9789('0x1a')]);return _0x3e0894(_0x55949a[_0x9789('0x17')][_0x9789('0x1a')]);}else{logger[_0x9789('0x1b')](_0x9789('0x19'),_0x13c29d,_0x9789('0x13'));_0x3e0894(_0x55949a[_0x9789('0x1c')][_0x9789('0x1a')]);}})[_0x9789('0x1d')](function(_0x507a5a){logger[_0x9789('0x17')](_0x9789('0x19'),_0x13c29d,_0x507a5a);_0x4c03c3(_0x507a5a);});});}exports['GetFaxAccount']=function(_0x2278c5){var _0x42f0ae=this;return new Promise(function(_0x1814d5,_0x10553d){return db[_0x9789('0x1e')][_0x9789('0x1f')]({'raw':_0x2278c5['options']?_0x2278c5['options'][_0x9789('0x20')]===undefined?!![]:![]:!![],'where':_0x2278c5[_0x9789('0x21')]?_0x2278c5[_0x9789('0x21')][_0x9789('0x22')]||null:null,'attributes':_0x2278c5[_0x9789('0x21')]?_0x2278c5[_0x9789('0x21')][_0x9789('0x23')]||null:null,'limit':_0x2278c5['options']?_0x2278c5['options'][_0x9789('0x24')]||null:null,'include':_0x2278c5[_0x9789('0x21')]?_0x2278c5[_0x9789('0x21')][_0x9789('0x25')]?_[_0x9789('0x26')](_0x2278c5[_0x9789('0x21')][_0x9789('0x25')],function(_0x1fd205){return{'model':db[_0x1fd205[_0x9789('0x27')]],'as':_0x1fd205['as'],'attributes':_0x1fd205['attributes'],'include':_0x1fd205[_0x9789('0x25')]?_['map'](_0x1fd205[_0x9789('0x25')],function(_0x4a7f4b){return{'model':db[_0x4a7f4b[_0x9789('0x27')]],'as':_0x4a7f4b['as'],'attributes':_0x4a7f4b['attributes'],'include':_0x4a7f4b[_0x9789('0x25')]?_[_0x9789('0x26')](_0x4a7f4b[_0x9789('0x25')],function(_0x3ca5c4){return{'model':db[_0x3ca5c4[_0x9789('0x27')]],'as':_0x3ca5c4['as'],'attributes':_0x3ca5c4['attributes']};}):[]};}):[]};}):[]:[]})['then'](function(_0x33f89f){logger[_0x9789('0x1b')](_0x9789('0x28'),_0x2278c5);logger[_0x9789('0x14')](_0x9789('0x28'),_0x2278c5,JSON['stringify'](_0x33f89f));_0x1814d5(_0x33f89f);})[_0x9789('0x1d')](function(_0x18e9dc){logger[_0x9789('0x17')](_0x9789('0x28'),_0x18e9dc[_0x9789('0x1a')],_0x2278c5);_0x10553d(_0x42f0ae[_0x9789('0x17')](0x1f4,_0x18e9dc[_0x9789('0x1a')]));});});};exports[_0x9789('0x29')]=function(_0x3ecccf,_0x5acb4a,_0x39cb81){var _0x47732f=this;return new Promise(function(_0x59eb2e,_0x9c0d65){var _0x5487cc={'body':_0x3ecccf[_0x9789('0x2a')],'channel':_0x9789('0x2b')};var _0x404496=[];var _0x3cc444=[];var _0x4ff93e={};return db['CmContact'][_0x9789('0x2c')]()[_0x9789('0x12')](function(_0x272c66){if(!_0x272c66){throw new db[(_0x9789('0x2d'))][(_0x9789('0x2e'))]('no\x20available\x20attributes');}_0x404496=_[_0x9789('0x2f')](_[_0x9789('0x30')](_0x272c66),[_0x9789('0x31'),_0x9789('0x32')]);_0x3cc444=_['difference'](_[_0x9789('0x30')](_0x272c66),[_0x9789('0x31'),_0x9789('0x32'),'CompanyId',_0x9789('0x33')]);if(_0x3ecccf['body']['id']){delete _0x3ecccf[_0x9789('0x2a')]['id'];}if(_[_0x9789('0x34')](_0x3ecccf[_0x9789('0x2a')][_0x9789('0x35')])){throw new db[(_0x9789('0x2d'))]['ValidationError'](_0x9789('0x36'));}if(_['isNil'](_0x3ecccf[_0x9789('0x2a')][_0x9789('0x2a')])||_0x3ecccf[_0x9789('0x2a')][_0x9789('0x2a')]===''){throw new db['Sequelize'][(_0x9789('0x2e'))](_0x9789('0x37'));}if(_['isNil'](_0x3ecccf[_0x9789('0x2a')][_0x9789('0x38')])){throw new db[(_0x9789('0x2d'))][(_0x9789('0x2e'))]('mapKey\x20is\x20mandatory,\x20please\x20use\x20one\x20of\x20these:\x20'+_0x3cc444);}if(!_[_0x9789('0x39')](_0x3cc444,_0x3ecccf['body']['mapKey'])){throw new db[(_0x9789('0x2d'))][(_0x9789('0x2e'))](_0x9789('0x3a')+_0x3cc444);}_0x4ff93e[_0x3ecccf['body'][_0x9789('0x38')]]=_0x3ecccf[_0x9789('0x2a')][_0x9789('0x35')];})['then'](function(){return db[_0x9789('0x1e')][_0x9789('0x3b')]({'where':{'id':_0x3ecccf[_0x9789('0x3c')]['id']},'include':[{'model':db[_0x9789('0x3d')],'as':'List','include':[{'model':db[_0x9789('0x3e')],'as':_0x9789('0x3f'),'where':_0x4ff93e,'limit':0x1,'order':[['updatedAt',_0x9789('0x40')]]}]},{'model':db['FaxApplication'],'as':_0x9789('0x41')}]});})['then'](function(_0x46822b){if(_0x46822b&&_0x46822b[_0x9789('0x42')]){var _0x2707f8=_0x46822b[_0x9789('0x43')]({'plain':!![]});_0x5487cc[_0x9789('0x3c')]=_0x2707f8;_0x5487cc[_0x9789('0x44')]=_0x2707f8['Applications'];_0x5487cc[_0x9789('0x45')]=_0x2707f8['List'];_0x5487cc[_0x9789('0x44')]=_[_0x9789('0x46')](_0x5487cc[_0x9789('0x44')],['priority'],[_0x9789('0x47')]);if(_0x5487cc[_0x9789('0x3c')][_0x9789('0x41')]){delete _0x5487cc['account'][_0x9789('0x41')];}if(_0x5487cc['account'][_0x9789('0x42')]&&_0x5487cc['account']['List'][_0x9789('0x3f')][_0x9789('0x48')]){return _0x5487cc[_0x9789('0x3c')][_0x9789('0x42')]['Contacts'][0x0];}var _0x4ac7e5=_[_0x9789('0xd')](_0x3ecccf[_0x9789('0x2a')],{'firstName':_0x3ecccf[_0x9789('0x2a')]['from'],'ListId':_0x2707f8[_0x9789('0x33')]});_0x4ac7e5[_0x3ecccf[_0x9789('0x2a')][_0x9789('0x38')]]=_0x3ecccf[_0x9789('0x2a')][_0x9789('0x35')];return db[_0x9789('0x3e')][_0x9789('0x49')](_0x4ac7e5,{'fields':_0x404496,'raw':!![]});}})[_0x9789('0x12')](function(_0x1e2ff0){_0x5487cc[_0x9789('0x4a')]=_0x1e2ff0;if(_0x1e2ff0){var _0x31d535={'ContactId':_0x1e2ff0['id'],'FaxAccountId':_0x3ecccf[_0x9789('0x3c')]['id'],'fax':_0x1e2ff0['fax']};return db['FaxInteraction'][_0x9789('0x3b')]({'where':{'ContactId':_0x1e2ff0['id'],'closed':![],'FaxAccountId':_0x3ecccf['account']['id']}})[_0x9789('0x12')](function(_0x37ce0a){if(_0x37ce0a){return[_0x37ce0a,![]];}return db[_0x9789('0x4b')][_0x9789('0x49')](_0x31d535)[_0x9789('0x12')](function(_0x37b798){return[_0x37b798,!![]];});});}else{throw new Error(_0x9789('0x4c'));}})[_0x9789('0x4d')](function(_0x58b228,_0x4bfe9d){var _0x2eedd7=_0x58b228[_0x9789('0x43')]({'plain':!![]});if(_0x4bfe9d){if(_0x5487cc[_0x9789('0x3c')][_0x9789('0x4e')]){_0x5487cc[_0x9789('0x44')]['push']({'id':0x0,'priority':_0x5487cc[_0x9789('0x44')][_0x9789('0x48')]+0x1,'app':_0x9789('0x4f'),'appdata':_0x9789('0x50'),'interval':'*,*,*,*'});}_0x2eedd7['created']=!![];}else{_0x2eedd7[_0x9789('0x51')]=![];}_0x5487cc['interaction']=_0x2eedd7;return db[_0x9789('0x52')][_0x9789('0x49')]({'body':_0x3ecccf[_0x9789('0x2a')][_0x9789('0x2a')],'FaxAccountId':_0x3ecccf[_0x9789('0x3c')]['id'],'FaxInteractionId':_0x58b228['id'],'direction':'in','ContactId':_0x58b228[_0x9789('0x53')],'AttachmentId':_0x3ecccf[_0x9789('0x2a')]['AttachmentId']});})[_0x9789('0x12')](function(_0x4f6da9){_0x5487cc['message']=_0x4f6da9;if(_0x5487cc['interaction'][_0x9789('0x54')]){return db['User']['find']({'attributes':['id','name'],'where':{'id':_0x5487cc[_0x9789('0x55')]['UserId']}})['then'](function(_0x125f58){if(_0x125f58){_0x5487cc[_0x9789('0x44')][_0x9789('0x56')]({'id':0x0,'priority':0x0,'app':_0x9789('0x57'),'appdata':_0x125f58[_0x9789('0x58')]+','+(_0x5487cc[_0x9789('0x3c')]['waitForTheAssignedAgent']||0xa),'interval':_0x9789('0x59')});}return respondWithRpcPromise(_0x9789('0x5a'),_0x9789('0x5b'),_0x5487cc);});}return respondWithRpcPromise('Start','startRouting',_0x5487cc);})['then'](function(_0x4daa21){_0x59eb2e(_0x4daa21);})[_0x9789('0x1d')](function(_0x3eb239){_0x9c0d65(_0x47732f[_0x9789('0x17')](0x1f4,_0x3eb239[_0x9789('0x1a')]));});});};