10f4d73f5db83ed3571c0eb26bfb8a785a2f2337
[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 _0x5d5a=['mapKey','mapKey\x20invalid,\x20please\x20use\x20one\x20of\x20these:\x20','find','account','CmList','List','Contacts','DESC','FaxApplication','Applications','get','applications','list','orderBy','length','create','contact','FaxInteraction','Contact\x20not\x20found','spread','push','unmanaged','*,*,*,*','created','AttachmentId','name','interaction','UserId','unshift','agent','waitForTheAssignedAgent','queueId','waitForTheAssignedQueue','startRouting','lodash','util','moment','bluebird','ioredis','../../mysqldb','../../config/utils','../../config/logger','rpc','../../config/environment','jayson/promise','http','redis','defaults','localhost','socket.io-emitter','./faxAccount.socket','register','then','FaxAccount,\x20%s,\x20%s','request\x20sent','debug','error','code','message','info','result','catch','GetFaxAccount','FaxAccount','options','raw','where','attributes','limit','include','map','model','stringify','NotifyFaxAccount','body','fax','CmContact','describe','no\x20available\x20attributes','difference','keys','createdAt','updatedAt','ListId','isNil','from','Sequelize','ValidationError','from\x20is\x20mandatory','body\x20is\x20mandatory\x20and\x20not\x20empty','mapKey\x20is\x20mandatory,\x20please\x20use\x20one\x20of\x20these:\x20','includes'];(function(_0xae7c2f,_0xf31e04){var _0x5d7001=function(_0x4eeadb){while(--_0x4eeadb){_0xae7c2f['push'](_0xae7c2f['shift']());}};_0x5d7001(++_0xf31e04);}(_0x5d5a,0x192));var _0xa5d5=function(_0x29bc64,_0x4e934a){_0x29bc64=_0x29bc64-0x0;var _0x14baad=_0x5d5a[_0x29bc64];return _0x14baad;};'use strict';var _=require(_0xa5d5('0x0'));var util=require(_0xa5d5('0x1'));var moment=require(_0xa5d5('0x2'));var BPromise=require(_0xa5d5('0x3'));var rs=require('randomstring');var fs=require('fs');var Redis=require(_0xa5d5('0x4'));var db=require(_0xa5d5('0x5'))['db'];var utils=require(_0xa5d5('0x6'));var logger=require(_0xa5d5('0x7'))(_0xa5d5('0x8'));var config=require(_0xa5d5('0x9'));var jayson=require(_0xa5d5('0xa'));var client=jayson['client'][_0xa5d5('0xb')]({'port':0x232c});config[_0xa5d5('0xc')]=_[_0xa5d5('0xd')](config[_0xa5d5('0xc')],{'host':_0xa5d5('0xe'),'port':0x18eb});var socket=require(_0xa5d5('0xf'))(new Redis(config['redis']));require(_0xa5d5('0x10'))[_0xa5d5('0x11')](socket);function respondWithRpcPromise(_0x525ee8,_0x2a55fe,_0x10bae1){return new BPromise(function(_0x46ff46,_0x203427){return client['request'](_0x525ee8,_0x10bae1)[_0xa5d5('0x12')](function(_0x2c1d8f){logger['info'](_0xa5d5('0x13'),_0x2a55fe,_0xa5d5('0x14'));logger[_0xa5d5('0x15')]('FaxAccount,\x20%s,\x20%s,\x20%s',_0x2a55fe,_0xa5d5('0x14'),JSON['stringify'](_0x2c1d8f));if(_0x2c1d8f[_0xa5d5('0x16')]){if(_0x2c1d8f[_0xa5d5('0x16')][_0xa5d5('0x17')]===0x1f4){logger['error']('FaxAccount,\x20%s,\x20%s',_0x2a55fe,_0x2c1d8f[_0xa5d5('0x16')][_0xa5d5('0x18')]);return _0x203427(_0x2c1d8f[_0xa5d5('0x16')][_0xa5d5('0x18')]);}logger[_0xa5d5('0x16')](_0xa5d5('0x13'),_0x2a55fe,_0x2c1d8f[_0xa5d5('0x16')][_0xa5d5('0x18')]);return _0x46ff46(_0x2c1d8f['error'][_0xa5d5('0x18')]);}else{logger[_0xa5d5('0x19')](_0xa5d5('0x13'),_0x2a55fe,_0xa5d5('0x14'));_0x46ff46(_0x2c1d8f[_0xa5d5('0x1a')][_0xa5d5('0x18')]);}})[_0xa5d5('0x1b')](function(_0x346ead){logger[_0xa5d5('0x16')]('FaxAccount,\x20%s,\x20%s',_0x2a55fe,_0x346ead);_0x203427(_0x346ead);});});}exports[_0xa5d5('0x1c')]=function(_0x24dc4f){var _0x26edd9=this;return new Promise(function(_0x44d8bf,_0x13c3f5){return db[_0xa5d5('0x1d')]['findAll']({'raw':_0x24dc4f[_0xa5d5('0x1e')]?_0x24dc4f['options'][_0xa5d5('0x1f')]===undefined?!![]:![]:!![],'where':_0x24dc4f[_0xa5d5('0x1e')]?_0x24dc4f[_0xa5d5('0x1e')][_0xa5d5('0x20')]||null:null,'attributes':_0x24dc4f['options']?_0x24dc4f[_0xa5d5('0x1e')][_0xa5d5('0x21')]||null:null,'limit':_0x24dc4f[_0xa5d5('0x1e')]?_0x24dc4f[_0xa5d5('0x1e')][_0xa5d5('0x22')]||null:null,'include':_0x24dc4f[_0xa5d5('0x1e')]?_0x24dc4f[_0xa5d5('0x1e')][_0xa5d5('0x23')]?_[_0xa5d5('0x24')](_0x24dc4f[_0xa5d5('0x1e')][_0xa5d5('0x23')],function(_0x2a24ba){return{'model':db[_0x2a24ba['model']],'as':_0x2a24ba['as'],'attributes':_0x2a24ba[_0xa5d5('0x21')],'include':_0x2a24ba[_0xa5d5('0x23')]?_['map'](_0x2a24ba[_0xa5d5('0x23')],function(_0x1fb4b6){return{'model':db[_0x1fb4b6[_0xa5d5('0x25')]],'as':_0x1fb4b6['as'],'attributes':_0x1fb4b6[_0xa5d5('0x21')],'include':_0x1fb4b6[_0xa5d5('0x23')]?_[_0xa5d5('0x24')](_0x1fb4b6[_0xa5d5('0x23')],function(_0x210f31){return{'model':db[_0x210f31[_0xa5d5('0x25')]],'as':_0x210f31['as'],'attributes':_0x210f31[_0xa5d5('0x21')]};}):[]};}):[]};}):[]:[]})[_0xa5d5('0x12')](function(_0x5c6e46){logger['info'](_0xa5d5('0x1c'),_0x24dc4f);logger['debug'](_0xa5d5('0x1c'),_0x24dc4f,JSON[_0xa5d5('0x26')](_0x5c6e46));_0x44d8bf(_0x5c6e46);})['catch'](function(_0x1e3b0f){logger['error'](_0xa5d5('0x1c'),_0x1e3b0f[_0xa5d5('0x18')],_0x24dc4f);_0x13c3f5(_0x26edd9[_0xa5d5('0x16')](0x1f4,_0x1e3b0f['message']));});});};exports[_0xa5d5('0x27')]=function(_0x49c3f8,_0x5b50c1,_0x28313e){var _0x47a151=this;return new Promise(function(_0x464fe1,_0x124eb9){var _0x7f1108={'body':_0x49c3f8[_0xa5d5('0x28')],'channel':_0xa5d5('0x29')};var _0x459e97=[];var _0x20722b=[];var _0x4463d0={};return db[_0xa5d5('0x2a')][_0xa5d5('0x2b')]()[_0xa5d5('0x12')](function(_0x520198){if(!_0x520198){throw new db['Sequelize']['ValidationError'](_0xa5d5('0x2c'));}_0x459e97=_[_0xa5d5('0x2d')](_[_0xa5d5('0x2e')](_0x520198),[_0xa5d5('0x2f'),_0xa5d5('0x30')]);_0x20722b=_[_0xa5d5('0x2d')](_['keys'](_0x520198),[_0xa5d5('0x2f'),_0xa5d5('0x30'),'CompanyId',_0xa5d5('0x31')]);if(_0x49c3f8[_0xa5d5('0x28')]['id']){delete _0x49c3f8[_0xa5d5('0x28')]['id'];}if(_[_0xa5d5('0x32')](_0x49c3f8[_0xa5d5('0x28')][_0xa5d5('0x33')])){throw new db[(_0xa5d5('0x34'))][(_0xa5d5('0x35'))](_0xa5d5('0x36'));}if(_[_0xa5d5('0x32')](_0x49c3f8[_0xa5d5('0x28')][_0xa5d5('0x28')])||_0x49c3f8[_0xa5d5('0x28')][_0xa5d5('0x28')]===''){throw new db[(_0xa5d5('0x34'))]['ValidationError'](_0xa5d5('0x37'));}if(_[_0xa5d5('0x32')](_0x49c3f8[_0xa5d5('0x28')]['mapKey'])){throw new db['Sequelize'][(_0xa5d5('0x35'))](_0xa5d5('0x38')+_0x20722b);}if(!_[_0xa5d5('0x39')](_0x20722b,_0x49c3f8[_0xa5d5('0x28')][_0xa5d5('0x3a')])){throw new db[(_0xa5d5('0x34'))][(_0xa5d5('0x35'))](_0xa5d5('0x3b')+_0x20722b);}_0x4463d0[_0x49c3f8['body'][_0xa5d5('0x3a')]]=_0x49c3f8[_0xa5d5('0x28')][_0xa5d5('0x33')];})[_0xa5d5('0x12')](function(){return db[_0xa5d5('0x1d')][_0xa5d5('0x3c')]({'where':{'id':_0x49c3f8[_0xa5d5('0x3d')]['id']},'include':[{'model':db[_0xa5d5('0x3e')],'as':_0xa5d5('0x3f'),'include':[{'model':db[_0xa5d5('0x2a')],'as':_0xa5d5('0x40'),'where':_0x4463d0,'limit':0x1,'order':[[_0xa5d5('0x30'),_0xa5d5('0x41')]]}]},{'model':db[_0xa5d5('0x42')],'as':_0xa5d5('0x43')}]});})[_0xa5d5('0x12')](function(_0x1a4df1){if(_0x1a4df1&&_0x1a4df1['List']){var _0x324833=_0x1a4df1[_0xa5d5('0x44')]({'plain':!![]});_0x7f1108['account']=_0x324833;_0x7f1108[_0xa5d5('0x45')]=_0x324833[_0xa5d5('0x43')];_0x7f1108[_0xa5d5('0x46')]=_0x324833['List'];_0x7f1108['applications']=_[_0xa5d5('0x47')](_0x7f1108[_0xa5d5('0x45')],['priority'],['asc']);if(_0x7f1108[_0xa5d5('0x3d')][_0xa5d5('0x43')]){delete _0x7f1108[_0xa5d5('0x3d')][_0xa5d5('0x43')];}if(_0x7f1108[_0xa5d5('0x3d')][_0xa5d5('0x3f')]&&_0x7f1108[_0xa5d5('0x3d')]['List'][_0xa5d5('0x40')][_0xa5d5('0x48')]){return _0x7f1108[_0xa5d5('0x3d')]['List'][_0xa5d5('0x40')][0x0];}var _0x57c413=_[_0xa5d5('0xd')](_0x49c3f8['body'],{'firstName':_0x49c3f8[_0xa5d5('0x28')]['from'],'ListId':_0x324833[_0xa5d5('0x31')]});_0x57c413[_0x49c3f8[_0xa5d5('0x28')]['mapKey']]=_0x49c3f8['body'][_0xa5d5('0x33')];return db[_0xa5d5('0x2a')][_0xa5d5('0x49')](_0x57c413,{'fields':_0x459e97,'raw':!![]});}})[_0xa5d5('0x12')](function(_0x51b646){_0x7f1108[_0xa5d5('0x4a')]=_0x51b646;if(_0x51b646){var _0x56ee87={'ContactId':_0x51b646['id'],'FaxAccountId':_0x49c3f8[_0xa5d5('0x3d')]['id'],'fax':_0x51b646[_0xa5d5('0x29')]};return db[_0xa5d5('0x4b')][_0xa5d5('0x3c')]({'where':{'ContactId':_0x51b646['id'],'closed':![],'FaxAccountId':_0x49c3f8[_0xa5d5('0x3d')]['id']}})[_0xa5d5('0x12')](function(_0x29231e){if(_0x29231e){return[_0x29231e,![]];}return db[_0xa5d5('0x4b')][_0xa5d5('0x49')](_0x56ee87)[_0xa5d5('0x12')](function(_0x4b01a9){return[_0x4b01a9,!![]];});});}else{throw new Error(_0xa5d5('0x4c'));}})[_0xa5d5('0x4d')](function(_0x208d78,_0x3f59e6){var _0x38123a=_0x208d78[_0xa5d5('0x44')]({'plain':!![]});if(_0x3f59e6){if(_0x7f1108[_0xa5d5('0x3d')]['autoclose']){_0x7f1108['applications'][_0xa5d5('0x4e')]({'id':0x0,'priority':_0x7f1108[_0xa5d5('0x45')][_0xa5d5('0x48')]+0x1,'app':'close','appdata':_0xa5d5('0x4f'),'interval':_0xa5d5('0x50')});}_0x38123a[_0xa5d5('0x51')]=!![];}else{_0x38123a['created']=![];}_0x7f1108['interaction']=_0x38123a;return db['FaxMessage']['create']({'body':_0x49c3f8[_0xa5d5('0x28')][_0xa5d5('0x28')],'FaxAccountId':_0x49c3f8['account']['id'],'FaxInteractionId':_0x208d78['id'],'direction':'in','ContactId':_0x208d78['ContactId'],'AttachmentId':_0x49c3f8[_0xa5d5('0x28')][_0xa5d5('0x52')]});})[_0xa5d5('0x12')](function(_0x3ba511){_0x7f1108['message']=_0x3ba511;if(!_0x7f1108['interaction']['UserId'])return;return db['User'][_0xa5d5('0x3c')]({'attributes':['id',_0xa5d5('0x53')],'where':{'id':_0x7f1108[_0xa5d5('0x54')][_0xa5d5('0x55')]}});})['then'](function(_0x183f57){if(_0x183f57){_0x7f1108[_0xa5d5('0x45')][_0xa5d5('0x56')]({'id':0x0,'priority':0x0,'app':_0xa5d5('0x57'),'appdata':_0x183f57[_0xa5d5('0x53')]+','+(_0x7f1108['account'][_0xa5d5('0x58')]||0xa),'interval':_0xa5d5('0x50')});}if(!_0x7f1108['interaction'][_0xa5d5('0x59')])return;return db['FaxQueue'][_0xa5d5('0x3c')]({'attributes':['id',_0xa5d5('0x53')],'where':{'id':_0x7f1108[_0xa5d5('0x54')][_0xa5d5('0x59')]}});})['then'](function(_0x1ffbd3){if(_0x1ffbd3){_0x7f1108[_0xa5d5('0x45')][_0xa5d5('0x56')]({'id':0x0,'priority':0x1,'app':'queue','appdata':_0x1ffbd3[_0xa5d5('0x53')]+','+(_0x7f1108[_0xa5d5('0x3d')][_0xa5d5('0x5a')]||0x12c),'interval':_0xa5d5('0x50')});}return respondWithRpcPromise('Start',_0xa5d5('0x5b'),_0x7f1108);})[_0xa5d5('0x12')](function(_0x144392){_0x464fe1(_0x144392);})[_0xa5d5('0x1b')](function(_0x2a36cf){_0x124eb9(_0x47a151['error'](0x1f4,_0x2a36cf[_0xa5d5('0x18')]));});});};