5ece0caf9d6522ca477096f77b6d303cbf9402d6
[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 _0x86d8=['asc','create','contact','fax','FaxInteraction','find','Contact\x20not\x20found','spread','get','push','close','created','interaction','FaxMessage','ContactId','UserId','User','unshift','name','waitForTheAssignedAgent','*,*,*,*','startRouting','Start','lodash','util','moment','bluebird','randomstring','ioredis','../../mysqldb','rpc','../../config/environment','jayson/promise','http','redis','defaults','socket.io-emitter','./faxAccount.socket','register','request','then','info','request\x20sent','debug','FaxAccount,\x20%s,\x20%s,\x20%s','error','code','FaxAccount,\x20%s,\x20%s','message','catch','GetFaxAccount','FaxAccount','options','raw','limit','map','include','model','attributes','stringify','body','describe','Sequelize','no\x20available\x20attributes','keys','createdAt','difference','updatedAt','CompanyId','ListId','from','isNil','body\x20is\x20mandatory\x20and\x20not\x20empty','mapKey','ValidationError','mapKey\x20is\x20mandatory,\x20please\x20use\x20one\x20of\x20these:\x20','includes','mapKey\x20invalid,\x20please\x20use\x20one\x20of\x20these:\x20','account','CmList','List','CmContact','Contacts','FaxApplication','Applications','applications','list','orderBy','priority'];(function(_0x25561,_0x561c77){var _0x59a6c0=function(_0x614592){while(--_0x614592){_0x25561['push'](_0x25561['shift']());}};_0x59a6c0(++_0x561c77);}(_0x86d8,0xc9));var _0x886d=function(_0x599b00,_0x3ff97f){_0x599b00=_0x599b00-0x0;var _0x24d5e2=_0x86d8[_0x599b00];return _0x24d5e2;};'use strict';var _=require(_0x886d('0x0'));var util=require(_0x886d('0x1'));var moment=require(_0x886d('0x2'));var BPromise=require(_0x886d('0x3'));var rs=require(_0x886d('0x4'));var fs=require('fs');var Redis=require(_0x886d('0x5'));var db=require(_0x886d('0x6'))['db'];var utils=require('../../config/utils');var logger=require('../../config/logger')(_0x886d('0x7'));var config=require(_0x886d('0x8'));var jayson=require(_0x886d('0x9'));var client=jayson['client'][_0x886d('0xa')]({'port':0x232c});config[_0x886d('0xb')]=_[_0x886d('0xc')](config[_0x886d('0xb')],{'host':'localhost','port':0x18eb});var socket=require(_0x886d('0xd'))(new Redis(config[_0x886d('0xb')]));require(_0x886d('0xe'))[_0x886d('0xf')](socket);function respondWithRpcPromise(_0x3fd819,_0x4cec2e,_0x15427a){return new BPromise(function(_0x2c56eb,_0x5e89b1){return client[_0x886d('0x10')](_0x3fd819,_0x15427a)[_0x886d('0x11')](function(_0x4858c9){logger[_0x886d('0x12')]('FaxAccount,\x20%s,\x20%s',_0x4cec2e,_0x886d('0x13'));logger[_0x886d('0x14')](_0x886d('0x15'),_0x4cec2e,_0x886d('0x13'),JSON['stringify'](_0x4858c9));if(_0x4858c9['error']){if(_0x4858c9[_0x886d('0x16')][_0x886d('0x17')]===0x1f4){logger[_0x886d('0x16')](_0x886d('0x18'),_0x4cec2e,_0x4858c9[_0x886d('0x16')][_0x886d('0x19')]);return _0x5e89b1(_0x4858c9['error'][_0x886d('0x19')]);}logger['error']('FaxAccount,\x20%s,\x20%s',_0x4cec2e,_0x4858c9[_0x886d('0x16')]['message']);return _0x2c56eb(_0x4858c9[_0x886d('0x16')][_0x886d('0x19')]);}else{logger[_0x886d('0x12')](_0x886d('0x18'),_0x4cec2e,'request\x20sent');_0x2c56eb(_0x4858c9['result'][_0x886d('0x19')]);}})[_0x886d('0x1a')](function(_0x370031){logger[_0x886d('0x16')]('FaxAccount,\x20%s,\x20%s',_0x4cec2e,_0x370031);_0x5e89b1(_0x370031);});});}exports[_0x886d('0x1b')]=function(_0x443d92){var _0x5b6437=this;return new Promise(function(_0x16688c,_0x439583){return db[_0x886d('0x1c')]['findAll']({'raw':_0x443d92[_0x886d('0x1d')]?_0x443d92[_0x886d('0x1d')][_0x886d('0x1e')]===undefined?!![]:![]:!![],'where':_0x443d92[_0x886d('0x1d')]?_0x443d92[_0x886d('0x1d')]['where']||null:null,'attributes':_0x443d92[_0x886d('0x1d')]?_0x443d92[_0x886d('0x1d')]['attributes']||null:null,'limit':_0x443d92[_0x886d('0x1d')]?_0x443d92['options'][_0x886d('0x1f')]||null:null,'include':_0x443d92[_0x886d('0x1d')]?_0x443d92['options']['include']?_[_0x886d('0x20')](_0x443d92[_0x886d('0x1d')][_0x886d('0x21')],function(_0x12519d){return{'model':db[_0x12519d[_0x886d('0x22')]],'as':_0x12519d['as'],'attributes':_0x12519d[_0x886d('0x23')],'include':_0x12519d[_0x886d('0x21')]?_[_0x886d('0x20')](_0x12519d[_0x886d('0x21')],function(_0x8422a2){return{'model':db[_0x8422a2[_0x886d('0x22')]],'as':_0x8422a2['as'],'attributes':_0x8422a2[_0x886d('0x23')],'include':_0x8422a2[_0x886d('0x21')]?_[_0x886d('0x20')](_0x8422a2[_0x886d('0x21')],function(_0x584476){return{'model':db[_0x584476[_0x886d('0x22')]],'as':_0x584476['as'],'attributes':_0x584476[_0x886d('0x23')]};}):[]};}):[]};}):[]:[]})[_0x886d('0x11')](function(_0x561d30){logger['info'](_0x886d('0x1b'),_0x443d92);logger[_0x886d('0x14')](_0x886d('0x1b'),_0x443d92,JSON[_0x886d('0x24')](_0x561d30));_0x16688c(_0x561d30);})['catch'](function(_0x270433){logger['error'](_0x886d('0x1b'),_0x270433[_0x886d('0x19')],_0x443d92);_0x439583(_0x5b6437['error'](0x1f4,_0x270433[_0x886d('0x19')]));});});};exports['NotifyFaxAccount']=function(_0x49e98f,_0x41cbd1,_0x550dd1){var _0x2a91b6=this;return new Promise(function(_0x3c2115,_0x52b38a){var _0x87660c={'body':_0x49e98f[_0x886d('0x25')],'channel':'fax'};var _0x9eab95=[];var _0x2c48a2=[];var _0x50c229={};return db['CmContact'][_0x886d('0x26')]()[_0x886d('0x11')](function(_0x490a7f){if(!_0x490a7f){throw new db[(_0x886d('0x27'))]['ValidationError'](_0x886d('0x28'));}_0x9eab95=_['difference'](_[_0x886d('0x29')](_0x490a7f),[_0x886d('0x2a'),'updatedAt']);_0x2c48a2=_[_0x886d('0x2b')](_[_0x886d('0x29')](_0x490a7f),[_0x886d('0x2a'),_0x886d('0x2c'),_0x886d('0x2d'),_0x886d('0x2e')]);if(_0x49e98f['body']['id']){delete _0x49e98f[_0x886d('0x25')]['id'];}if(_['isNil'](_0x49e98f[_0x886d('0x25')][_0x886d('0x2f')])){throw new db[(_0x886d('0x27'))]['ValidationError']('from\x20is\x20mandatory');}if(_[_0x886d('0x30')](_0x49e98f[_0x886d('0x25')][_0x886d('0x25')])||_0x49e98f[_0x886d('0x25')][_0x886d('0x25')]===''){throw new db[(_0x886d('0x27'))]['ValidationError'](_0x886d('0x31'));}if(_['isNil'](_0x49e98f['body'][_0x886d('0x32')])){throw new db[(_0x886d('0x27'))][(_0x886d('0x33'))](_0x886d('0x34')+_0x2c48a2);}if(!_[_0x886d('0x35')](_0x2c48a2,_0x49e98f['body'][_0x886d('0x32')])){throw new db[(_0x886d('0x27'))][(_0x886d('0x33'))](_0x886d('0x36')+_0x2c48a2);}_0x50c229[_0x49e98f[_0x886d('0x25')]['mapKey']]=_0x49e98f[_0x886d('0x25')]['from'];})['then'](function(){return db[_0x886d('0x1c')]['find']({'where':{'id':_0x49e98f[_0x886d('0x37')]['id']},'include':[{'model':db[_0x886d('0x38')],'as':_0x886d('0x39'),'include':[{'model':db[_0x886d('0x3a')],'as':_0x886d('0x3b'),'where':_0x50c229,'limit':0x1,'order':[[_0x886d('0x2c'),'DESC']]}]},{'model':db[_0x886d('0x3c')],'as':_0x886d('0x3d')}]});})[_0x886d('0x11')](function(_0x5e9b26){if(_0x5e9b26&&_0x5e9b26[_0x886d('0x39')]){var _0x3d57eb=_0x5e9b26['get']({'plain':!![]});_0x87660c[_0x886d('0x37')]=_0x3d57eb;_0x87660c[_0x886d('0x3e')]=_0x3d57eb[_0x886d('0x3d')];_0x87660c[_0x886d('0x3f')]=_0x3d57eb['List'];_0x87660c[_0x886d('0x3e')]=_[_0x886d('0x40')](_0x87660c['applications'],[_0x886d('0x41')],[_0x886d('0x42')]);if(_0x87660c[_0x886d('0x37')]['Applications']){delete _0x87660c['account'][_0x886d('0x3d')];}if(_0x87660c['account'][_0x886d('0x39')]&&_0x87660c['account']['List'][_0x886d('0x3b')]['length']){return _0x87660c[_0x886d('0x37')][_0x886d('0x39')][_0x886d('0x3b')][0x0];}var _0x5c6e58=_[_0x886d('0xc')](_0x49e98f['body'],{'firstName':_0x49e98f[_0x886d('0x25')]['from'],'ListId':_0x3d57eb[_0x886d('0x2e')]});_0x5c6e58[_0x49e98f[_0x886d('0x25')]['mapKey']]=_0x49e98f[_0x886d('0x25')][_0x886d('0x2f')];return db[_0x886d('0x3a')][_0x886d('0x43')](_0x5c6e58,{'fields':_0x9eab95,'raw':!![]});}})['then'](function(_0x3de25c){_0x87660c[_0x886d('0x44')]=_0x3de25c;if(_0x3de25c){var _0x5c00c5={'ContactId':_0x3de25c['id'],'FaxAccountId':_0x49e98f[_0x886d('0x37')]['id'],'fax':_0x3de25c[_0x886d('0x45')]};return db[_0x886d('0x46')][_0x886d('0x47')]({'where':{'ContactId':_0x3de25c['id'],'closed':![],'FaxAccountId':_0x49e98f[_0x886d('0x37')]['id']}})[_0x886d('0x11')](function(_0x4c363e){if(_0x4c363e){return[_0x4c363e,![]];}return db[_0x886d('0x46')][_0x886d('0x43')](_0x5c00c5)['then'](function(_0x5b24ba){return[_0x5b24ba,!![]];});});}else{throw new Error(_0x886d('0x48'));}})[_0x886d('0x49')](function(_0xaba037,_0x3e8097){var _0x292b08=_0xaba037[_0x886d('0x4a')]({'plain':!![]});if(_0x3e8097){if(_0x87660c['account']['autoclose']){_0x87660c[_0x886d('0x3e')][_0x886d('0x4b')]({'id':0x0,'priority':_0x87660c[_0x886d('0x3e')]['length']+0x1,'app':_0x886d('0x4c'),'appdata':'unmanaged','interval':'*,*,*,*'});}_0x292b08[_0x886d('0x4d')]=!![];}else{_0x292b08[_0x886d('0x4d')]=![];}_0x87660c[_0x886d('0x4e')]=_0x292b08;return db[_0x886d('0x4f')][_0x886d('0x43')]({'body':_0x49e98f['body'][_0x886d('0x25')],'FaxAccountId':_0x49e98f[_0x886d('0x37')]['id'],'FaxInteractionId':_0xaba037['id'],'direction':'in','ContactId':_0xaba037[_0x886d('0x50')],'AttachmentId':_0x49e98f[_0x886d('0x25')]['AttachmentId']});})['then'](function(_0x49b832){_0x87660c[_0x886d('0x19')]=_0x49b832;if(_0x87660c['interaction'][_0x886d('0x51')]){return db[_0x886d('0x52')][_0x886d('0x47')]({'attributes':['id','name'],'where':{'id':_0x87660c['interaction'][_0x886d('0x51')]}})[_0x886d('0x11')](function(_0x4004dd){if(_0x4004dd){_0x87660c[_0x886d('0x3e')][_0x886d('0x53')]({'id':0x0,'priority':0x0,'app':'agent','appdata':_0x4004dd[_0x886d('0x54')]+','+(_0x87660c['account'][_0x886d('0x55')]||0xa),'interval':_0x886d('0x56')});}return respondWithRpcPromise('Start',_0x886d('0x57'),_0x87660c);});}return respondWithRpcPromise(_0x886d('0x58'),'startRouting',_0x87660c);})[_0x886d('0x11')](function(_0x80875e){_0x3c2115(_0x80875e);})[_0x886d('0x1a')](function(_0x3e3bbe){_0x52b38a(_0x2a91b6[_0x886d('0x16')](0x1f4,_0x3e3bbe['message']));});});};