ec1f0191b0045b85eba51b71ff43c25536ab2891
[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 _0x77a9=['client','redis','defaults','localhost','socket.io-emitter','./faxAccount.socket','request','then','info','FaxAccount,\x20%s,\x20%s','request\x20sent','error','code','message','result','catch','FaxAccount','findAll','options','raw','where','attributes','limit','include','map','model','debug','GetFaxAccount','stringify','NotifyFaxAccount','body','fax','describe','ValidationError','no\x20available\x20attributes','createdAt','updatedAt','difference','keys','ListId','isNil','Sequelize','mapKey','includes','mapKey\x20invalid,\x20please\x20use\x20one\x20of\x20these:\x20','from','account','CmList','Contacts','DESC','FaxApplication','List','get','applications','Applications','list','orderBy','priority','asc','length','create','contact','find','FaxInteraction','spread','autoclose','push','close','unmanaged','*,*,*,*','interaction','FaxMessage','ContactId','AttachmentId','UserId','User','name','unshift','waitForTheAssignedAgent','Start','startRouting','lodash','util','bluebird','../../mysqldb','../../config/utils','rpc','../../config/environment','jayson/promise'];(function(_0x546fc0,_0x94ece4){var _0x582224=function(_0xe77153){while(--_0xe77153){_0x546fc0['push'](_0x546fc0['shift']());}};_0x582224(++_0x94ece4);}(_0x77a9,0x103));var _0x977a=function(_0x63d1a8,_0x163f89){_0x63d1a8=_0x63d1a8-0x0;var _0x609ec9=_0x77a9[_0x63d1a8];return _0x609ec9;};'use strict';var _=require(_0x977a('0x0'));var util=require(_0x977a('0x1'));var moment=require('moment');var BPromise=require(_0x977a('0x2'));var rs=require('randomstring');var fs=require('fs');var Redis=require('ioredis');var db=require(_0x977a('0x3'))['db'];var utils=require(_0x977a('0x4'));var logger=require('../../config/logger')(_0x977a('0x5'));var config=require(_0x977a('0x6'));var jayson=require(_0x977a('0x7'));var client=jayson[_0x977a('0x8')]['http']({'port':0x232c});config[_0x977a('0x9')]=_[_0x977a('0xa')](config[_0x977a('0x9')],{'host':_0x977a('0xb'),'port':0x18eb});var socket=require(_0x977a('0xc'))(new Redis(config[_0x977a('0x9')]));require(_0x977a('0xd'))['register'](socket);function respondWithRpcPromise(_0x5998fe,_0x1ac993,_0x3fd54a){return new BPromise(function(_0x3b1407,_0x3ad7e4){return client[_0x977a('0xe')](_0x5998fe,_0x3fd54a)[_0x977a('0xf')](function(_0x15de1f){logger[_0x977a('0x10')](_0x977a('0x11'),_0x1ac993,'request\x20sent');logger['debug']('FaxAccount,\x20%s,\x20%s,\x20%s',_0x1ac993,_0x977a('0x12'),JSON['stringify'](_0x15de1f));if(_0x15de1f[_0x977a('0x13')]){if(_0x15de1f[_0x977a('0x13')][_0x977a('0x14')]===0x1f4){logger[_0x977a('0x13')](_0x977a('0x11'),_0x1ac993,_0x15de1f[_0x977a('0x13')][_0x977a('0x15')]);return _0x3ad7e4(_0x15de1f[_0x977a('0x13')][_0x977a('0x15')]);}logger[_0x977a('0x13')](_0x977a('0x11'),_0x1ac993,_0x15de1f[_0x977a('0x13')][_0x977a('0x15')]);return _0x3b1407(_0x15de1f[_0x977a('0x13')][_0x977a('0x15')]);}else{logger[_0x977a('0x10')]('FaxAccount,\x20%s,\x20%s',_0x1ac993,'request\x20sent');_0x3b1407(_0x15de1f[_0x977a('0x16')]['message']);}})[_0x977a('0x17')](function(_0x1f120f){logger[_0x977a('0x13')](_0x977a('0x11'),_0x1ac993,_0x1f120f);_0x3ad7e4(_0x1f120f);});});}exports['GetFaxAccount']=function(_0x51e196){var _0x771a81=this;return new Promise(function(_0x1c0242,_0x138426){return db[_0x977a('0x18')][_0x977a('0x19')]({'raw':_0x51e196[_0x977a('0x1a')]?_0x51e196['options'][_0x977a('0x1b')]===undefined?!![]:![]:!![],'where':_0x51e196['options']?_0x51e196['options'][_0x977a('0x1c')]||null:null,'attributes':_0x51e196[_0x977a('0x1a')]?_0x51e196['options'][_0x977a('0x1d')]||null:null,'limit':_0x51e196[_0x977a('0x1a')]?_0x51e196[_0x977a('0x1a')][_0x977a('0x1e')]||null:null,'include':_0x51e196[_0x977a('0x1a')]?_0x51e196[_0x977a('0x1a')]['include']?_['map'](_0x51e196[_0x977a('0x1a')]['include'],function(_0x1da72d){return{'model':db[_0x1da72d['model']],'as':_0x1da72d['as'],'attributes':_0x1da72d[_0x977a('0x1d')],'include':_0x1da72d[_0x977a('0x1f')]?_[_0x977a('0x20')](_0x1da72d['include'],function(_0x30a570){return{'model':db[_0x30a570[_0x977a('0x21')]],'as':_0x30a570['as'],'attributes':_0x30a570['attributes'],'include':_0x30a570['include']?_['map'](_0x30a570['include'],function(_0x540dc5){return{'model':db[_0x540dc5[_0x977a('0x21')]],'as':_0x540dc5['as'],'attributes':_0x540dc5[_0x977a('0x1d')]};}):[]};}):[]};}):[]:[]})[_0x977a('0xf')](function(_0x47b2c){logger[_0x977a('0x10')]('GetFaxAccount',_0x51e196);logger[_0x977a('0x22')](_0x977a('0x23'),_0x51e196,JSON[_0x977a('0x24')](_0x47b2c));_0x1c0242(_0x47b2c);})[_0x977a('0x17')](function(_0x50af71){logger[_0x977a('0x13')](_0x977a('0x23'),_0x50af71[_0x977a('0x15')],_0x51e196);_0x138426(_0x771a81[_0x977a('0x13')](0x1f4,_0x50af71['message']));});});};exports[_0x977a('0x25')]=function(_0x28c04b,_0x448ce8,_0x50db6b){var _0x5cc5d5=this;return new Promise(function(_0x995927,_0x11b7aa){var _0x207574={'body':_0x28c04b[_0x977a('0x26')],'channel':_0x977a('0x27')};var _0x3787bb=[];var _0x5b48eb=[];var _0x499766={};return db['CmContact'][_0x977a('0x28')]()[_0x977a('0xf')](function(_0x46ae09){if(!_0x46ae09){throw new db['Sequelize'][(_0x977a('0x29'))](_0x977a('0x2a'));}_0x3787bb=_['difference'](_['keys'](_0x46ae09),[_0x977a('0x2b'),_0x977a('0x2c')]);_0x5b48eb=_[_0x977a('0x2d')](_[_0x977a('0x2e')](_0x46ae09),[_0x977a('0x2b'),_0x977a('0x2c'),'CompanyId',_0x977a('0x2f')]);if(_0x28c04b['body']['id']){delete _0x28c04b[_0x977a('0x26')]['id'];}if(_[_0x977a('0x30')](_0x28c04b[_0x977a('0x26')]['from'])){throw new db[(_0x977a('0x31'))]['ValidationError']('from\x20is\x20mandatory');}if(_[_0x977a('0x30')](_0x28c04b[_0x977a('0x26')][_0x977a('0x26')])||_0x28c04b['body'][_0x977a('0x26')]===''){throw new db['Sequelize'][(_0x977a('0x29'))]('body\x20is\x20mandatory\x20and\x20not\x20empty');}if(_[_0x977a('0x30')](_0x28c04b['body'][_0x977a('0x32')])){throw new db['Sequelize']['ValidationError']('mapKey\x20is\x20mandatory,\x20please\x20use\x20one\x20of\x20these:\x20'+_0x5b48eb);}if(!_[_0x977a('0x33')](_0x5b48eb,_0x28c04b[_0x977a('0x26')][_0x977a('0x32')])){throw new db[(_0x977a('0x31'))][(_0x977a('0x29'))](_0x977a('0x34')+_0x5b48eb);}_0x499766[_0x28c04b[_0x977a('0x26')][_0x977a('0x32')]]=_0x28c04b[_0x977a('0x26')][_0x977a('0x35')];})[_0x977a('0xf')](function(){return db[_0x977a('0x18')]['find']({'where':{'id':_0x28c04b[_0x977a('0x36')]['id']},'include':[{'model':db[_0x977a('0x37')],'as':'List','include':[{'model':db['CmContact'],'as':_0x977a('0x38'),'where':_0x499766,'limit':0x1,'order':[[_0x977a('0x2c'),_0x977a('0x39')]]}]},{'model':db[_0x977a('0x3a')],'as':'Applications'}]});})[_0x977a('0xf')](function(_0x38ee91){if(_0x38ee91&&_0x38ee91[_0x977a('0x3b')]){var _0x39e296=_0x38ee91[_0x977a('0x3c')]({'plain':!![]});_0x207574['account']=_0x39e296;_0x207574[_0x977a('0x3d')]=_0x39e296[_0x977a('0x3e')];_0x207574[_0x977a('0x3f')]=_0x39e296[_0x977a('0x3b')];_0x207574[_0x977a('0x3d')]=_[_0x977a('0x40')](_0x207574[_0x977a('0x3d')],[_0x977a('0x41')],[_0x977a('0x42')]);if(_0x207574['account'][_0x977a('0x3e')]){delete _0x207574[_0x977a('0x36')]['Applications'];}if(_0x207574['account'][_0x977a('0x3b')]&&_0x207574[_0x977a('0x36')]['List'][_0x977a('0x38')][_0x977a('0x43')]){return _0x207574['account'][_0x977a('0x3b')][_0x977a('0x38')][0x0];}var _0x49e623=_[_0x977a('0xa')](_0x28c04b[_0x977a('0x26')],{'firstName':_0x28c04b[_0x977a('0x26')][_0x977a('0x35')],'ListId':_0x39e296[_0x977a('0x2f')]});_0x49e623[_0x28c04b[_0x977a('0x26')][_0x977a('0x32')]]=_0x28c04b['body']['from'];return db['CmContact'][_0x977a('0x44')](_0x49e623,{'fields':_0x3787bb,'raw':!![]});}})[_0x977a('0xf')](function(_0x4dbd93){_0x207574[_0x977a('0x45')]=_0x4dbd93;if(_0x4dbd93){var _0x43ad69={'ContactId':_0x4dbd93['id'],'FaxAccountId':_0x28c04b[_0x977a('0x36')]['id'],'fax':_0x4dbd93[_0x977a('0x27')]};return db['FaxInteraction'][_0x977a('0x46')]({'where':{'ContactId':_0x4dbd93['id'],'closed':![],'FaxAccountId':_0x28c04b[_0x977a('0x36')]['id']}})[_0x977a('0xf')](function(_0x5d0593){if(_0x5d0593){return[_0x5d0593,![]];}return db[_0x977a('0x47')][_0x977a('0x44')](_0x43ad69)['then'](function(_0x4b9138){return[_0x4b9138,!![]];});});}else{throw new Error('Contact\x20not\x20found');}})[_0x977a('0x48')](function(_0x518188,_0x4d0351){var _0x61b2=_0x518188[_0x977a('0x3c')]({'plain':!![]});if(_0x4d0351){if(_0x207574[_0x977a('0x36')][_0x977a('0x49')]){_0x207574['applications'][_0x977a('0x4a')]({'id':0x0,'priority':_0x207574[_0x977a('0x3d')][_0x977a('0x43')]+0x1,'app':_0x977a('0x4b'),'appdata':_0x977a('0x4c'),'interval':_0x977a('0x4d')});}_0x61b2['created']=!![];}else{_0x61b2['created']=![];}_0x207574[_0x977a('0x4e')]=_0x61b2;return db[_0x977a('0x4f')][_0x977a('0x44')]({'body':_0x28c04b['body'][_0x977a('0x26')],'FaxAccountId':_0x28c04b['account']['id'],'FaxInteractionId':_0x518188['id'],'direction':'in','ContactId':_0x518188[_0x977a('0x50')],'AttachmentId':_0x28c04b[_0x977a('0x26')][_0x977a('0x51')]});})[_0x977a('0xf')](function(_0x3c3b51){_0x207574[_0x977a('0x15')]=_0x3c3b51;if(_0x207574[_0x977a('0x4e')][_0x977a('0x52')]){return db[_0x977a('0x53')][_0x977a('0x46')]({'attributes':['id',_0x977a('0x54')],'where':{'id':_0x207574[_0x977a('0x4e')][_0x977a('0x52')]}})['then'](function(_0x3e7d26){if(_0x3e7d26){_0x207574['applications'][_0x977a('0x55')]({'id':0x0,'priority':0x0,'app':'agent','appdata':_0x3e7d26['name']+','+(_0x207574[_0x977a('0x36')][_0x977a('0x56')]||0xa),'interval':_0x977a('0x4d')});}return respondWithRpcPromise(_0x977a('0x57'),_0x977a('0x58'),_0x207574);});}return respondWithRpcPromise(_0x977a('0x57'),_0x977a('0x58'),_0x207574);})['then'](function(_0x53743d){_0x995927(_0x53743d);})['catch'](function(_0x57b9da){_0x11b7aa(_0x5cc5d5[_0x977a('0x13')](0x1f4,_0x57b9da['message']));});});};