4a04cfe1b9f55acdf343c0ba71bf4399b8817625
[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 _0xc6eb=['../../config/utils','../../config/logger','../../config/environment','jayson/promise','redis','defaults','localhost','./faxAccount.socket','register','request','then','info','FaxAccount,\x20%s,\x20%s','request\x20sent','stringify','error','code','message','result','FaxAccount','findAll','options','raw','where','attributes','limit','include','map','model','debug','GetFaxAccount','catch','NotifyFaxAccount','body','fax','CmContact','Sequelize','no\x20available\x20attributes','difference','keys','updatedAt','createdAt','ListId','isNil','ValidationError','from\x20is\x20mandatory','body\x20is\x20mandatory\x20and\x20not\x20empty','mapKey\x20is\x20mandatory,\x20please\x20use\x20one\x20of\x20these:\x20','mapKey\x20invalid,\x20please\x20use\x20one\x20of\x20these:\x20','from','find','account','CmList','DESC','List','get','Applications','list','applications','orderBy','priority','asc','Contacts','length','mapKey','create','contact','FaxInteraction','Contact\x20not\x20found','spread','unmanaged','created','interaction','FaxMessage','ContactId','AttachmentId','UserId','User','unshift','agent','name','*,*,*,*','Start','startRouting','lodash','moment','bluebird','ioredis'];(function(_0x209941,_0x5c9988){var _0x1e8729=function(_0x51a9b8){while(--_0x51a9b8){_0x209941['push'](_0x209941['shift']());}};_0x1e8729(++_0x5c9988);}(_0xc6eb,0x104));var _0xbc6e=function(_0x449216,_0x33b40f){_0x449216=_0x449216-0x0;var _0x23443c=_0xc6eb[_0x449216];return _0x23443c;};'use strict';var _=require(_0xbc6e('0x0'));var util=require('util');var moment=require(_0xbc6e('0x1'));var BPromise=require(_0xbc6e('0x2'));var rs=require('randomstring');var fs=require('fs');var Redis=require(_0xbc6e('0x3'));var db=require('../../mysqldb')['db'];var utils=require(_0xbc6e('0x4'));var logger=require(_0xbc6e('0x5'))('rpc');var config=require(_0xbc6e('0x6'));var jayson=require(_0xbc6e('0x7'));var client=jayson['client']['http']({'port':0x232c});config[_0xbc6e('0x8')]=_[_0xbc6e('0x9')](config[_0xbc6e('0x8')],{'host':_0xbc6e('0xa'),'port':0x18eb});var socket=require('socket.io-emitter')(new Redis(config[_0xbc6e('0x8')]));require(_0xbc6e('0xb'))[_0xbc6e('0xc')](socket);function respondWithRpcPromise(_0x3cabe6,_0x2fa88e,_0x1f238c){return new BPromise(function(_0x40193b,_0x67a254){return client[_0xbc6e('0xd')](_0x3cabe6,_0x1f238c)[_0xbc6e('0xe')](function(_0x4d5068){logger[_0xbc6e('0xf')](_0xbc6e('0x10'),_0x2fa88e,_0xbc6e('0x11'));logger['debug']('FaxAccount,\x20%s,\x20%s,\x20%s',_0x2fa88e,_0xbc6e('0x11'),JSON[_0xbc6e('0x12')](_0x4d5068));if(_0x4d5068[_0xbc6e('0x13')]){if(_0x4d5068[_0xbc6e('0x13')][_0xbc6e('0x14')]===0x1f4){logger[_0xbc6e('0x13')](_0xbc6e('0x10'),_0x2fa88e,_0x4d5068['error'][_0xbc6e('0x15')]);return _0x67a254(_0x4d5068[_0xbc6e('0x13')][_0xbc6e('0x15')]);}logger[_0xbc6e('0x13')](_0xbc6e('0x10'),_0x2fa88e,_0x4d5068[_0xbc6e('0x13')]['message']);return _0x40193b(_0x4d5068[_0xbc6e('0x13')]['message']);}else{logger['info'](_0xbc6e('0x10'),_0x2fa88e,_0xbc6e('0x11'));_0x40193b(_0x4d5068[_0xbc6e('0x16')]['message']);}})['catch'](function(_0x1a2138){logger[_0xbc6e('0x13')](_0xbc6e('0x10'),_0x2fa88e,_0x1a2138);_0x67a254(_0x1a2138);});});}exports['GetFaxAccount']=function(_0x1e4df0){var _0x3544dd=this;return new Promise(function(_0x1cf1e4,_0x5a3125){return db[_0xbc6e('0x17')][_0xbc6e('0x18')]({'raw':_0x1e4df0['options']?_0x1e4df0[_0xbc6e('0x19')][_0xbc6e('0x1a')]===undefined?!![]:![]:!![],'where':_0x1e4df0[_0xbc6e('0x19')]?_0x1e4df0[_0xbc6e('0x19')][_0xbc6e('0x1b')]||null:null,'attributes':_0x1e4df0[_0xbc6e('0x19')]?_0x1e4df0[_0xbc6e('0x19')][_0xbc6e('0x1c')]||null:null,'limit':_0x1e4df0[_0xbc6e('0x19')]?_0x1e4df0[_0xbc6e('0x19')][_0xbc6e('0x1d')]||null:null,'include':_0x1e4df0[_0xbc6e('0x19')]?_0x1e4df0[_0xbc6e('0x19')][_0xbc6e('0x1e')]?_[_0xbc6e('0x1f')](_0x1e4df0[_0xbc6e('0x19')][_0xbc6e('0x1e')],function(_0x264eec){return{'model':db[_0x264eec[_0xbc6e('0x20')]],'as':_0x264eec['as'],'attributes':_0x264eec['attributes'],'include':_0x264eec[_0xbc6e('0x1e')]?_[_0xbc6e('0x1f')](_0x264eec[_0xbc6e('0x1e')],function(_0x2c6e58){return{'model':db[_0x2c6e58[_0xbc6e('0x20')]],'as':_0x2c6e58['as'],'attributes':_0x2c6e58['attributes'],'include':_0x2c6e58['include']?_[_0xbc6e('0x1f')](_0x2c6e58[_0xbc6e('0x1e')],function(_0x1e5719){return{'model':db[_0x1e5719[_0xbc6e('0x20')]],'as':_0x1e5719['as'],'attributes':_0x1e5719[_0xbc6e('0x1c')]};}):[]};}):[]};}):[]:[]})[_0xbc6e('0xe')](function(_0x5ce028){logger['info']('GetFaxAccount',_0x1e4df0);logger[_0xbc6e('0x21')](_0xbc6e('0x22'),_0x1e4df0,JSON[_0xbc6e('0x12')](_0x5ce028));_0x1cf1e4(_0x5ce028);})[_0xbc6e('0x23')](function(_0x410c25){logger['error'](_0xbc6e('0x22'),_0x410c25[_0xbc6e('0x15')],_0x1e4df0);_0x5a3125(_0x3544dd[_0xbc6e('0x13')](0x1f4,_0x410c25[_0xbc6e('0x15')]));});});};exports[_0xbc6e('0x24')]=function(_0xdab890,_0x1e915e,_0x53df39){var _0x1f00b1=this;return new Promise(function(_0x2cdb61,_0x20a25c){var _0xb967be={'body':_0xdab890[_0xbc6e('0x25')],'channel':_0xbc6e('0x26')};var _0xf5d07e=[];var _0x571a25=[];var _0x243843={};return db[_0xbc6e('0x27')]['describe']()['then'](function(_0x726b3c){if(!_0x726b3c){throw new db[(_0xbc6e('0x28'))]['ValidationError'](_0xbc6e('0x29'));}_0xf5d07e=_[_0xbc6e('0x2a')](_[_0xbc6e('0x2b')](_0x726b3c),['createdAt',_0xbc6e('0x2c')]);_0x571a25=_[_0xbc6e('0x2a')](_['keys'](_0x726b3c),[_0xbc6e('0x2d'),_0xbc6e('0x2c'),'CompanyId',_0xbc6e('0x2e')]);if(_0xdab890[_0xbc6e('0x25')]['id']){delete _0xdab890[_0xbc6e('0x25')]['id'];}if(_[_0xbc6e('0x2f')](_0xdab890[_0xbc6e('0x25')]['from'])){throw new db[(_0xbc6e('0x28'))][(_0xbc6e('0x30'))](_0xbc6e('0x31'));}if(_[_0xbc6e('0x2f')](_0xdab890[_0xbc6e('0x25')][_0xbc6e('0x25')])||_0xdab890['body'][_0xbc6e('0x25')]===''){throw new db[(_0xbc6e('0x28'))]['ValidationError'](_0xbc6e('0x32'));}if(_[_0xbc6e('0x2f')](_0xdab890[_0xbc6e('0x25')]['mapKey'])){throw new db[(_0xbc6e('0x28'))]['ValidationError'](_0xbc6e('0x33')+_0x571a25);}if(!_['includes'](_0x571a25,_0xdab890['body']['mapKey'])){throw new db[(_0xbc6e('0x28'))]['ValidationError'](_0xbc6e('0x34')+_0x571a25);}_0x243843[_0xdab890['body']['mapKey']]=_0xdab890[_0xbc6e('0x25')][_0xbc6e('0x35')];})[_0xbc6e('0xe')](function(){return db['FaxAccount'][_0xbc6e('0x36')]({'where':{'id':_0xdab890[_0xbc6e('0x37')]['id']},'include':[{'model':db[_0xbc6e('0x38')],'as':'List','include':[{'model':db['CmContact'],'as':'Contacts','where':_0x243843,'limit':0x1,'order':[[_0xbc6e('0x2c'),_0xbc6e('0x39')]]}]},{'model':db['FaxApplication'],'as':'Applications'}]});})[_0xbc6e('0xe')](function(_0x5dca65){if(_0x5dca65&&_0x5dca65[_0xbc6e('0x3a')]){var _0xf92657=_0x5dca65[_0xbc6e('0x3b')]({'plain':!![]});_0xb967be['account']=_0xf92657;_0xb967be['applications']=_0xf92657[_0xbc6e('0x3c')];_0xb967be[_0xbc6e('0x3d')]=_0xf92657[_0xbc6e('0x3a')];_0xb967be[_0xbc6e('0x3e')]=_[_0xbc6e('0x3f')](_0xb967be[_0xbc6e('0x3e')],[_0xbc6e('0x40')],[_0xbc6e('0x41')]);if(_0xb967be[_0xbc6e('0x37')]['Applications']){delete _0xb967be[_0xbc6e('0x37')][_0xbc6e('0x3c')];}if(_0xb967be['account'][_0xbc6e('0x3a')]&&_0xb967be['account'][_0xbc6e('0x3a')][_0xbc6e('0x42')][_0xbc6e('0x43')]){return _0xb967be[_0xbc6e('0x37')][_0xbc6e('0x3a')][_0xbc6e('0x42')][0x0];}var _0x50e05e=_[_0xbc6e('0x9')](_0xdab890['body'],{'firstName':_0xdab890[_0xbc6e('0x25')][_0xbc6e('0x35')],'ListId':_0xf92657[_0xbc6e('0x2e')]});_0x50e05e[_0xdab890[_0xbc6e('0x25')][_0xbc6e('0x44')]]=_0xdab890[_0xbc6e('0x25')][_0xbc6e('0x35')];return db['CmContact'][_0xbc6e('0x45')](_0x50e05e,{'fields':_0xf5d07e,'raw':!![]});}})['then'](function(_0x154538){_0xb967be[_0xbc6e('0x46')]=_0x154538;if(_0x154538){var _0xb27208={'ContactId':_0x154538['id'],'FaxAccountId':_0xdab890['account']['id'],'fax':_0x154538[_0xbc6e('0x26')]};return db[_0xbc6e('0x47')][_0xbc6e('0x36')]({'where':{'ContactId':_0x154538['id'],'closed':![],'FaxAccountId':_0xdab890[_0xbc6e('0x37')]['id']}})['then'](function(_0x1057d2){if(_0x1057d2){return[_0x1057d2,![]];}return db['FaxInteraction'][_0xbc6e('0x45')](_0xb27208)[_0xbc6e('0xe')](function(_0x5e93d5){return[_0x5e93d5,!![]];});});}else{throw new Error(_0xbc6e('0x48'));}})[_0xbc6e('0x49')](function(_0x4bdf8b,_0x50f001){var _0x3d1a71=_0x4bdf8b[_0xbc6e('0x3b')]({'plain':!![]});if(_0x50f001){if(_0xb967be[_0xbc6e('0x37')]['autoclose']){_0xb967be[_0xbc6e('0x3e')]['push']({'id':0x0,'priority':_0xb967be[_0xbc6e('0x3e')][_0xbc6e('0x43')]+0x1,'app':'close','appdata':_0xbc6e('0x4a'),'interval':'*,*,*,*'});}_0x3d1a71[_0xbc6e('0x4b')]=!![];}else{_0x3d1a71[_0xbc6e('0x4b')]=![];}_0xb967be[_0xbc6e('0x4c')]=_0x3d1a71;return db[_0xbc6e('0x4d')][_0xbc6e('0x45')]({'body':_0xdab890['body']['body'],'FaxAccountId':_0xdab890[_0xbc6e('0x37')]['id'],'FaxInteractionId':_0x4bdf8b['id'],'direction':'in','ContactId':_0x4bdf8b[_0xbc6e('0x4e')],'AttachmentId':_0xdab890['body'][_0xbc6e('0x4f')]});})[_0xbc6e('0xe')](function(_0x4933e2){_0xb967be['message']=_0x4933e2;if(_0xb967be[_0xbc6e('0x4c')][_0xbc6e('0x50')]){return db[_0xbc6e('0x51')]['find']({'attributes':['id','name'],'where':{'id':_0xb967be[_0xbc6e('0x4c')][_0xbc6e('0x50')]}})['then'](function(_0x205f24){if(_0x205f24){_0xb967be['applications'][_0xbc6e('0x52')]({'id':0x0,'priority':0x0,'app':_0xbc6e('0x53'),'appdata':_0x205f24[_0xbc6e('0x54')]+','+(_0xb967be['account']['waitForTheAssignedAgent']||0xa),'interval':_0xbc6e('0x55')});}return respondWithRpcPromise(_0xbc6e('0x56'),'startRouting',_0xb967be);});}return respondWithRpcPromise(_0xbc6e('0x56'),_0xbc6e('0x57'),_0xb967be);})['then'](function(_0x5bc702){_0x2cdb61(_0x5bc702);})['catch'](function(_0x4b0039){_0x20a25c(_0x1f00b1[_0xbc6e('0x13')](0x1f4,_0x4b0039['message']));});});};