9ea44514c31334ab8a0fc95e455a685f5393540a
[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 _0xfbe7=['include','map','model','NotifyFaxAccount','body','describe','Sequelize','ValidationError','no\x20available\x20attributes','keys','difference','createdAt','updatedAt','CompanyId','ListId','isNil','from','from\x20is\x20mandatory','mapKey','mapKey\x20is\x20mandatory,\x20please\x20use\x20one\x20of\x20these:\x20','find','account','CmList','List','Contacts','DESC','FaxApplication','Applications','applications','list','orderBy','asc','length','CmContact','create','contact','fax','Contact\x20not\x20found','get','autoclose','push','close','*,*,*,*','created','interaction','FaxMessage','ContactId','AttachmentId','UserId','User','name','unshift','agent','Start','startRouting','lodash','util','bluebird','randomstring','ioredis','../../config/utils','../../config/logger','jayson/promise','client','redis','defaults','localhost','socket.io-emitter','register','request','then','info','debug','request\x20sent','stringify','error','FaxAccount,\x20%s,\x20%s','message','catch','GetFaxAccount','findAll','options','raw','where','attributes','limit'];(function(_0x3dd15e,_0x1f0015){var _0x231fd0=function(_0x4f680a){while(--_0x4f680a){_0x3dd15e['push'](_0x3dd15e['shift']());}};_0x231fd0(++_0x1f0015);}(_0xfbe7,0x18f));var _0x7fbe=function(_0x1be9ce,_0x27443d){_0x1be9ce=_0x1be9ce-0x0;var _0x164439=_0xfbe7[_0x1be9ce];return _0x164439;};'use strict';var _=require(_0x7fbe('0x0'));var util=require(_0x7fbe('0x1'));var moment=require('moment');var BPromise=require(_0x7fbe('0x2'));var rs=require(_0x7fbe('0x3'));var fs=require('fs');var Redis=require(_0x7fbe('0x4'));var db=require('../../mysqldb')['db'];var utils=require(_0x7fbe('0x5'));var logger=require(_0x7fbe('0x6'))('rpc');var config=require('../../config/environment');var jayson=require(_0x7fbe('0x7'));var client=jayson[_0x7fbe('0x8')]['http']({'port':0x232c});config[_0x7fbe('0x9')]=_[_0x7fbe('0xa')](config['redis'],{'host':_0x7fbe('0xb'),'port':0x18eb});var socket=require(_0x7fbe('0xc'))(new Redis(config[_0x7fbe('0x9')]));require('./faxAccount.socket')[_0x7fbe('0xd')](socket);function respondWithRpcPromise(_0x3ce997,_0x230938,_0x1678b2){return new BPromise(function(_0x38d9d1,_0x19f23b){return client[_0x7fbe('0xe')](_0x3ce997,_0x1678b2)[_0x7fbe('0xf')](function(_0x336fee){logger[_0x7fbe('0x10')]('FaxAccount,\x20%s,\x20%s',_0x230938,'request\x20sent');logger[_0x7fbe('0x11')]('FaxAccount,\x20%s,\x20%s,\x20%s',_0x230938,_0x7fbe('0x12'),JSON[_0x7fbe('0x13')](_0x336fee));if(_0x336fee[_0x7fbe('0x14')]){if(_0x336fee[_0x7fbe('0x14')]['code']===0x1f4){logger[_0x7fbe('0x14')](_0x7fbe('0x15'),_0x230938,_0x336fee['error'][_0x7fbe('0x16')]);return _0x19f23b(_0x336fee[_0x7fbe('0x14')][_0x7fbe('0x16')]);}logger['error']('FaxAccount,\x20%s,\x20%s',_0x230938,_0x336fee[_0x7fbe('0x14')][_0x7fbe('0x16')]);return _0x38d9d1(_0x336fee[_0x7fbe('0x14')][_0x7fbe('0x16')]);}else{logger['info']('FaxAccount,\x20%s,\x20%s',_0x230938,_0x7fbe('0x12'));_0x38d9d1(_0x336fee['result'][_0x7fbe('0x16')]);}})[_0x7fbe('0x17')](function(_0x49fa6f){logger['error'](_0x7fbe('0x15'),_0x230938,_0x49fa6f);_0x19f23b(_0x49fa6f);});});}exports[_0x7fbe('0x18')]=function(_0x2bb230){var _0x247f2b=this;return new Promise(function(_0x207362,_0x890282){return db['FaxAccount'][_0x7fbe('0x19')]({'raw':_0x2bb230['options']?_0x2bb230[_0x7fbe('0x1a')][_0x7fbe('0x1b')]===undefined?!![]:![]:!![],'where':_0x2bb230['options']?_0x2bb230['options'][_0x7fbe('0x1c')]||null:null,'attributes':_0x2bb230[_0x7fbe('0x1a')]?_0x2bb230[_0x7fbe('0x1a')][_0x7fbe('0x1d')]||null:null,'limit':_0x2bb230[_0x7fbe('0x1a')]?_0x2bb230[_0x7fbe('0x1a')][_0x7fbe('0x1e')]||null:null,'include':_0x2bb230['options']?_0x2bb230[_0x7fbe('0x1a')][_0x7fbe('0x1f')]?_[_0x7fbe('0x20')](_0x2bb230['options'][_0x7fbe('0x1f')],function(_0x386c33){return{'model':db[_0x386c33[_0x7fbe('0x21')]],'as':_0x386c33['as'],'attributes':_0x386c33[_0x7fbe('0x1d')],'include':_0x386c33[_0x7fbe('0x1f')]?_[_0x7fbe('0x20')](_0x386c33[_0x7fbe('0x1f')],function(_0x491f43){return{'model':db[_0x491f43['model']],'as':_0x491f43['as'],'attributes':_0x491f43[_0x7fbe('0x1d')],'include':_0x491f43['include']?_['map'](_0x491f43[_0x7fbe('0x1f')],function(_0x5ae651){return{'model':db[_0x5ae651[_0x7fbe('0x21')]],'as':_0x5ae651['as'],'attributes':_0x5ae651[_0x7fbe('0x1d')]};}):[]};}):[]};}):[]:[]})['then'](function(_0x5e7247){logger[_0x7fbe('0x10')](_0x7fbe('0x18'),_0x2bb230);logger[_0x7fbe('0x11')]('GetFaxAccount',_0x2bb230,JSON['stringify'](_0x5e7247));_0x207362(_0x5e7247);})[_0x7fbe('0x17')](function(_0xbed0cb){logger[_0x7fbe('0x14')]('GetFaxAccount',_0xbed0cb['message'],_0x2bb230);_0x890282(_0x247f2b[_0x7fbe('0x14')](0x1f4,_0xbed0cb[_0x7fbe('0x16')]));});});};exports[_0x7fbe('0x22')]=function(_0x772a,_0x2accc3,_0x5e6608){var _0x2266e6=this;return new Promise(function(_0x3ffb3a,_0x259375){var _0x447b22={'body':_0x772a[_0x7fbe('0x23')],'channel':'fax'};var _0x19b156=[];var _0x30c6c6=[];var _0x1f1ea2={};return db['CmContact'][_0x7fbe('0x24')]()[_0x7fbe('0xf')](function(_0x249f1d){if(!_0x249f1d){throw new db[(_0x7fbe('0x25'))][(_0x7fbe('0x26'))](_0x7fbe('0x27'));}_0x19b156=_['difference'](_[_0x7fbe('0x28')](_0x249f1d),['createdAt','updatedAt']);_0x30c6c6=_[_0x7fbe('0x29')](_[_0x7fbe('0x28')](_0x249f1d),[_0x7fbe('0x2a'),_0x7fbe('0x2b'),_0x7fbe('0x2c'),_0x7fbe('0x2d')]);if(_0x772a[_0x7fbe('0x23')]['id']){delete _0x772a[_0x7fbe('0x23')]['id'];}if(_[_0x7fbe('0x2e')](_0x772a[_0x7fbe('0x23')][_0x7fbe('0x2f')])){throw new db[(_0x7fbe('0x25'))][(_0x7fbe('0x26'))](_0x7fbe('0x30'));}if(_[_0x7fbe('0x2e')](_0x772a[_0x7fbe('0x23')][_0x7fbe('0x23')])||_0x772a[_0x7fbe('0x23')]['body']===''){throw new db[(_0x7fbe('0x25'))][(_0x7fbe('0x26'))]('body\x20is\x20mandatory\x20and\x20not\x20empty');}if(_[_0x7fbe('0x2e')](_0x772a['body'][_0x7fbe('0x31')])){throw new db[(_0x7fbe('0x25'))][(_0x7fbe('0x26'))](_0x7fbe('0x32')+_0x30c6c6);}if(!_['includes'](_0x30c6c6,_0x772a[_0x7fbe('0x23')][_0x7fbe('0x31')])){throw new db[(_0x7fbe('0x25'))]['ValidationError']('mapKey\x20invalid,\x20please\x20use\x20one\x20of\x20these:\x20'+_0x30c6c6);}_0x1f1ea2[_0x772a[_0x7fbe('0x23')][_0x7fbe('0x31')]]=_0x772a[_0x7fbe('0x23')][_0x7fbe('0x2f')];})[_0x7fbe('0xf')](function(){return db['FaxAccount'][_0x7fbe('0x33')]({'where':{'id':_0x772a[_0x7fbe('0x34')]['id']},'include':[{'model':db[_0x7fbe('0x35')],'as':_0x7fbe('0x36'),'include':[{'model':db['CmContact'],'as':_0x7fbe('0x37'),'where':_0x1f1ea2,'limit':0x1,'order':[[_0x7fbe('0x2b'),_0x7fbe('0x38')]]}]},{'model':db[_0x7fbe('0x39')],'as':_0x7fbe('0x3a')}]});})['then'](function(_0x2db684){if(_0x2db684&&_0x2db684[_0x7fbe('0x36')]){var _0x3185f8=_0x2db684['get']({'plain':!![]});_0x447b22['account']=_0x3185f8;_0x447b22[_0x7fbe('0x3b')]=_0x3185f8[_0x7fbe('0x3a')];_0x447b22[_0x7fbe('0x3c')]=_0x3185f8[_0x7fbe('0x36')];_0x447b22[_0x7fbe('0x3b')]=_[_0x7fbe('0x3d')](_0x447b22['applications'],['priority'],[_0x7fbe('0x3e')]);if(_0x447b22['account']['Applications']){delete _0x447b22[_0x7fbe('0x34')][_0x7fbe('0x3a')];}if(_0x447b22[_0x7fbe('0x34')]['List']&&_0x447b22['account']['List'][_0x7fbe('0x37')][_0x7fbe('0x3f')]){return _0x447b22['account']['List'][_0x7fbe('0x37')][0x0];}var _0x146989=_[_0x7fbe('0xa')](_0x772a[_0x7fbe('0x23')],{'firstName':_0x772a['body'][_0x7fbe('0x2f')],'ListId':_0x3185f8[_0x7fbe('0x2d')]});_0x146989[_0x772a[_0x7fbe('0x23')]['mapKey']]=_0x772a[_0x7fbe('0x23')][_0x7fbe('0x2f')];return db[_0x7fbe('0x40')][_0x7fbe('0x41')](_0x146989,{'fields':_0x19b156,'raw':!![]});}})[_0x7fbe('0xf')](function(_0x40bb89){_0x447b22[_0x7fbe('0x42')]=_0x40bb89;if(_0x40bb89){var _0x357225={'ContactId':_0x40bb89['id'],'FaxAccountId':_0x772a['account']['id'],'fax':_0x40bb89[_0x7fbe('0x43')]};return db['FaxInteraction'][_0x7fbe('0x33')]({'where':{'ContactId':_0x40bb89['id'],'closed':![],'FaxAccountId':_0x772a[_0x7fbe('0x34')]['id']}})[_0x7fbe('0xf')](function(_0x244f29){if(_0x244f29){return[_0x244f29,![]];}return db['FaxInteraction'][_0x7fbe('0x41')](_0x357225)[_0x7fbe('0xf')](function(_0x57c6bb){return[_0x57c6bb,!![]];});});}else{throw new Error(_0x7fbe('0x44'));}})['spread'](function(_0x119955,_0x4482d6){var _0x523499=_0x119955[_0x7fbe('0x45')]({'plain':!![]});if(_0x4482d6){if(_0x447b22[_0x7fbe('0x34')][_0x7fbe('0x46')]){_0x447b22['applications'][_0x7fbe('0x47')]({'id':0x0,'priority':_0x447b22[_0x7fbe('0x3b')][_0x7fbe('0x3f')]+0x1,'app':_0x7fbe('0x48'),'appdata':'unmanaged','interval':_0x7fbe('0x49')});}_0x523499[_0x7fbe('0x4a')]=!![];}else{_0x523499[_0x7fbe('0x4a')]=![];}_0x447b22[_0x7fbe('0x4b')]=_0x523499;return db[_0x7fbe('0x4c')][_0x7fbe('0x41')]({'body':_0x772a[_0x7fbe('0x23')][_0x7fbe('0x23')],'FaxAccountId':_0x772a['account']['id'],'FaxInteractionId':_0x119955['id'],'direction':'in','ContactId':_0x119955[_0x7fbe('0x4d')],'AttachmentId':_0x772a['body'][_0x7fbe('0x4e')]});})[_0x7fbe('0xf')](function(_0x4b6d21){_0x447b22[_0x7fbe('0x16')]=_0x4b6d21;if(_0x447b22[_0x7fbe('0x4b')][_0x7fbe('0x4f')]){return db[_0x7fbe('0x50')]['find']({'attributes':['id',_0x7fbe('0x51')],'where':{'id':_0x447b22[_0x7fbe('0x4b')][_0x7fbe('0x4f')]}})[_0x7fbe('0xf')](function(_0x2631b5){if(_0x2631b5){_0x447b22['applications'][_0x7fbe('0x52')]({'id':0x0,'priority':0x0,'app':_0x7fbe('0x53'),'appdata':_0x2631b5[_0x7fbe('0x51')]+','+(_0x447b22[_0x7fbe('0x34')]['waitForTheAssignedAgent']||0xa),'interval':_0x7fbe('0x49')});}return respondWithRpcPromise(_0x7fbe('0x54'),_0x7fbe('0x55'),_0x447b22);});}return respondWithRpcPromise(_0x7fbe('0x54'),_0x7fbe('0x55'),_0x447b22);})[_0x7fbe('0xf')](function(_0x5ba3b0){_0x3ffb3a(_0x5ba3b0);})[_0x7fbe('0x17')](function(_0x2c21ad){_0x259375(_0x2266e6['error'](0x1f4,_0x2c21ad[_0x7fbe('0x16')]));});});};