672e97883c7becaf8d9625949124adb7ebb0f92e
[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 _0xb3f6=['interaction','FaxMessage','ContactId','AttachmentId','User','name','UserId','unshift','agent','*,*,*,*','queueId','queue','waitForTheAssignedQueue','Start','startRouting','lodash','moment','randomstring','ioredis','../../mysqldb','../../config/utils','../../config/logger','rpc','../../config/environment','client','http','redis','localhost','socket.io-emitter','register','request','then','FaxAccount,\x20%s,\x20%s','FaxAccount,\x20%s,\x20%s,\x20%s','stringify','error','code','message','info','request\x20sent','result','FaxAccount','findAll','options','raw','where','attributes','limit','map','include','model','GetFaxAccount','catch','NotifyFaxAccount','body','describe','Sequelize','ValidationError','no\x20available\x20attributes','difference','keys','createdAt','ListId','isNil','from','from\x20is\x20mandatory','body\x20is\x20mandatory\x20and\x20not\x20empty','includes','mapKey','find','account','CmList','List','CmContact','Contacts','updatedAt','DESC','FaxApplication','Applications','get','applications','orderBy','length','defaults','create','contact','fax','FaxInteraction','Contact\x20not\x20found','autoclose','push','unmanaged','created'];(function(_0x5ce664,_0x37cb71){var _0x8808c3=function(_0x57ba8c){while(--_0x57ba8c){_0x5ce664['push'](_0x5ce664['shift']());}};_0x8808c3(++_0x37cb71);}(_0xb3f6,0x6c));var _0x6b3f=function(_0x8c7a09,_0x205109){_0x8c7a09=_0x8c7a09-0x0;var _0x448d3c=_0xb3f6[_0x8c7a09];return _0x448d3c;};'use strict';var _=require(_0x6b3f('0x0'));var util=require('util');var moment=require(_0x6b3f('0x1'));var BPromise=require('bluebird');var rs=require(_0x6b3f('0x2'));var fs=require('fs');var Redis=require(_0x6b3f('0x3'));var db=require(_0x6b3f('0x4'))['db'];var utils=require(_0x6b3f('0x5'));var logger=require(_0x6b3f('0x6'))(_0x6b3f('0x7'));var config=require(_0x6b3f('0x8'));var jayson=require('jayson/promise');var client=jayson[_0x6b3f('0x9')][_0x6b3f('0xa')]({'port':0x232c});config['redis']=_['defaults'](config[_0x6b3f('0xb')],{'host':_0x6b3f('0xc'),'port':0x18eb});var socket=require(_0x6b3f('0xd'))(new Redis(config['redis']));require('./faxAccount.socket')[_0x6b3f('0xe')](socket);function respondWithRpcPromise(_0x348739,_0x59a831,_0x551285){return new BPromise(function(_0x23e2a6,_0x581493){return client[_0x6b3f('0xf')](_0x348739,_0x551285)[_0x6b3f('0x10')](function(_0x1d83c6){logger['info'](_0x6b3f('0x11'),_0x59a831,'request\x20sent');logger['debug'](_0x6b3f('0x12'),_0x59a831,'request\x20sent',JSON[_0x6b3f('0x13')](_0x1d83c6));if(_0x1d83c6[_0x6b3f('0x14')]){if(_0x1d83c6[_0x6b3f('0x14')][_0x6b3f('0x15')]===0x1f4){logger[_0x6b3f('0x14')](_0x6b3f('0x11'),_0x59a831,_0x1d83c6[_0x6b3f('0x14')][_0x6b3f('0x16')]);return _0x581493(_0x1d83c6[_0x6b3f('0x14')]['message']);}logger[_0x6b3f('0x14')]('FaxAccount,\x20%s,\x20%s',_0x59a831,_0x1d83c6[_0x6b3f('0x14')][_0x6b3f('0x16')]);return _0x23e2a6(_0x1d83c6['error']['message']);}else{logger[_0x6b3f('0x17')]('FaxAccount,\x20%s,\x20%s',_0x59a831,_0x6b3f('0x18'));_0x23e2a6(_0x1d83c6[_0x6b3f('0x19')][_0x6b3f('0x16')]);}})['catch'](function(_0x343ac2){logger['error']('FaxAccount,\x20%s,\x20%s',_0x59a831,_0x343ac2);_0x581493(_0x343ac2);});});}exports['GetFaxAccount']=function(_0x499ad9){var _0x2fa35e=this;return new Promise(function(_0x1563e3,_0x3a477f){return db[_0x6b3f('0x1a')][_0x6b3f('0x1b')]({'raw':_0x499ad9['options']?_0x499ad9[_0x6b3f('0x1c')][_0x6b3f('0x1d')]===undefined?!![]:![]:!![],'where':_0x499ad9[_0x6b3f('0x1c')]?_0x499ad9[_0x6b3f('0x1c')][_0x6b3f('0x1e')]||null:null,'attributes':_0x499ad9[_0x6b3f('0x1c')]?_0x499ad9[_0x6b3f('0x1c')][_0x6b3f('0x1f')]||null:null,'limit':_0x499ad9[_0x6b3f('0x1c')]?_0x499ad9[_0x6b3f('0x1c')][_0x6b3f('0x20')]||null:null,'include':_0x499ad9[_0x6b3f('0x1c')]?_0x499ad9[_0x6b3f('0x1c')]['include']?_[_0x6b3f('0x21')](_0x499ad9[_0x6b3f('0x1c')][_0x6b3f('0x22')],function(_0x176067){return{'model':db[_0x176067[_0x6b3f('0x23')]],'as':_0x176067['as'],'attributes':_0x176067[_0x6b3f('0x1f')],'include':_0x176067[_0x6b3f('0x22')]?_['map'](_0x176067[_0x6b3f('0x22')],function(_0x496553){return{'model':db[_0x496553[_0x6b3f('0x23')]],'as':_0x496553['as'],'attributes':_0x496553[_0x6b3f('0x1f')],'include':_0x496553['include']?_[_0x6b3f('0x21')](_0x496553[_0x6b3f('0x22')],function(_0x22285c){return{'model':db[_0x22285c[_0x6b3f('0x23')]],'as':_0x22285c['as'],'attributes':_0x22285c[_0x6b3f('0x1f')]};}):[]};}):[]};}):[]:[]})[_0x6b3f('0x10')](function(_0x593814){logger[_0x6b3f('0x17')]('GetFaxAccount',_0x499ad9);logger['debug'](_0x6b3f('0x24'),_0x499ad9,JSON[_0x6b3f('0x13')](_0x593814));_0x1563e3(_0x593814);})[_0x6b3f('0x25')](function(_0x1a670d){logger[_0x6b3f('0x14')]('GetFaxAccount',_0x1a670d[_0x6b3f('0x16')],_0x499ad9);_0x3a477f(_0x2fa35e['error'](0x1f4,_0x1a670d[_0x6b3f('0x16')]));});});};exports[_0x6b3f('0x26')]=function(_0xf7feaa,_0x5a6131,_0x1e907c){var _0xe4a135=this;return new Promise(function(_0x2a28bc,_0x467af8){var _0x547b38={'body':_0xf7feaa[_0x6b3f('0x27')],'channel':'fax'};var _0x399f87=[];var _0x1b2aa6=[];var _0x578c7c={};return db['CmContact'][_0x6b3f('0x28')]()['then'](function(_0x724078){if(!_0x724078){throw new db[(_0x6b3f('0x29'))][(_0x6b3f('0x2a'))](_0x6b3f('0x2b'));}_0x399f87=_[_0x6b3f('0x2c')](_['keys'](_0x724078),['createdAt','updatedAt']);_0x1b2aa6=_[_0x6b3f('0x2c')](_[_0x6b3f('0x2d')](_0x724078),[_0x6b3f('0x2e'),'updatedAt','CompanyId',_0x6b3f('0x2f')]);if(_0xf7feaa['body']['id']){delete _0xf7feaa[_0x6b3f('0x27')]['id'];}if(_[_0x6b3f('0x30')](_0xf7feaa[_0x6b3f('0x27')][_0x6b3f('0x31')])){throw new db[(_0x6b3f('0x29'))][(_0x6b3f('0x2a'))](_0x6b3f('0x32'));}if(_['isNil'](_0xf7feaa[_0x6b3f('0x27')][_0x6b3f('0x27')])||_0xf7feaa[_0x6b3f('0x27')][_0x6b3f('0x27')]===''){throw new db[(_0x6b3f('0x29'))][(_0x6b3f('0x2a'))](_0x6b3f('0x33'));}if(_[_0x6b3f('0x30')](_0xf7feaa[_0x6b3f('0x27')]['mapKey'])){throw new db[(_0x6b3f('0x29'))][(_0x6b3f('0x2a'))]('mapKey\x20is\x20mandatory,\x20please\x20use\x20one\x20of\x20these:\x20'+_0x1b2aa6);}if(!_[_0x6b3f('0x34')](_0x1b2aa6,_0xf7feaa[_0x6b3f('0x27')][_0x6b3f('0x35')])){throw new db[(_0x6b3f('0x29'))][(_0x6b3f('0x2a'))]('mapKey\x20invalid,\x20please\x20use\x20one\x20of\x20these:\x20'+_0x1b2aa6);}_0x578c7c[_0xf7feaa['body'][_0x6b3f('0x35')]]=_0xf7feaa[_0x6b3f('0x27')][_0x6b3f('0x31')];})[_0x6b3f('0x10')](function(){return db[_0x6b3f('0x1a')][_0x6b3f('0x36')]({'where':{'id':_0xf7feaa[_0x6b3f('0x37')]['id']},'include':[{'model':db[_0x6b3f('0x38')],'as':_0x6b3f('0x39'),'include':[{'model':db[_0x6b3f('0x3a')],'as':_0x6b3f('0x3b'),'where':_0x578c7c,'limit':0x1,'order':[[_0x6b3f('0x3c'),_0x6b3f('0x3d')]]}]},{'model':db[_0x6b3f('0x3e')],'as':_0x6b3f('0x3f')}]});})[_0x6b3f('0x10')](function(_0x5db221){if(_0x5db221&&_0x5db221[_0x6b3f('0x39')]){var _0x4a714a=_0x5db221[_0x6b3f('0x40')]({'plain':!![]});_0x547b38['account']=_0x4a714a;_0x547b38[_0x6b3f('0x41')]=_0x4a714a[_0x6b3f('0x3f')];_0x547b38['list']=_0x4a714a[_0x6b3f('0x39')];_0x547b38[_0x6b3f('0x41')]=_[_0x6b3f('0x42')](_0x547b38[_0x6b3f('0x41')],['priority'],['asc']);if(_0x547b38[_0x6b3f('0x37')][_0x6b3f('0x3f')]){delete _0x547b38['account'][_0x6b3f('0x3f')];}if(_0x547b38[_0x6b3f('0x37')][_0x6b3f('0x39')]&&_0x547b38[_0x6b3f('0x37')][_0x6b3f('0x39')][_0x6b3f('0x3b')][_0x6b3f('0x43')]){return _0x547b38[_0x6b3f('0x37')][_0x6b3f('0x39')]['Contacts'][0x0];}var _0x11b911=_[_0x6b3f('0x44')](_0xf7feaa[_0x6b3f('0x27')],{'firstName':_0xf7feaa['body'][_0x6b3f('0x31')],'ListId':_0x4a714a[_0x6b3f('0x2f')]});_0x11b911[_0xf7feaa['body'][_0x6b3f('0x35')]]=_0xf7feaa['body']['from'];return db[_0x6b3f('0x3a')][_0x6b3f('0x45')](_0x11b911,{'fields':_0x399f87,'raw':!![]});}})[_0x6b3f('0x10')](function(_0x4d2cf6){_0x547b38[_0x6b3f('0x46')]=_0x4d2cf6;if(_0x4d2cf6){var _0x4dcc63={'ContactId':_0x4d2cf6['id'],'FaxAccountId':_0xf7feaa[_0x6b3f('0x37')]['id'],'fax':_0x4d2cf6[_0x6b3f('0x47')]};return db[_0x6b3f('0x48')][_0x6b3f('0x36')]({'where':{'ContactId':_0x4d2cf6['id'],'closed':![],'FaxAccountId':_0xf7feaa[_0x6b3f('0x37')]['id']}})[_0x6b3f('0x10')](function(_0x507c54){if(_0x507c54){return[_0x507c54,![]];}return db['FaxInteraction']['create'](_0x4dcc63)[_0x6b3f('0x10')](function(_0x38daed){return[_0x38daed,!![]];});});}else{throw new Error(_0x6b3f('0x49'));}})['spread'](function(_0x358089,_0x5124ee){var _0x3715ec=_0x358089[_0x6b3f('0x40')]({'plain':!![]});if(_0x5124ee){if(_0x547b38[_0x6b3f('0x37')][_0x6b3f('0x4a')]){_0x547b38[_0x6b3f('0x41')][_0x6b3f('0x4b')]({'id':0x0,'priority':_0x547b38[_0x6b3f('0x41')]['length']+0x1,'app':'close','appdata':_0x6b3f('0x4c'),'interval':'*,*,*,*'});}_0x3715ec[_0x6b3f('0x4d')]=!![];}else{_0x3715ec[_0x6b3f('0x4d')]=![];}_0x547b38[_0x6b3f('0x4e')]=_0x3715ec;return db[_0x6b3f('0x4f')]['create']({'body':_0xf7feaa[_0x6b3f('0x27')][_0x6b3f('0x27')],'FaxAccountId':_0xf7feaa[_0x6b3f('0x37')]['id'],'FaxInteractionId':_0x358089['id'],'direction':'in','ContactId':_0x358089[_0x6b3f('0x50')],'AttachmentId':_0xf7feaa[_0x6b3f('0x27')][_0x6b3f('0x51')]});})[_0x6b3f('0x10')](function(_0x34e717){_0x547b38[_0x6b3f('0x16')]=_0x34e717;if(!_0x547b38[_0x6b3f('0x4e')]['UserId'])return;return db[_0x6b3f('0x52')][_0x6b3f('0x36')]({'attributes':['id',_0x6b3f('0x53')],'where':{'id':_0x547b38[_0x6b3f('0x4e')][_0x6b3f('0x54')]}});})[_0x6b3f('0x10')](function(_0x43c70f){if(_0x43c70f){_0x547b38[_0x6b3f('0x41')][_0x6b3f('0x55')]({'id':0x0,'priority':0x0,'app':_0x6b3f('0x56'),'appdata':_0x43c70f[_0x6b3f('0x53')]+','+(_0x547b38[_0x6b3f('0x37')]['waitForTheAssignedAgent']||0xa),'interval':_0x6b3f('0x57')});}if(!_0x547b38['interaction'][_0x6b3f('0x58')])return;return db['FaxQueue'][_0x6b3f('0x36')]({'attributes':['id',_0x6b3f('0x53')],'where':{'id':_0x547b38['interaction'][_0x6b3f('0x58')]}});})[_0x6b3f('0x10')](function(_0x502184){if(_0x502184){_0x547b38['applications']['unshift']({'id':0x0,'priority':0x1,'app':_0x6b3f('0x59'),'appdata':_0x502184[_0x6b3f('0x53')]+','+(_0x547b38['account'][_0x6b3f('0x5a')]||0x12c),'interval':_0x6b3f('0x57')});}return respondWithRpcPromise(_0x6b3f('0x5b'),_0x6b3f('0x5c'),_0x547b38);})['then'](function(_0x5759ad){_0x2a28bc(_0x5759ad);})[_0x6b3f('0x25')](function(_0x304b65){_0x467af8(_0xe4a135['error'](0x1f4,_0x304b65[_0x6b3f('0x16')]));});});};