617bcea4efb7f9fc3b964855e06aac8047c6b1e2
[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 _0x3718=['list','priority','asc','Contacts','length','defaults','create','spread','close','unmanaged','*,*,*,*','created','interaction','FaxMessage','ContactId','AttachmentId','UserId','unshift','agent','name','waitForTheAssignedAgent','Start','startRouting','lodash','util','moment','bluebird','randomstring','ioredis','../../mysqldb','../../config/logger','rpc','../../config/environment','jayson/promise','client','http','redis','localhost','socket.io-emitter','register','request','then','info','request\x20sent','debug','stringify','error','code','FaxAccount,\x20%s,\x20%s','message','result','catch','GetFaxAccount','FaxAccount','findAll','options','attributes','limit','include','map','model','NotifyFaxAccount','body','fax','CmContact','describe','Sequelize','ValidationError','no\x20available\x20attributes','keys','createdAt','updatedAt','difference','CompanyId','ListId','isNil','from','body\x20is\x20mandatory\x20and\x20not\x20empty','mapKey','mapKey\x20invalid,\x20please\x20use\x20one\x20of\x20these:\x20','find','account','CmList','DESC','FaxApplication','Applications','List','get','applications'];(function(_0x2f9312,_0x2c0c31){var _0x409e6a=function(_0x259c8d){while(--_0x259c8d){_0x2f9312['push'](_0x2f9312['shift']());}};_0x409e6a(++_0x2c0c31);}(_0x3718,0xc9));var _0x8371=function(_0x2fa547,_0x6741ef){_0x2fa547=_0x2fa547-0x0;var _0x38b622=_0x3718[_0x2fa547];return _0x38b622;};'use strict';var _=require(_0x8371('0x0'));var util=require(_0x8371('0x1'));var moment=require(_0x8371('0x2'));var BPromise=require(_0x8371('0x3'));var rs=require(_0x8371('0x4'));var fs=require('fs');var Redis=require(_0x8371('0x5'));var db=require(_0x8371('0x6'))['db'];var utils=require('../../config/utils');var logger=require(_0x8371('0x7'))(_0x8371('0x8'));var config=require(_0x8371('0x9'));var jayson=require(_0x8371('0xa'));var client=jayson[_0x8371('0xb')][_0x8371('0xc')]({'port':0x232c});config['redis']=_['defaults'](config[_0x8371('0xd')],{'host':_0x8371('0xe'),'port':0x18eb});var socket=require(_0x8371('0xf'))(new Redis(config[_0x8371('0xd')]));require('./faxAccount.socket')[_0x8371('0x10')](socket);function respondWithRpcPromise(_0x321335,_0x4332fb,_0x3a9f2f){return new BPromise(function(_0x99d69,_0x4f5b17){return client[_0x8371('0x11')](_0x321335,_0x3a9f2f)[_0x8371('0x12')](function(_0x2297e1){logger[_0x8371('0x13')]('FaxAccount,\x20%s,\x20%s',_0x4332fb,_0x8371('0x14'));logger[_0x8371('0x15')]('FaxAccount,\x20%s,\x20%s,\x20%s',_0x4332fb,_0x8371('0x14'),JSON[_0x8371('0x16')](_0x2297e1));if(_0x2297e1[_0x8371('0x17')]){if(_0x2297e1[_0x8371('0x17')][_0x8371('0x18')]===0x1f4){logger[_0x8371('0x17')](_0x8371('0x19'),_0x4332fb,_0x2297e1[_0x8371('0x17')][_0x8371('0x1a')]);return _0x4f5b17(_0x2297e1[_0x8371('0x17')][_0x8371('0x1a')]);}logger[_0x8371('0x17')](_0x8371('0x19'),_0x4332fb,_0x2297e1[_0x8371('0x17')][_0x8371('0x1a')]);return _0x99d69(_0x2297e1[_0x8371('0x17')][_0x8371('0x1a')]);}else{logger['info']('FaxAccount,\x20%s,\x20%s',_0x4332fb,_0x8371('0x14'));_0x99d69(_0x2297e1[_0x8371('0x1b')][_0x8371('0x1a')]);}})[_0x8371('0x1c')](function(_0x8d75b5){logger['error'](_0x8371('0x19'),_0x4332fb,_0x8d75b5);_0x4f5b17(_0x8d75b5);});});}exports[_0x8371('0x1d')]=function(_0x2f4e59){var _0x7dcd8c=this;return new Promise(function(_0x17b51a,_0xd3edb8){return db[_0x8371('0x1e')][_0x8371('0x1f')]({'raw':_0x2f4e59[_0x8371('0x20')]?_0x2f4e59[_0x8371('0x20')]['raw']===undefined?!![]:![]:!![],'where':_0x2f4e59['options']?_0x2f4e59[_0x8371('0x20')]['where']||null:null,'attributes':_0x2f4e59[_0x8371('0x20')]?_0x2f4e59['options'][_0x8371('0x21')]||null:null,'limit':_0x2f4e59[_0x8371('0x20')]?_0x2f4e59[_0x8371('0x20')][_0x8371('0x22')]||null:null,'include':_0x2f4e59[_0x8371('0x20')]?_0x2f4e59[_0x8371('0x20')][_0x8371('0x23')]?_[_0x8371('0x24')](_0x2f4e59['options'][_0x8371('0x23')],function(_0x43f717){return{'model':db[_0x43f717['model']],'as':_0x43f717['as'],'attributes':_0x43f717[_0x8371('0x21')],'include':_0x43f717[_0x8371('0x23')]?_[_0x8371('0x24')](_0x43f717[_0x8371('0x23')],function(_0x479958){return{'model':db[_0x479958[_0x8371('0x25')]],'as':_0x479958['as'],'attributes':_0x479958[_0x8371('0x21')],'include':_0x479958[_0x8371('0x23')]?_[_0x8371('0x24')](_0x479958[_0x8371('0x23')],function(_0x1260ff){return{'model':db[_0x1260ff[_0x8371('0x25')]],'as':_0x1260ff['as'],'attributes':_0x1260ff[_0x8371('0x21')]};}):[]};}):[]};}):[]:[]})[_0x8371('0x12')](function(_0x53a004){logger[_0x8371('0x13')]('GetFaxAccount',_0x2f4e59);logger[_0x8371('0x15')](_0x8371('0x1d'),_0x2f4e59,JSON[_0x8371('0x16')](_0x53a004));_0x17b51a(_0x53a004);})[_0x8371('0x1c')](function(_0x4d627d){logger['error'](_0x8371('0x1d'),_0x4d627d[_0x8371('0x1a')],_0x2f4e59);_0xd3edb8(_0x7dcd8c[_0x8371('0x17')](0x1f4,_0x4d627d[_0x8371('0x1a')]));});});};exports[_0x8371('0x26')]=function(_0x21d5f2,_0x49c3f9,_0x2284ae){var _0x278a95=this;return new Promise(function(_0x515430,_0x102ac9){var _0x216c35={'body':_0x21d5f2[_0x8371('0x27')],'channel':_0x8371('0x28')};var _0x10d4ea=[];var _0x556697=[];var _0xa0f46f={};return db[_0x8371('0x29')][_0x8371('0x2a')]()['then'](function(_0x4dddee){if(!_0x4dddee){throw new db[(_0x8371('0x2b'))][(_0x8371('0x2c'))](_0x8371('0x2d'));}_0x10d4ea=_['difference'](_[_0x8371('0x2e')](_0x4dddee),[_0x8371('0x2f'),_0x8371('0x30')]);_0x556697=_[_0x8371('0x31')](_[_0x8371('0x2e')](_0x4dddee),['createdAt',_0x8371('0x30'),_0x8371('0x32'),_0x8371('0x33')]);if(_0x21d5f2[_0x8371('0x27')]['id']){delete _0x21d5f2[_0x8371('0x27')]['id'];}if(_[_0x8371('0x34')](_0x21d5f2['body'][_0x8371('0x35')])){throw new db[(_0x8371('0x2b'))][(_0x8371('0x2c'))]('from\x20is\x20mandatory');}if(_[_0x8371('0x34')](_0x21d5f2[_0x8371('0x27')][_0x8371('0x27')])||_0x21d5f2['body']['body']===''){throw new db['Sequelize'][(_0x8371('0x2c'))](_0x8371('0x36'));}if(_[_0x8371('0x34')](_0x21d5f2[_0x8371('0x27')][_0x8371('0x37')])){throw new db[(_0x8371('0x2b'))][(_0x8371('0x2c'))]('mapKey\x20is\x20mandatory,\x20please\x20use\x20one\x20of\x20these:\x20'+_0x556697);}if(!_['includes'](_0x556697,_0x21d5f2[_0x8371('0x27')][_0x8371('0x37')])){throw new db[(_0x8371('0x2b'))][(_0x8371('0x2c'))](_0x8371('0x38')+_0x556697);}_0xa0f46f[_0x21d5f2[_0x8371('0x27')][_0x8371('0x37')]]=_0x21d5f2['body'][_0x8371('0x35')];})[_0x8371('0x12')](function(){return db[_0x8371('0x1e')][_0x8371('0x39')]({'where':{'id':_0x21d5f2[_0x8371('0x3a')]['id']},'include':[{'model':db[_0x8371('0x3b')],'as':'List','include':[{'model':db[_0x8371('0x29')],'as':'Contacts','where':_0xa0f46f,'limit':0x1,'order':[['updatedAt',_0x8371('0x3c')]]}]},{'model':db[_0x8371('0x3d')],'as':_0x8371('0x3e')}]});})['then'](function(_0x59f33b){if(_0x59f33b&&_0x59f33b[_0x8371('0x3f')]){var _0x54302e=_0x59f33b[_0x8371('0x40')]({'plain':!![]});_0x216c35[_0x8371('0x3a')]=_0x54302e;_0x216c35[_0x8371('0x41')]=_0x54302e[_0x8371('0x3e')];_0x216c35[_0x8371('0x42')]=_0x54302e[_0x8371('0x3f')];_0x216c35[_0x8371('0x41')]=_['orderBy'](_0x216c35[_0x8371('0x41')],[_0x8371('0x43')],[_0x8371('0x44')]);if(_0x216c35[_0x8371('0x3a')][_0x8371('0x3e')]){delete _0x216c35[_0x8371('0x3a')][_0x8371('0x3e')];}if(_0x216c35['account']['List']&&_0x216c35['account'][_0x8371('0x3f')][_0x8371('0x45')][_0x8371('0x46')]){return _0x216c35['account'][_0x8371('0x3f')][_0x8371('0x45')][0x0];}var _0x4e892e=_[_0x8371('0x47')](_0x21d5f2[_0x8371('0x27')],{'firstName':_0x21d5f2['body'][_0x8371('0x35')],'ListId':_0x54302e[_0x8371('0x33')]});_0x4e892e[_0x21d5f2['body'][_0x8371('0x37')]]=_0x21d5f2[_0x8371('0x27')][_0x8371('0x35')];return db[_0x8371('0x29')]['create'](_0x4e892e,{'fields':_0x10d4ea,'raw':!![]});}})[_0x8371('0x12')](function(_0x4f340c){_0x216c35['contact']=_0x4f340c;if(_0x4f340c){var _0x405a8f={'ContactId':_0x4f340c['id'],'FaxAccountId':_0x21d5f2[_0x8371('0x3a')]['id'],'fax':_0x4f340c[_0x8371('0x28')]};return db['FaxInteraction'][_0x8371('0x39')]({'where':{'ContactId':_0x4f340c['id'],'closed':![],'FaxAccountId':_0x21d5f2[_0x8371('0x3a')]['id']}})['then'](function(_0xf462bd){if(_0xf462bd){return[_0xf462bd,![]];}return db['FaxInteraction'][_0x8371('0x48')](_0x405a8f)['then'](function(_0x2b22fe){return[_0x2b22fe,!![]];});});}else{throw new Error('Contact\x20not\x20found');}})[_0x8371('0x49')](function(_0x5042e9,_0x4b5ff0){var _0x4dfa47=_0x5042e9[_0x8371('0x40')]({'plain':!![]});if(_0x4b5ff0){if(_0x216c35[_0x8371('0x3a')]['autoclose']){_0x216c35['applications']['push']({'id':0x0,'priority':_0x216c35['applications'][_0x8371('0x46')]+0x1,'app':_0x8371('0x4a'),'appdata':_0x8371('0x4b'),'interval':_0x8371('0x4c')});}_0x4dfa47[_0x8371('0x4d')]=!![];}else{_0x4dfa47['created']=![];}_0x216c35[_0x8371('0x4e')]=_0x4dfa47;return db[_0x8371('0x4f')][_0x8371('0x48')]({'body':_0x21d5f2['body']['body'],'FaxAccountId':_0x21d5f2['account']['id'],'FaxInteractionId':_0x5042e9['id'],'direction':'in','ContactId':_0x5042e9[_0x8371('0x50')],'AttachmentId':_0x21d5f2[_0x8371('0x27')][_0x8371('0x51')]});})[_0x8371('0x12')](function(_0x3fdf38){_0x216c35[_0x8371('0x1a')]=_0x3fdf38;if(_0x216c35['interaction'][_0x8371('0x52')]){return db['User'][_0x8371('0x39')]({'attributes':['id','name'],'where':{'id':_0x216c35[_0x8371('0x4e')][_0x8371('0x52')]}})[_0x8371('0x12')](function(_0x4f8f4d){if(_0x4f8f4d){_0x216c35[_0x8371('0x41')][_0x8371('0x53')]({'id':0x0,'priority':0x0,'app':_0x8371('0x54'),'appdata':_0x4f8f4d[_0x8371('0x55')]+','+(_0x216c35[_0x8371('0x3a')][_0x8371('0x56')]||0xa),'interval':_0x8371('0x4c')});}return respondWithRpcPromise(_0x8371('0x57'),_0x8371('0x58'),_0x216c35);});}return respondWithRpcPromise('Start',_0x8371('0x58'),_0x216c35);})[_0x8371('0x12')](function(_0xc6d608){_0x515430(_0xc6d608);})[_0x8371('0x1c')](function(_0x1f1b41){_0x102ac9(_0x278a95[_0x8371('0x17')](0x1f4,_0x1f1b41[_0x8371('0x1a')]));});});};