16814d819041cd7c89d67594eccef8d9eaac6428
[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 _0x247d=['CmContact','describe','difference','keys','createdAt','updatedAt','CompanyId','ListId','isNil','from','ValidationError','from\x20is\x20mandatory','Sequelize','body\x20is\x20mandatory\x20and\x20not\x20empty','mapKey','includes','mapKey\x20invalid,\x20please\x20use\x20one\x20of\x20these:\x20','account','CmList','List','Contacts','FaxApplication','Applications','get','applications','list','priority','asc','length','contact','fax','FaxInteraction','find','create','Contact\x20not\x20found','spread','autoclose','push','close','*,*,*,*','created','interaction','FaxMessage','ContactId','UserId','User','name','unshift','agent','queueId','FaxQueue','queue','Start','startRouting','lodash','util','moment','bluebird','randomstring','ioredis','../../mysqldb','../../config/utils','../../config/logger','rpc','../../config/environment','client','redis','defaults','localhost','./faxAccount.socket','register','request','then','info','request\x20sent','debug','FaxAccount,\x20%s,\x20%s,\x20%s','error','FaxAccount,\x20%s,\x20%s','message','result','catch','FaxAccount','findAll','options','where','attributes','limit','include','model','GetFaxAccount','stringify','NotifyFaxAccount','body'];(function(_0x42e433,_0x4ad5ad){var _0x100f1f=function(_0x297228){while(--_0x297228){_0x42e433['push'](_0x42e433['shift']());}};_0x100f1f(++_0x4ad5ad);}(_0x247d,0x94));var _0xd247=function(_0x983f45,_0x440680){_0x983f45=_0x983f45-0x0;var _0x3ebde8=_0x247d[_0x983f45];return _0x3ebde8;};'use strict';var _=require(_0xd247('0x0'));var util=require(_0xd247('0x1'));var moment=require(_0xd247('0x2'));var BPromise=require(_0xd247('0x3'));var rs=require(_0xd247('0x4'));var fs=require('fs');var Redis=require(_0xd247('0x5'));var db=require(_0xd247('0x6'))['db'];var utils=require(_0xd247('0x7'));var logger=require(_0xd247('0x8'))(_0xd247('0x9'));var config=require(_0xd247('0xa'));var jayson=require('jayson/promise');var client=jayson[_0xd247('0xb')]['http']({'port':0x232c});config[_0xd247('0xc')]=_[_0xd247('0xd')](config[_0xd247('0xc')],{'host':_0xd247('0xe'),'port':0x18eb});var socket=require('socket.io-emitter')(new Redis(config[_0xd247('0xc')]));require(_0xd247('0xf'))[_0xd247('0x10')](socket);function respondWithRpcPromise(_0x18b220,_0x3e292a,_0x5196f2){return new BPromise(function(_0x22128d,_0x1a5c75){return client[_0xd247('0x11')](_0x18b220,_0x5196f2)[_0xd247('0x12')](function(_0x4c5f03){logger[_0xd247('0x13')]('FaxAccount,\x20%s,\x20%s',_0x3e292a,_0xd247('0x14'));logger[_0xd247('0x15')](_0xd247('0x16'),_0x3e292a,_0xd247('0x14'),JSON['stringify'](_0x4c5f03));if(_0x4c5f03[_0xd247('0x17')]){if(_0x4c5f03[_0xd247('0x17')]['code']===0x1f4){logger[_0xd247('0x17')](_0xd247('0x18'),_0x3e292a,_0x4c5f03[_0xd247('0x17')]['message']);return _0x1a5c75(_0x4c5f03[_0xd247('0x17')][_0xd247('0x19')]);}logger['error'](_0xd247('0x18'),_0x3e292a,_0x4c5f03['error'][_0xd247('0x19')]);return _0x22128d(_0x4c5f03['error']['message']);}else{logger[_0xd247('0x13')](_0xd247('0x18'),_0x3e292a,_0xd247('0x14'));_0x22128d(_0x4c5f03[_0xd247('0x1a')][_0xd247('0x19')]);}})[_0xd247('0x1b')](function(_0x441e72){logger[_0xd247('0x17')](_0xd247('0x18'),_0x3e292a,_0x441e72);_0x1a5c75(_0x441e72);});});}exports['GetFaxAccount']=function(_0x1675a2){var _0x30e30b=this;return new Promise(function(_0x151f40,_0x505244){return db[_0xd247('0x1c')][_0xd247('0x1d')]({'raw':_0x1675a2[_0xd247('0x1e')]?_0x1675a2[_0xd247('0x1e')]['raw']===undefined?!![]:![]:!![],'where':_0x1675a2[_0xd247('0x1e')]?_0x1675a2[_0xd247('0x1e')][_0xd247('0x1f')]||null:null,'attributes':_0x1675a2[_0xd247('0x1e')]?_0x1675a2[_0xd247('0x1e')][_0xd247('0x20')]||null:null,'limit':_0x1675a2[_0xd247('0x1e')]?_0x1675a2[_0xd247('0x1e')][_0xd247('0x21')]||null:null,'include':_0x1675a2[_0xd247('0x1e')]?_0x1675a2['options'][_0xd247('0x22')]?_['map'](_0x1675a2[_0xd247('0x1e')][_0xd247('0x22')],function(_0x4bfbb6){return{'model':db[_0x4bfbb6[_0xd247('0x23')]],'as':_0x4bfbb6['as'],'attributes':_0x4bfbb6['attributes'],'include':_0x4bfbb6['include']?_['map'](_0x4bfbb6[_0xd247('0x22')],function(_0x287c3d){return{'model':db[_0x287c3d['model']],'as':_0x287c3d['as'],'attributes':_0x287c3d['attributes'],'include':_0x287c3d[_0xd247('0x22')]?_['map'](_0x287c3d[_0xd247('0x22')],function(_0x449931){return{'model':db[_0x449931[_0xd247('0x23')]],'as':_0x449931['as'],'attributes':_0x449931[_0xd247('0x20')]};}):[]};}):[]};}):[]:[]})[_0xd247('0x12')](function(_0x2dd2ec){logger['info'](_0xd247('0x24'),_0x1675a2);logger[_0xd247('0x15')]('GetFaxAccount',_0x1675a2,JSON[_0xd247('0x25')](_0x2dd2ec));_0x151f40(_0x2dd2ec);})['catch'](function(_0x174613){logger[_0xd247('0x17')](_0xd247('0x24'),_0x174613['message'],_0x1675a2);_0x505244(_0x30e30b['error'](0x1f4,_0x174613[_0xd247('0x19')]));});});};exports[_0xd247('0x26')]=function(_0x1504bb,_0x371fd1,_0x657902){var _0x610f2c=this;return new Promise(function(_0x25c3bc,_0x2a9e97){var _0x272480={'body':_0x1504bb[_0xd247('0x27')],'channel':'fax'};var _0xbf4409=[];var _0x4c7579=[];var _0x177edf={};return db[_0xd247('0x28')][_0xd247('0x29')]()[_0xd247('0x12')](function(_0x23dd00){if(!_0x23dd00){throw new db['Sequelize']['ValidationError']('no\x20available\x20attributes');}_0xbf4409=_[_0xd247('0x2a')](_[_0xd247('0x2b')](_0x23dd00),[_0xd247('0x2c'),'updatedAt']);_0x4c7579=_['difference'](_[_0xd247('0x2b')](_0x23dd00),[_0xd247('0x2c'),_0xd247('0x2d'),_0xd247('0x2e'),_0xd247('0x2f')]);if(_0x1504bb[_0xd247('0x27')]['id']){delete _0x1504bb[_0xd247('0x27')]['id'];}if(_[_0xd247('0x30')](_0x1504bb[_0xd247('0x27')][_0xd247('0x31')])){throw new db['Sequelize'][(_0xd247('0x32'))](_0xd247('0x33'));}if(_[_0xd247('0x30')](_0x1504bb[_0xd247('0x27')]['body'])||_0x1504bb[_0xd247('0x27')]['body']===''){throw new db[(_0xd247('0x34'))]['ValidationError'](_0xd247('0x35'));}if(_[_0xd247('0x30')](_0x1504bb[_0xd247('0x27')][_0xd247('0x36')])){throw new db['Sequelize'][(_0xd247('0x32'))]('mapKey\x20is\x20mandatory,\x20please\x20use\x20one\x20of\x20these:\x20'+_0x4c7579);}if(!_[_0xd247('0x37')](_0x4c7579,_0x1504bb[_0xd247('0x27')]['mapKey'])){throw new db[(_0xd247('0x34'))][(_0xd247('0x32'))](_0xd247('0x38')+_0x4c7579);}_0x177edf[_0x1504bb[_0xd247('0x27')][_0xd247('0x36')]]=_0x1504bb[_0xd247('0x27')][_0xd247('0x31')];})[_0xd247('0x12')](function(){return db['FaxAccount']['find']({'where':{'id':_0x1504bb[_0xd247('0x39')]['id']},'include':[{'model':db[_0xd247('0x3a')],'as':_0xd247('0x3b'),'include':[{'model':db[_0xd247('0x28')],'as':_0xd247('0x3c'),'where':_0x177edf,'limit':0x1,'order':[[_0xd247('0x2d'),'DESC']]}]},{'model':db[_0xd247('0x3d')],'as':_0xd247('0x3e')}]});})[_0xd247('0x12')](function(_0x199afc){if(_0x199afc&&_0x199afc[_0xd247('0x3b')]){var _0x4a6f0d=_0x199afc[_0xd247('0x3f')]({'plain':!![]});_0x272480[_0xd247('0x39')]=_0x4a6f0d;_0x272480[_0xd247('0x40')]=_0x4a6f0d[_0xd247('0x3e')];_0x272480[_0xd247('0x41')]=_0x4a6f0d[_0xd247('0x3b')];_0x272480[_0xd247('0x40')]=_['orderBy'](_0x272480[_0xd247('0x40')],[_0xd247('0x42')],[_0xd247('0x43')]);if(_0x272480[_0xd247('0x39')]['Applications']){delete _0x272480[_0xd247('0x39')][_0xd247('0x3e')];}if(_0x272480['account']['List']&&_0x272480[_0xd247('0x39')]['List'][_0xd247('0x3c')][_0xd247('0x44')]){return _0x272480['account'][_0xd247('0x3b')]['Contacts'][0x0];}var _0x1c4a85=_['defaults'](_0x1504bb[_0xd247('0x27')],{'firstName':_0x1504bb[_0xd247('0x27')][_0xd247('0x31')],'ListId':_0x4a6f0d['ListId']});_0x1c4a85[_0x1504bb[_0xd247('0x27')][_0xd247('0x36')]]=_0x1504bb[_0xd247('0x27')][_0xd247('0x31')];return db[_0xd247('0x28')]['create'](_0x1c4a85,{'fields':_0xbf4409,'raw':!![]});}})['then'](function(_0x2a1481){_0x272480[_0xd247('0x45')]=_0x2a1481;if(_0x2a1481){var _0x2e2706={'ContactId':_0x2a1481['id'],'FaxAccountId':_0x1504bb[_0xd247('0x39')]['id'],'fax':_0x2a1481[_0xd247('0x46')]};return db[_0xd247('0x47')][_0xd247('0x48')]({'where':{'ContactId':_0x2a1481['id'],'closed':![],'FaxAccountId':_0x1504bb[_0xd247('0x39')]['id']}})[_0xd247('0x12')](function(_0x5c48e9){if(_0x5c48e9){return[_0x5c48e9,![]];}return db['FaxInteraction'][_0xd247('0x49')](_0x2e2706)[_0xd247('0x12')](function(_0x3fa094){return[_0x3fa094,!![]];});});}else{throw new Error(_0xd247('0x4a'));}})[_0xd247('0x4b')](function(_0xbb49db,_0x21449b){var _0x1754ba=_0xbb49db[_0xd247('0x3f')]({'plain':!![]});if(_0x21449b){if(_0x272480['account'][_0xd247('0x4c')]){_0x272480[_0xd247('0x40')][_0xd247('0x4d')]({'id':0x0,'priority':_0x272480['applications'][_0xd247('0x44')]+0x1,'app':_0xd247('0x4e'),'appdata':'unmanaged','interval':_0xd247('0x4f')});}_0x1754ba[_0xd247('0x50')]=!![];}else{_0x1754ba['created']=![];}_0x272480[_0xd247('0x51')]=_0x1754ba;return db[_0xd247('0x52')][_0xd247('0x49')]({'body':_0x1504bb[_0xd247('0x27')]['body'],'FaxAccountId':_0x1504bb[_0xd247('0x39')]['id'],'FaxInteractionId':_0xbb49db['id'],'direction':'in','ContactId':_0xbb49db[_0xd247('0x53')],'AttachmentId':_0x1504bb['body']['AttachmentId']});})['then'](function(_0x1e61d0){_0x272480['message']=_0x1e61d0;if(!_0x272480[_0xd247('0x51')][_0xd247('0x54')])return;return db[_0xd247('0x55')]['find']({'attributes':['id',_0xd247('0x56')],'where':{'id':_0x272480[_0xd247('0x51')]['UserId']}});})[_0xd247('0x12')](function(_0x52b579){if(_0x52b579){_0x272480['applications'][_0xd247('0x57')]({'id':0x0,'priority':0x0,'app':_0xd247('0x58'),'appdata':_0x52b579[_0xd247('0x56')]+','+(_0x272480['account']['waitForTheAssignedAgent']||0xa),'interval':_0xd247('0x4f')});}if(!_0x272480['interaction'][_0xd247('0x59')])return;return db[_0xd247('0x5a')][_0xd247('0x48')]({'attributes':['id','name'],'where':{'id':_0x272480[_0xd247('0x51')][_0xd247('0x59')]}});})[_0xd247('0x12')](function(_0x5babc8){if(_0x5babc8){_0x272480[_0xd247('0x40')][_0xd247('0x57')]({'id':0x0,'priority':0x1,'app':_0xd247('0x5b'),'appdata':_0x5babc8['name']+','+(_0x272480[_0xd247('0x39')]['waitForTheAssignedQueue']||0x12c),'interval':_0xd247('0x4f')});}return respondWithRpcPromise(_0xd247('0x5c'),_0xd247('0x5d'),_0x272480);})['then'](function(_0x35668a){_0x25c3bc(_0x35668a);})[_0xd247('0x1b')](function(_0x2a8724){_0x2a9e97(_0x610f2c[_0xd247('0x17')](0x1f4,_0x2a8724[_0xd247('0x19')]));});});};