Built motion from commit e6806ed6.|2.6.0
[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 _0xc46a=['FaxAccount,\x20%s,\x20%s','request\x20sent','debug','FaxAccount,\x20%s,\x20%s,\x20%s','stringify','error','message','catch','FaxAccount','options','raw','where','attributes','limit','include','map','model','GetFaxAccount','body','fax','CmContact','describe','Sequelize','ValidationError','no\x20available\x20attributes','difference','keys','createdAt','updatedAt','CompanyId','ListId','isNil','from\x20is\x20mandatory','body\x20is\x20mandatory\x20and\x20not\x20empty','mapKey\x20is\x20mandatory,\x20please\x20use\x20one\x20of\x20these:\x20','includes','mapKey','mapKey\x20invalid,\x20please\x20use\x20one\x20of\x20these:\x20','from','CmList','List','Contacts','DESC','FaxApplication','Applications','get','account','applications','orderBy','priority','asc','create','contact','FaxInteraction','Contact\x20not\x20found','spread','close','*,*,*,*','created','FaxMessage','ContactId','interaction','UserId','find','name','unshift','Start','startRouting','lodash','util','moment','randomstring','ioredis','../../mysqldb','../../config/logger','rpc','../../config/environment','http','defaults','localhost','socket.io-emitter','./faxAccount.socket','register','request','then','info'];(function(_0x47c185,_0x1401e7){var _0x395550=function(_0x108178){while(--_0x108178){_0x47c185['push'](_0x47c185['shift']());}};_0x395550(++_0x1401e7);}(_0xc46a,0x1f2));var _0xac46=function(_0x57aa39,_0x5b7dd9){_0x57aa39=_0x57aa39-0x0;var _0x1d9f2e=_0xc46a[_0x57aa39];return _0x1d9f2e;};'use strict';var _=require(_0xac46('0x0'));var util=require(_0xac46('0x1'));var moment=require(_0xac46('0x2'));var BPromise=require('bluebird');var rs=require(_0xac46('0x3'));var fs=require('fs');var Redis=require(_0xac46('0x4'));var db=require(_0xac46('0x5'))['db'];var utils=require('../../config/utils');var logger=require(_0xac46('0x6'))(_0xac46('0x7'));var config=require(_0xac46('0x8'));var jayson=require('jayson/promise');var client=jayson['client'][_0xac46('0x9')]({'port':0x232c});config['redis']=_[_0xac46('0xa')](config['redis'],{'host':_0xac46('0xb'),'port':0x18eb});var socket=require(_0xac46('0xc'))(new Redis(config['redis']));require(_0xac46('0xd'))[_0xac46('0xe')](socket);function respondWithRpcPromise(_0x255921,_0x8c3e3e,_0xc7066c){return new BPromise(function(_0x5cfc7,_0x5dfbd0){return client[_0xac46('0xf')](_0x255921,_0xc7066c)[_0xac46('0x10')](function(_0x158b38){logger[_0xac46('0x11')](_0xac46('0x12'),_0x8c3e3e,_0xac46('0x13'));logger[_0xac46('0x14')](_0xac46('0x15'),_0x8c3e3e,_0xac46('0x13'),JSON[_0xac46('0x16')](_0x158b38));if(_0x158b38['error']){if(_0x158b38[_0xac46('0x17')]['code']===0x1f4){logger[_0xac46('0x17')]('FaxAccount,\x20%s,\x20%s',_0x8c3e3e,_0x158b38[_0xac46('0x17')][_0xac46('0x18')]);return _0x5dfbd0(_0x158b38[_0xac46('0x17')][_0xac46('0x18')]);}logger[_0xac46('0x17')](_0xac46('0x12'),_0x8c3e3e,_0x158b38[_0xac46('0x17')][_0xac46('0x18')]);return _0x5cfc7(_0x158b38['error'][_0xac46('0x18')]);}else{logger[_0xac46('0x11')]('FaxAccount,\x20%s,\x20%s',_0x8c3e3e,'request\x20sent');_0x5cfc7(_0x158b38['result']['message']);}})[_0xac46('0x19')](function(_0x958888){logger[_0xac46('0x17')](_0xac46('0x12'),_0x8c3e3e,_0x958888);_0x5dfbd0(_0x958888);});});}exports['GetFaxAccount']=function(_0x10ded1){var _0x5d869b=this;return new Promise(function(_0x2a47f9,_0x5512e0){return db[_0xac46('0x1a')]['findAll']({'raw':_0x10ded1[_0xac46('0x1b')]?_0x10ded1[_0xac46('0x1b')][_0xac46('0x1c')]===undefined?!![]:![]:!![],'where':_0x10ded1[_0xac46('0x1b')]?_0x10ded1[_0xac46('0x1b')][_0xac46('0x1d')]||null:null,'attributes':_0x10ded1[_0xac46('0x1b')]?_0x10ded1[_0xac46('0x1b')][_0xac46('0x1e')]||null:null,'limit':_0x10ded1[_0xac46('0x1b')]?_0x10ded1[_0xac46('0x1b')][_0xac46('0x1f')]||null:null,'include':_0x10ded1[_0xac46('0x1b')]?_0x10ded1[_0xac46('0x1b')][_0xac46('0x20')]?_[_0xac46('0x21')](_0x10ded1[_0xac46('0x1b')][_0xac46('0x20')],function(_0x5da2f5){return{'model':db[_0x5da2f5['model']],'as':_0x5da2f5['as'],'attributes':_0x5da2f5['attributes'],'include':_0x5da2f5[_0xac46('0x20')]?_[_0xac46('0x21')](_0x5da2f5[_0xac46('0x20')],function(_0x301f25){return{'model':db[_0x301f25[_0xac46('0x22')]],'as':_0x301f25['as'],'attributes':_0x301f25['attributes'],'include':_0x301f25[_0xac46('0x20')]?_[_0xac46('0x21')](_0x301f25['include'],function(_0x682374){return{'model':db[_0x682374['model']],'as':_0x682374['as'],'attributes':_0x682374[_0xac46('0x1e')]};}):[]};}):[]};}):[]:[]})['then'](function(_0x45878b){logger[_0xac46('0x11')]('GetFaxAccount',_0x10ded1);logger['debug'](_0xac46('0x23'),_0x10ded1,JSON[_0xac46('0x16')](_0x45878b));_0x2a47f9(_0x45878b);})[_0xac46('0x19')](function(_0x33cb9b){logger[_0xac46('0x17')](_0xac46('0x23'),_0x33cb9b[_0xac46('0x18')],_0x10ded1);_0x5512e0(_0x5d869b[_0xac46('0x17')](0x1f4,_0x33cb9b[_0xac46('0x18')]));});});};exports['NotifyFaxAccount']=function(_0x507094,_0x12632b,_0x40f490){var _0x16dacb=this;return new Promise(function(_0x11954d,_0x3c4670){var _0x24b7f8={'body':_0x507094[_0xac46('0x24')],'channel':_0xac46('0x25')};var _0x582b09=[];var _0xe36a22=[];var _0x108233={};return db[_0xac46('0x26')][_0xac46('0x27')]()[_0xac46('0x10')](function(_0x31e6a1){if(!_0x31e6a1){throw new db[(_0xac46('0x28'))][(_0xac46('0x29'))](_0xac46('0x2a'));}_0x582b09=_[_0xac46('0x2b')](_[_0xac46('0x2c')](_0x31e6a1),[_0xac46('0x2d'),'updatedAt']);_0xe36a22=_['difference'](_[_0xac46('0x2c')](_0x31e6a1),[_0xac46('0x2d'),_0xac46('0x2e'),_0xac46('0x2f'),_0xac46('0x30')]);if(_0x507094[_0xac46('0x24')]['id']){delete _0x507094[_0xac46('0x24')]['id'];}if(_[_0xac46('0x31')](_0x507094[_0xac46('0x24')]['from'])){throw new db[(_0xac46('0x28'))][(_0xac46('0x29'))](_0xac46('0x32'));}if(_[_0xac46('0x31')](_0x507094['body']['body'])||_0x507094[_0xac46('0x24')]['body']===''){throw new db[(_0xac46('0x28'))][(_0xac46('0x29'))](_0xac46('0x33'));}if(_[_0xac46('0x31')](_0x507094[_0xac46('0x24')]['mapKey'])){throw new db[(_0xac46('0x28'))][(_0xac46('0x29'))](_0xac46('0x34')+_0xe36a22);}if(!_[_0xac46('0x35')](_0xe36a22,_0x507094['body'][_0xac46('0x36')])){throw new db[(_0xac46('0x28'))][(_0xac46('0x29'))](_0xac46('0x37')+_0xe36a22);}_0x108233[_0x507094['body'][_0xac46('0x36')]]=_0x507094[_0xac46('0x24')][_0xac46('0x38')];})[_0xac46('0x10')](function(){return db[_0xac46('0x1a')]['find']({'where':{'id':_0x507094['account']['id']},'include':[{'model':db[_0xac46('0x39')],'as':_0xac46('0x3a'),'include':[{'model':db[_0xac46('0x26')],'as':_0xac46('0x3b'),'where':_0x108233,'limit':0x1,'order':[['updatedAt',_0xac46('0x3c')]]}]},{'model':db[_0xac46('0x3d')],'as':_0xac46('0x3e')}]});})['then'](function(_0x4863d8){if(_0x4863d8&&_0x4863d8[_0xac46('0x3a')]){var _0x2dbcf4=_0x4863d8[_0xac46('0x3f')]({'plain':!![]});_0x24b7f8[_0xac46('0x40')]=_0x2dbcf4;_0x24b7f8[_0xac46('0x41')]=_0x2dbcf4['Applications'];_0x24b7f8['list']=_0x2dbcf4[_0xac46('0x3a')];_0x24b7f8['applications']=_[_0xac46('0x42')](_0x24b7f8['applications'],[_0xac46('0x43')],[_0xac46('0x44')]);if(_0x24b7f8[_0xac46('0x40')][_0xac46('0x3e')]){delete _0x24b7f8[_0xac46('0x40')][_0xac46('0x3e')];}if(_0x24b7f8[_0xac46('0x40')][_0xac46('0x3a')]&&_0x24b7f8['account']['List'][_0xac46('0x3b')]['length']){return _0x24b7f8[_0xac46('0x40')][_0xac46('0x3a')][_0xac46('0x3b')][0x0];}var _0x1fceff=_[_0xac46('0xa')](_0x507094[_0xac46('0x24')],{'firstName':_0x507094[_0xac46('0x24')][_0xac46('0x38')],'ListId':_0x2dbcf4[_0xac46('0x30')]});_0x1fceff[_0x507094[_0xac46('0x24')]['mapKey']]=_0x507094[_0xac46('0x24')][_0xac46('0x38')];return db[_0xac46('0x26')][_0xac46('0x45')](_0x1fceff,{'fields':_0x582b09,'raw':!![]});}})[_0xac46('0x10')](function(_0x52ab8e){_0x24b7f8[_0xac46('0x46')]=_0x52ab8e;if(_0x52ab8e){var _0x56dc72={'ContactId':_0x52ab8e['id'],'FaxAccountId':_0x507094[_0xac46('0x40')]['id'],'fax':_0x52ab8e[_0xac46('0x25')]};return db['FaxInteraction']['find']({'where':{'ContactId':_0x52ab8e['id'],'closed':![],'FaxAccountId':_0x507094[_0xac46('0x40')]['id']}})['then'](function(_0x20b01b){if(_0x20b01b){return[_0x20b01b,![]];}return db[_0xac46('0x47')]['create'](_0x56dc72)[_0xac46('0x10')](function(_0x47a22b){return[_0x47a22b,!![]];});});}else{throw new Error(_0xac46('0x48'));}})[_0xac46('0x49')](function(_0x3a60a4,_0x2969de){var _0x173fa0=_0x3a60a4[_0xac46('0x3f')]({'plain':!![]});if(_0x2969de){if(_0x24b7f8[_0xac46('0x40')]['autoclose']){_0x24b7f8['applications']['push']({'id':0x0,'priority':_0x24b7f8[_0xac46('0x41')]['length']+0x1,'app':_0xac46('0x4a'),'appdata':'unmanaged','interval':_0xac46('0x4b')});}_0x173fa0[_0xac46('0x4c')]=!![];}else{_0x173fa0[_0xac46('0x4c')]=![];}_0x24b7f8['interaction']=_0x173fa0;return db[_0xac46('0x4d')][_0xac46('0x45')]({'body':_0x507094[_0xac46('0x24')][_0xac46('0x24')],'FaxAccountId':_0x507094['account']['id'],'FaxInteractionId':_0x3a60a4['id'],'direction':'in','ContactId':_0x3a60a4[_0xac46('0x4e')],'AttachmentId':_0x507094[_0xac46('0x24')]['AttachmentId']});})[_0xac46('0x10')](function(_0x429374){_0x24b7f8[_0xac46('0x18')]=_0x429374;if(_0x24b7f8[_0xac46('0x4f')][_0xac46('0x50')]){return db['User'][_0xac46('0x51')]({'attributes':['id',_0xac46('0x52')],'where':{'id':_0x24b7f8[_0xac46('0x4f')][_0xac46('0x50')]}})[_0xac46('0x10')](function(_0x79adf7){if(_0x79adf7){_0x24b7f8[_0xac46('0x41')][_0xac46('0x53')]({'id':0x0,'priority':0x0,'app':'agent','appdata':_0x79adf7[_0xac46('0x52')]+','+(_0x24b7f8[_0xac46('0x40')]['waitForTheAssignedAgent']||0xa),'interval':_0xac46('0x4b')});}return respondWithRpcPromise(_0xac46('0x54'),_0xac46('0x55'),_0x24b7f8);});}return respondWithRpcPromise(_0xac46('0x54'),'startRouting',_0x24b7f8);})[_0xac46('0x10')](function(_0x598048){_0x11954d(_0x598048);})['catch'](function(_0x16094c){_0x3c4670(_0x16dacb[_0xac46('0x17')](0x1f4,_0x16094c[_0xac46('0x18')]));});});};