Built motion from commit 47436d59.|2.6.7
[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 _0x6370=['CmContact','describe','Sequelize','ValidationError','no\x20available\x20attributes','difference','keys','createdAt','updatedAt','CompanyId','ListId','isNil','from','from\x20is\x20mandatory','body\x20is\x20mandatory\x20and\x20not\x20empty','mapKey','mapKey\x20is\x20mandatory,\x20please\x20use\x20one\x20of\x20these:\x20','includes','find','List','Contacts','FaxApplication','Applications','applications','orderBy','priority','asc','account','length','create','contact','FaxInteraction','spread','get','autoclose','push','close','unmanaged','*,*,*,*','created','interaction','FaxMessage','ContactId','AttachmentId','UserId','User','name','unshift','agent','startRouting','lodash','util','moment','ioredis','../../config/logger','rpc','client','http','redis','defaults','localhost','socket.io-emitter','./faxAccount.socket','register','request','info','request\x20sent','FaxAccount,\x20%s,\x20%s,\x20%s','stringify','error','FaxAccount,\x20%s,\x20%s','message','result','catch','GetFaxAccount','FaxAccount','options','where','attributes','limit','include','map','model','then','debug','NotifyFaxAccount','body','fax'];(function(_0x23fb03,_0x435407){var _0x4649c2=function(_0x259513){while(--_0x259513){_0x23fb03['push'](_0x23fb03['shift']());}};_0x4649c2(++_0x435407);}(_0x6370,0xe2));var _0x0637=function(_0xb3e53,_0x2583db){_0xb3e53=_0xb3e53-0x0;var _0x385233=_0x6370[_0xb3e53];return _0x385233;};'use strict';var _=require(_0x0637('0x0'));var util=require(_0x0637('0x1'));var moment=require(_0x0637('0x2'));var BPromise=require('bluebird');var rs=require('randomstring');var fs=require('fs');var Redis=require(_0x0637('0x3'));var db=require('../../mysqldb')['db'];var utils=require('../../config/utils');var logger=require(_0x0637('0x4'))(_0x0637('0x5'));var config=require('../../config/environment');var jayson=require('jayson/promise');var client=jayson[_0x0637('0x6')][_0x0637('0x7')]({'port':0x232c});config[_0x0637('0x8')]=_[_0x0637('0x9')](config[_0x0637('0x8')],{'host':_0x0637('0xa'),'port':0x18eb});var socket=require(_0x0637('0xb'))(new Redis(config[_0x0637('0x8')]));require(_0x0637('0xc'))[_0x0637('0xd')](socket);function respondWithRpcPromise(_0x4d7685,_0x5390a7,_0x3ff91d){return new BPromise(function(_0x32abf5,_0x9b7ba5){return client[_0x0637('0xe')](_0x4d7685,_0x3ff91d)['then'](function(_0x5e5cee){logger[_0x0637('0xf')]('FaxAccount,\x20%s,\x20%s',_0x5390a7,_0x0637('0x10'));logger['debug'](_0x0637('0x11'),_0x5390a7,'request\x20sent',JSON[_0x0637('0x12')](_0x5e5cee));if(_0x5e5cee['error']){if(_0x5e5cee['error']['code']===0x1f4){logger[_0x0637('0x13')](_0x0637('0x14'),_0x5390a7,_0x5e5cee[_0x0637('0x13')][_0x0637('0x15')]);return _0x9b7ba5(_0x5e5cee['error'][_0x0637('0x15')]);}logger[_0x0637('0x13')](_0x0637('0x14'),_0x5390a7,_0x5e5cee[_0x0637('0x13')][_0x0637('0x15')]);return _0x32abf5(_0x5e5cee['error'][_0x0637('0x15')]);}else{logger[_0x0637('0xf')](_0x0637('0x14'),_0x5390a7,'request\x20sent');_0x32abf5(_0x5e5cee[_0x0637('0x16')][_0x0637('0x15')]);}})[_0x0637('0x17')](function(_0x30b2bf){logger['error'](_0x0637('0x14'),_0x5390a7,_0x30b2bf);_0x9b7ba5(_0x30b2bf);});});}exports[_0x0637('0x18')]=function(_0x151c6e){var _0xd18495=this;return new Promise(function(_0x2b60f8,_0xeec2a1){return db[_0x0637('0x19')]['findAll']({'raw':_0x151c6e[_0x0637('0x1a')]?_0x151c6e[_0x0637('0x1a')]['raw']===undefined?!![]:![]:!![],'where':_0x151c6e[_0x0637('0x1a')]?_0x151c6e[_0x0637('0x1a')][_0x0637('0x1b')]||null:null,'attributes':_0x151c6e[_0x0637('0x1a')]?_0x151c6e[_0x0637('0x1a')][_0x0637('0x1c')]||null:null,'limit':_0x151c6e[_0x0637('0x1a')]?_0x151c6e[_0x0637('0x1a')][_0x0637('0x1d')]||null:null,'include':_0x151c6e[_0x0637('0x1a')]?_0x151c6e['options'][_0x0637('0x1e')]?_[_0x0637('0x1f')](_0x151c6e[_0x0637('0x1a')][_0x0637('0x1e')],function(_0x4a1258){return{'model':db[_0x4a1258[_0x0637('0x20')]],'as':_0x4a1258['as'],'attributes':_0x4a1258[_0x0637('0x1c')],'include':_0x4a1258[_0x0637('0x1e')]?_[_0x0637('0x1f')](_0x4a1258[_0x0637('0x1e')],function(_0x134141){return{'model':db[_0x134141[_0x0637('0x20')]],'as':_0x134141['as'],'attributes':_0x134141[_0x0637('0x1c')],'include':_0x134141['include']?_[_0x0637('0x1f')](_0x134141['include'],function(_0x117fbc){return{'model':db[_0x117fbc[_0x0637('0x20')]],'as':_0x117fbc['as'],'attributes':_0x117fbc[_0x0637('0x1c')]};}):[]};}):[]};}):[]:[]})[_0x0637('0x21')](function(_0x357ce){logger['info'](_0x0637('0x18'),_0x151c6e);logger[_0x0637('0x22')](_0x0637('0x18'),_0x151c6e,JSON[_0x0637('0x12')](_0x357ce));_0x2b60f8(_0x357ce);})['catch'](function(_0x1b379f){logger[_0x0637('0x13')](_0x0637('0x18'),_0x1b379f[_0x0637('0x15')],_0x151c6e);_0xeec2a1(_0xd18495[_0x0637('0x13')](0x1f4,_0x1b379f[_0x0637('0x15')]));});});};exports[_0x0637('0x23')]=function(_0x35f6e6,_0x29a822,_0x43a9f7){var _0x16e0b4=this;return new Promise(function(_0x286e2a,_0x233e5c){var _0x5143da={'body':_0x35f6e6[_0x0637('0x24')],'channel':_0x0637('0x25')};var _0x16758e=[];var _0x242f51=[];var _0x30e343={};return db[_0x0637('0x26')][_0x0637('0x27')]()[_0x0637('0x21')](function(_0x1dc9bc){if(!_0x1dc9bc){throw new db[(_0x0637('0x28'))][(_0x0637('0x29'))](_0x0637('0x2a'));}_0x16758e=_[_0x0637('0x2b')](_[_0x0637('0x2c')](_0x1dc9bc),[_0x0637('0x2d'),'updatedAt']);_0x242f51=_[_0x0637('0x2b')](_[_0x0637('0x2c')](_0x1dc9bc),[_0x0637('0x2d'),_0x0637('0x2e'),_0x0637('0x2f'),_0x0637('0x30')]);if(_0x35f6e6['body']['id']){delete _0x35f6e6['body']['id'];}if(_[_0x0637('0x31')](_0x35f6e6[_0x0637('0x24')][_0x0637('0x32')])){throw new db['Sequelize']['ValidationError'](_0x0637('0x33'));}if(_['isNil'](_0x35f6e6[_0x0637('0x24')][_0x0637('0x24')])||_0x35f6e6[_0x0637('0x24')][_0x0637('0x24')]===''){throw new db[(_0x0637('0x28'))][(_0x0637('0x29'))](_0x0637('0x34'));}if(_[_0x0637('0x31')](_0x35f6e6[_0x0637('0x24')][_0x0637('0x35')])){throw new db[(_0x0637('0x28'))]['ValidationError'](_0x0637('0x36')+_0x242f51);}if(!_[_0x0637('0x37')](_0x242f51,_0x35f6e6[_0x0637('0x24')][_0x0637('0x35')])){throw new db[(_0x0637('0x28'))]['ValidationError']('mapKey\x20invalid,\x20please\x20use\x20one\x20of\x20these:\x20'+_0x242f51);}_0x30e343[_0x35f6e6[_0x0637('0x24')][_0x0637('0x35')]]=_0x35f6e6[_0x0637('0x24')][_0x0637('0x32')];})[_0x0637('0x21')](function(){return db['FaxAccount'][_0x0637('0x38')]({'where':{'id':_0x35f6e6['account']['id']},'include':[{'model':db['CmList'],'as':_0x0637('0x39'),'include':[{'model':db[_0x0637('0x26')],'as':_0x0637('0x3a'),'where':_0x30e343,'limit':0x1,'order':[[_0x0637('0x2e'),'DESC']]}]},{'model':db[_0x0637('0x3b')],'as':_0x0637('0x3c')}]});})[_0x0637('0x21')](function(_0x745bfd){if(_0x745bfd&&_0x745bfd[_0x0637('0x39')]){var _0x1e19ca=_0x745bfd['get']({'plain':!![]});_0x5143da['account']=_0x1e19ca;_0x5143da[_0x0637('0x3d')]=_0x1e19ca['Applications'];_0x5143da['list']=_0x1e19ca[_0x0637('0x39')];_0x5143da[_0x0637('0x3d')]=_[_0x0637('0x3e')](_0x5143da[_0x0637('0x3d')],[_0x0637('0x3f')],[_0x0637('0x40')]);if(_0x5143da[_0x0637('0x41')][_0x0637('0x3c')]){delete _0x5143da[_0x0637('0x41')][_0x0637('0x3c')];}if(_0x5143da[_0x0637('0x41')][_0x0637('0x39')]&&_0x5143da[_0x0637('0x41')][_0x0637('0x39')]['Contacts'][_0x0637('0x42')]){return _0x5143da['account'][_0x0637('0x39')]['Contacts'][0x0];}var _0x255141=_[_0x0637('0x9')](_0x35f6e6[_0x0637('0x24')],{'firstName':_0x35f6e6[_0x0637('0x24')][_0x0637('0x32')],'ListId':_0x1e19ca[_0x0637('0x30')]});_0x255141[_0x35f6e6[_0x0637('0x24')]['mapKey']]=_0x35f6e6['body']['from'];return db[_0x0637('0x26')][_0x0637('0x43')](_0x255141,{'fields':_0x16758e,'raw':!![]});}})[_0x0637('0x21')](function(_0x1f2e49){_0x5143da[_0x0637('0x44')]=_0x1f2e49;if(_0x1f2e49){var _0x56a74b={'ContactId':_0x1f2e49['id'],'FaxAccountId':_0x35f6e6[_0x0637('0x41')]['id'],'fax':_0x1f2e49[_0x0637('0x25')]};return db[_0x0637('0x45')][_0x0637('0x38')]({'where':{'ContactId':_0x1f2e49['id'],'closed':![],'FaxAccountId':_0x35f6e6[_0x0637('0x41')]['id']}})[_0x0637('0x21')](function(_0x19c2cd){if(_0x19c2cd){return[_0x19c2cd,![]];}return db[_0x0637('0x45')][_0x0637('0x43')](_0x56a74b)[_0x0637('0x21')](function(_0x1b4272){return[_0x1b4272,!![]];});});}else{throw new Error('Contact\x20not\x20found');}})[_0x0637('0x46')](function(_0xa3b5bb,_0x5c5d69){var _0x7cae17=_0xa3b5bb[_0x0637('0x47')]({'plain':!![]});if(_0x5c5d69){if(_0x5143da[_0x0637('0x41')][_0x0637('0x48')]){_0x5143da[_0x0637('0x3d')][_0x0637('0x49')]({'id':0x0,'priority':_0x5143da[_0x0637('0x3d')]['length']+0x1,'app':_0x0637('0x4a'),'appdata':_0x0637('0x4b'),'interval':_0x0637('0x4c')});}_0x7cae17[_0x0637('0x4d')]=!![];}else{_0x7cae17['created']=![];}_0x5143da[_0x0637('0x4e')]=_0x7cae17;return db[_0x0637('0x4f')][_0x0637('0x43')]({'body':_0x35f6e6[_0x0637('0x24')][_0x0637('0x24')],'FaxAccountId':_0x35f6e6[_0x0637('0x41')]['id'],'FaxInteractionId':_0xa3b5bb['id'],'direction':'in','ContactId':_0xa3b5bb[_0x0637('0x50')],'AttachmentId':_0x35f6e6[_0x0637('0x24')][_0x0637('0x51')]});})['then'](function(_0x14faa2){_0x5143da['message']=_0x14faa2;if(_0x5143da['interaction'][_0x0637('0x52')]){return db[_0x0637('0x53')][_0x0637('0x38')]({'attributes':['id',_0x0637('0x54')],'where':{'id':_0x5143da[_0x0637('0x4e')][_0x0637('0x52')]}})['then'](function(_0x568e78){if(_0x568e78){_0x5143da[_0x0637('0x3d')][_0x0637('0x55')]({'id':0x0,'priority':0x0,'app':_0x0637('0x56'),'appdata':_0x568e78[_0x0637('0x54')]+','+(_0x5143da[_0x0637('0x41')]['waitForTheAssignedAgent']||0xa),'interval':_0x0637('0x4c')});}return respondWithRpcPromise('Start',_0x0637('0x57'),_0x5143da);});}return respondWithRpcPromise('Start',_0x0637('0x57'),_0x5143da);})['then'](function(_0x131e91){_0x286e2a(_0x131e91);})['catch'](function(_0x24ff07){_0x233e5c(_0x16e0b4[_0x0637('0x13')](0x1f4,_0x24ff07[_0x0637('0x15')]));});});};