f66a6f260ac4b036344f0348bb5b2c56881f8989
[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 _0xe713=['name','waitForTheAssignedAgent','Start','startRouting','lodash','bluebird','randomstring','ioredis','../../mysqldb','../../config/utils','../../config/logger','../../config/environment','jayson/promise','client','http','redis','defaults','localhost','socket.io-emitter','./faxAccount.socket','register','request','FaxAccount,\x20%s,\x20%s','FaxAccount,\x20%s,\x20%s,\x20%s','request\x20sent','stringify','error','message','catch','GetFaxAccount','FaxAccount','options','attributes','limit','map','include','model','then','info','NotifyFaxAccount','body','fax','CmContact','describe','Sequelize','ValidationError','no\x20available\x20attributes','keys','createdAt','updatedAt','difference','ListId','isNil','from','from\x20is\x20mandatory','body\x20is\x20mandatory\x20and\x20not\x20empty','mapKey','mapKey\x20is\x20mandatory,\x20please\x20use\x20one\x20of\x20these:\x20','includes','mapKey\x20invalid,\x20please\x20use\x20one\x20of\x20these:\x20','find','account','CmList','FaxApplication','Applications','get','applications','List','orderBy','length','Contacts','create','contact','FaxInteraction','spread','autoclose','push','close','unmanaged','*,*,*,*','created','interaction','FaxMessage','ContactId','AttachmentId','UserId','unshift','agent'];(function(_0xb6a457,_0x517442){var _0x1700d0=function(_0xacb3e1){while(--_0xacb3e1){_0xb6a457['push'](_0xb6a457['shift']());}};_0x1700d0(++_0x517442);}(_0xe713,0x164));var _0x3e71=function(_0x641f18,_0x2919e8){_0x641f18=_0x641f18-0x0;var _0x16eefe=_0xe713[_0x641f18];return _0x16eefe;};'use strict';var _=require(_0x3e71('0x0'));var util=require('util');var moment=require('moment');var BPromise=require(_0x3e71('0x1'));var rs=require(_0x3e71('0x2'));var fs=require('fs');var Redis=require(_0x3e71('0x3'));var db=require(_0x3e71('0x4'))['db'];var utils=require(_0x3e71('0x5'));var logger=require(_0x3e71('0x6'))('rpc');var config=require(_0x3e71('0x7'));var jayson=require(_0x3e71('0x8'));var client=jayson[_0x3e71('0x9')][_0x3e71('0xa')]({'port':0x232c});config[_0x3e71('0xb')]=_[_0x3e71('0xc')](config[_0x3e71('0xb')],{'host':_0x3e71('0xd'),'port':0x18eb});var socket=require(_0x3e71('0xe'))(new Redis(config[_0x3e71('0xb')]));require(_0x3e71('0xf'))[_0x3e71('0x10')](socket);function respondWithRpcPromise(_0x13cb25,_0x2cf91a,_0x3274ea){return new BPromise(function(_0x309cea,_0x3d6cdd){return client[_0x3e71('0x11')](_0x13cb25,_0x3274ea)['then'](function(_0x203f9d){logger['info'](_0x3e71('0x12'),_0x2cf91a,'request\x20sent');logger['debug'](_0x3e71('0x13'),_0x2cf91a,_0x3e71('0x14'),JSON[_0x3e71('0x15')](_0x203f9d));if(_0x203f9d['error']){if(_0x203f9d[_0x3e71('0x16')]['code']===0x1f4){logger['error'](_0x3e71('0x12'),_0x2cf91a,_0x203f9d['error']['message']);return _0x3d6cdd(_0x203f9d[_0x3e71('0x16')][_0x3e71('0x17')]);}logger[_0x3e71('0x16')](_0x3e71('0x12'),_0x2cf91a,_0x203f9d['error']['message']);return _0x309cea(_0x203f9d[_0x3e71('0x16')][_0x3e71('0x17')]);}else{logger['info'](_0x3e71('0x12'),_0x2cf91a,'request\x20sent');_0x309cea(_0x203f9d['result'][_0x3e71('0x17')]);}})[_0x3e71('0x18')](function(_0x2688e5){logger[_0x3e71('0x16')](_0x3e71('0x12'),_0x2cf91a,_0x2688e5);_0x3d6cdd(_0x2688e5);});});}exports[_0x3e71('0x19')]=function(_0xbfb0c2){var _0x3e5130=this;return new Promise(function(_0x3ba164,_0x3f1a4c){return db[_0x3e71('0x1a')]['findAll']({'raw':_0xbfb0c2[_0x3e71('0x1b')]?_0xbfb0c2['options']['raw']===undefined?!![]:![]:!![],'where':_0xbfb0c2[_0x3e71('0x1b')]?_0xbfb0c2[_0x3e71('0x1b')]['where']||null:null,'attributes':_0xbfb0c2[_0x3e71('0x1b')]?_0xbfb0c2['options'][_0x3e71('0x1c')]||null:null,'limit':_0xbfb0c2[_0x3e71('0x1b')]?_0xbfb0c2[_0x3e71('0x1b')][_0x3e71('0x1d')]||null:null,'include':_0xbfb0c2['options']?_0xbfb0c2[_0x3e71('0x1b')]['include']?_[_0x3e71('0x1e')](_0xbfb0c2['options'][_0x3e71('0x1f')],function(_0x4f31ed){return{'model':db[_0x4f31ed[_0x3e71('0x20')]],'as':_0x4f31ed['as'],'attributes':_0x4f31ed[_0x3e71('0x1c')],'include':_0x4f31ed['include']?_['map'](_0x4f31ed[_0x3e71('0x1f')],function(_0x2712da){return{'model':db[_0x2712da['model']],'as':_0x2712da['as'],'attributes':_0x2712da[_0x3e71('0x1c')],'include':_0x2712da[_0x3e71('0x1f')]?_['map'](_0x2712da[_0x3e71('0x1f')],function(_0x1ead23){return{'model':db[_0x1ead23['model']],'as':_0x1ead23['as'],'attributes':_0x1ead23[_0x3e71('0x1c')]};}):[]};}):[]};}):[]:[]})[_0x3e71('0x21')](function(_0x2f0bab){logger[_0x3e71('0x22')](_0x3e71('0x19'),_0xbfb0c2);logger['debug'](_0x3e71('0x19'),_0xbfb0c2,JSON[_0x3e71('0x15')](_0x2f0bab));_0x3ba164(_0x2f0bab);})[_0x3e71('0x18')](function(_0x5f0996){logger[_0x3e71('0x16')]('GetFaxAccount',_0x5f0996[_0x3e71('0x17')],_0xbfb0c2);_0x3f1a4c(_0x3e5130['error'](0x1f4,_0x5f0996[_0x3e71('0x17')]));});});};exports[_0x3e71('0x23')]=function(_0x1f8d5b,_0x56f30a,_0xcccfb0){var _0xfad34=this;return new Promise(function(_0x15427c,_0xaa338){var _0x510339={'body':_0x1f8d5b[_0x3e71('0x24')],'channel':_0x3e71('0x25')};var _0x20bfae=[];var _0x356eed=[];var _0xfaff23={};return db[_0x3e71('0x26')][_0x3e71('0x27')]()[_0x3e71('0x21')](function(_0xc6ef35){if(!_0xc6ef35){throw new db[(_0x3e71('0x28'))][(_0x3e71('0x29'))](_0x3e71('0x2a'));}_0x20bfae=_['difference'](_[_0x3e71('0x2b')](_0xc6ef35),[_0x3e71('0x2c'),_0x3e71('0x2d')]);_0x356eed=_[_0x3e71('0x2e')](_[_0x3e71('0x2b')](_0xc6ef35),[_0x3e71('0x2c'),'updatedAt','CompanyId',_0x3e71('0x2f')]);if(_0x1f8d5b[_0x3e71('0x24')]['id']){delete _0x1f8d5b[_0x3e71('0x24')]['id'];}if(_[_0x3e71('0x30')](_0x1f8d5b[_0x3e71('0x24')][_0x3e71('0x31')])){throw new db[(_0x3e71('0x28'))][(_0x3e71('0x29'))](_0x3e71('0x32'));}if(_[_0x3e71('0x30')](_0x1f8d5b['body']['body'])||_0x1f8d5b[_0x3e71('0x24')][_0x3e71('0x24')]===''){throw new db[(_0x3e71('0x28'))][(_0x3e71('0x29'))](_0x3e71('0x33'));}if(_[_0x3e71('0x30')](_0x1f8d5b[_0x3e71('0x24')][_0x3e71('0x34')])){throw new db[(_0x3e71('0x28'))][(_0x3e71('0x29'))](_0x3e71('0x35')+_0x356eed);}if(!_[_0x3e71('0x36')](_0x356eed,_0x1f8d5b[_0x3e71('0x24')][_0x3e71('0x34')])){throw new db[(_0x3e71('0x28'))]['ValidationError'](_0x3e71('0x37')+_0x356eed);}_0xfaff23[_0x1f8d5b[_0x3e71('0x24')][_0x3e71('0x34')]]=_0x1f8d5b[_0x3e71('0x24')]['from'];})[_0x3e71('0x21')](function(){return db[_0x3e71('0x1a')][_0x3e71('0x38')]({'where':{'id':_0x1f8d5b[_0x3e71('0x39')]['id']},'include':[{'model':db[_0x3e71('0x3a')],'as':'List','include':[{'model':db['CmContact'],'as':'Contacts','where':_0xfaff23,'limit':0x1,'order':[[_0x3e71('0x2d'),'DESC']]}]},{'model':db[_0x3e71('0x3b')],'as':_0x3e71('0x3c')}]});})['then'](function(_0x1265e5){if(_0x1265e5&&_0x1265e5['List']){var _0x24eef9=_0x1265e5[_0x3e71('0x3d')]({'plain':!![]});_0x510339['account']=_0x24eef9;_0x510339[_0x3e71('0x3e')]=_0x24eef9[_0x3e71('0x3c')];_0x510339['list']=_0x24eef9[_0x3e71('0x3f')];_0x510339[_0x3e71('0x3e')]=_[_0x3e71('0x40')](_0x510339[_0x3e71('0x3e')],['priority'],['asc']);if(_0x510339[_0x3e71('0x39')]['Applications']){delete _0x510339[_0x3e71('0x39')][_0x3e71('0x3c')];}if(_0x510339['account']['List']&&_0x510339[_0x3e71('0x39')][_0x3e71('0x3f')]['Contacts'][_0x3e71('0x41')]){return _0x510339[_0x3e71('0x39')][_0x3e71('0x3f')][_0x3e71('0x42')][0x0];}var _0x3bd3d0=_[_0x3e71('0xc')](_0x1f8d5b[_0x3e71('0x24')],{'firstName':_0x1f8d5b['body'][_0x3e71('0x31')],'ListId':_0x24eef9[_0x3e71('0x2f')]});_0x3bd3d0[_0x1f8d5b[_0x3e71('0x24')][_0x3e71('0x34')]]=_0x1f8d5b['body']['from'];return db[_0x3e71('0x26')][_0x3e71('0x43')](_0x3bd3d0,{'fields':_0x20bfae,'raw':!![]});}})['then'](function(_0x283bad){_0x510339[_0x3e71('0x44')]=_0x283bad;if(_0x283bad){var _0x17b936={'ContactId':_0x283bad['id'],'FaxAccountId':_0x1f8d5b[_0x3e71('0x39')]['id'],'fax':_0x283bad[_0x3e71('0x25')]};return db['FaxInteraction'][_0x3e71('0x38')]({'where':{'ContactId':_0x283bad['id'],'closed':![],'FaxAccountId':_0x1f8d5b['account']['id']}})[_0x3e71('0x21')](function(_0x2bbae7){if(_0x2bbae7){return[_0x2bbae7,![]];}return db[_0x3e71('0x45')]['create'](_0x17b936)['then'](function(_0x32d90d){return[_0x32d90d,!![]];});});}else{throw new Error('Contact\x20not\x20found');}})[_0x3e71('0x46')](function(_0x580aa8,_0x506121){var _0x2651c6=_0x580aa8[_0x3e71('0x3d')]({'plain':!![]});if(_0x506121){if(_0x510339['account'][_0x3e71('0x47')]){_0x510339[_0x3e71('0x3e')][_0x3e71('0x48')]({'id':0x0,'priority':_0x510339[_0x3e71('0x3e')][_0x3e71('0x41')]+0x1,'app':_0x3e71('0x49'),'appdata':_0x3e71('0x4a'),'interval':_0x3e71('0x4b')});}_0x2651c6[_0x3e71('0x4c')]=!![];}else{_0x2651c6[_0x3e71('0x4c')]=![];}_0x510339[_0x3e71('0x4d')]=_0x2651c6;return db[_0x3e71('0x4e')][_0x3e71('0x43')]({'body':_0x1f8d5b[_0x3e71('0x24')][_0x3e71('0x24')],'FaxAccountId':_0x1f8d5b['account']['id'],'FaxInteractionId':_0x580aa8['id'],'direction':'in','ContactId':_0x580aa8[_0x3e71('0x4f')],'AttachmentId':_0x1f8d5b[_0x3e71('0x24')][_0x3e71('0x50')]});})[_0x3e71('0x21')](function(_0x5f4587){_0x510339[_0x3e71('0x17')]=_0x5f4587;if(_0x510339[_0x3e71('0x4d')]['UserId']){return db['User'][_0x3e71('0x38')]({'attributes':['id','name'],'where':{'id':_0x510339[_0x3e71('0x4d')][_0x3e71('0x51')]}})[_0x3e71('0x21')](function(_0x11ecba){if(_0x11ecba){_0x510339['applications'][_0x3e71('0x52')]({'id':0x0,'priority':0x0,'app':_0x3e71('0x53'),'appdata':_0x11ecba[_0x3e71('0x54')]+','+(_0x510339[_0x3e71('0x39')][_0x3e71('0x55')]||0xa),'interval':_0x3e71('0x4b')});}return respondWithRpcPromise(_0x3e71('0x56'),'startRouting',_0x510339);});}return respondWithRpcPromise(_0x3e71('0x56'),_0x3e71('0x57'),_0x510339);})['then'](function(_0x33a2f8){_0x15427c(_0x33a2f8);})[_0x3e71('0x18')](function(_0x5c618f){_0xaa338(_0xfad34[_0x3e71('0x16')](0x1f4,_0x5c618f[_0x3e71('0x17')]));});});};