cae7f27d25ace1a5286e61a34f1506d45400ecc9
[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 _0x6599=['then','info','FaxAccount,\x20%s,\x20%s','request\x20sent','debug','FaxAccount,\x20%s,\x20%s,\x20%s','stringify','error','code','message','result','catch','GetFaxAccount','options','raw','attributes','limit','include','model','body','describe','no\x20available\x20attributes','difference','keys','createdAt','ListId','isNil','from','Sequelize','ValidationError','from\x20is\x20mandatory','mapKey','mapKey\x20is\x20mandatory,\x20please\x20use\x20one\x20of\x20these:\x20','includes','find','account','CmContact','Contacts','updatedAt','Applications','applications','list','List','orderBy','priority','asc','length','create','contact','fax','FaxInteraction','Contact\x20not\x20found','spread','push','unmanaged','*,*,*,*','created','interaction','FaxMessage','AttachmentId','User','unshift','agent','name','waitForTheAssignedAgent','Start','startRouting','lodash','util','moment','ioredis','../../mysqldb','../../config/utils','../../config/logger','rpc','../../config/environment','jayson/promise','client','redis','defaults','localhost','socket.io-emitter','register','request'];(function(_0xdef061,_0x1b4f42){var _0x432826=function(_0x328852){while(--_0x328852){_0xdef061['push'](_0xdef061['shift']());}};_0x432826(++_0x1b4f42);}(_0x6599,0x1e7));var _0x9659=function(_0x4aba15,_0x4e90aa){_0x4aba15=_0x4aba15-0x0;var _0x1c8122=_0x6599[_0x4aba15];return _0x1c8122;};'use strict';var _=require(_0x9659('0x0'));var util=require(_0x9659('0x1'));var moment=require(_0x9659('0x2'));var BPromise=require('bluebird');var rs=require('randomstring');var fs=require('fs');var Redis=require(_0x9659('0x3'));var db=require(_0x9659('0x4'))['db'];var utils=require(_0x9659('0x5'));var logger=require(_0x9659('0x6'))(_0x9659('0x7'));var config=require(_0x9659('0x8'));var jayson=require(_0x9659('0x9'));var client=jayson[_0x9659('0xa')]['http']({'port':0x232c});config[_0x9659('0xb')]=_[_0x9659('0xc')](config[_0x9659('0xb')],{'host':_0x9659('0xd'),'port':0x18eb});var socket=require(_0x9659('0xe'))(new Redis(config[_0x9659('0xb')]));require('./faxAccount.socket')[_0x9659('0xf')](socket);function respondWithRpcPromise(_0x24e584,_0x45f878,_0x8922a2){return new BPromise(function(_0x470bee,_0x413f5e){return client[_0x9659('0x10')](_0x24e584,_0x8922a2)[_0x9659('0x11')](function(_0x4ebff0){logger[_0x9659('0x12')](_0x9659('0x13'),_0x45f878,_0x9659('0x14'));logger[_0x9659('0x15')](_0x9659('0x16'),_0x45f878,_0x9659('0x14'),JSON[_0x9659('0x17')](_0x4ebff0));if(_0x4ebff0['error']){if(_0x4ebff0[_0x9659('0x18')][_0x9659('0x19')]===0x1f4){logger[_0x9659('0x18')](_0x9659('0x13'),_0x45f878,_0x4ebff0[_0x9659('0x18')][_0x9659('0x1a')]);return _0x413f5e(_0x4ebff0[_0x9659('0x18')]['message']);}logger[_0x9659('0x18')](_0x9659('0x13'),_0x45f878,_0x4ebff0[_0x9659('0x18')]['message']);return _0x470bee(_0x4ebff0['error']['message']);}else{logger[_0x9659('0x12')](_0x9659('0x13'),_0x45f878,'request\x20sent');_0x470bee(_0x4ebff0[_0x9659('0x1b')][_0x9659('0x1a')]);}})[_0x9659('0x1c')](function(_0xadd29c){logger[_0x9659('0x18')]('FaxAccount,\x20%s,\x20%s',_0x45f878,_0xadd29c);_0x413f5e(_0xadd29c);});});}exports[_0x9659('0x1d')]=function(_0x6568e8){var _0x270cec=this;return new Promise(function(_0x425dd2,_0x20dc5f){return db['FaxAccount']['findAll']({'raw':_0x6568e8[_0x9659('0x1e')]?_0x6568e8[_0x9659('0x1e')][_0x9659('0x1f')]===undefined?!![]:![]:!![],'where':_0x6568e8[_0x9659('0x1e')]?_0x6568e8[_0x9659('0x1e')]['where']||null:null,'attributes':_0x6568e8['options']?_0x6568e8[_0x9659('0x1e')][_0x9659('0x20')]||null:null,'limit':_0x6568e8[_0x9659('0x1e')]?_0x6568e8['options'][_0x9659('0x21')]||null:null,'include':_0x6568e8[_0x9659('0x1e')]?_0x6568e8[_0x9659('0x1e')][_0x9659('0x22')]?_['map'](_0x6568e8[_0x9659('0x1e')][_0x9659('0x22')],function(_0x22d139){return{'model':db[_0x22d139['model']],'as':_0x22d139['as'],'attributes':_0x22d139[_0x9659('0x20')],'include':_0x22d139[_0x9659('0x22')]?_['map'](_0x22d139['include'],function(_0x58f577){return{'model':db[_0x58f577[_0x9659('0x23')]],'as':_0x58f577['as'],'attributes':_0x58f577[_0x9659('0x20')],'include':_0x58f577[_0x9659('0x22')]?_['map'](_0x58f577[_0x9659('0x22')],function(_0x3e8fdd){return{'model':db[_0x3e8fdd[_0x9659('0x23')]],'as':_0x3e8fdd['as'],'attributes':_0x3e8fdd[_0x9659('0x20')]};}):[]};}):[]};}):[]:[]})[_0x9659('0x11')](function(_0x3c7d9d){logger[_0x9659('0x12')]('GetFaxAccount',_0x6568e8);logger[_0x9659('0x15')](_0x9659('0x1d'),_0x6568e8,JSON[_0x9659('0x17')](_0x3c7d9d));_0x425dd2(_0x3c7d9d);})[_0x9659('0x1c')](function(_0x5e1613){logger[_0x9659('0x18')]('GetFaxAccount',_0x5e1613[_0x9659('0x1a')],_0x6568e8);_0x20dc5f(_0x270cec[_0x9659('0x18')](0x1f4,_0x5e1613[_0x9659('0x1a')]));});});};exports['NotifyFaxAccount']=function(_0x5b1de8,_0x1886d8,_0x420d01){var _0x46bc40=this;return new Promise(function(_0x2a6c57,_0x3a8730){var _0x1f3241={'body':_0x5b1de8[_0x9659('0x24')],'channel':'fax'};var _0x23459e=[];var _0x46aa4e=[];var _0xac0232={};return db['CmContact'][_0x9659('0x25')]()[_0x9659('0x11')](function(_0x4637c6){if(!_0x4637c6){throw new db['Sequelize']['ValidationError'](_0x9659('0x26'));}_0x23459e=_[_0x9659('0x27')](_[_0x9659('0x28')](_0x4637c6),[_0x9659('0x29'),'updatedAt']);_0x46aa4e=_[_0x9659('0x27')](_[_0x9659('0x28')](_0x4637c6),[_0x9659('0x29'),'updatedAt','CompanyId',_0x9659('0x2a')]);if(_0x5b1de8[_0x9659('0x24')]['id']){delete _0x5b1de8[_0x9659('0x24')]['id'];}if(_[_0x9659('0x2b')](_0x5b1de8[_0x9659('0x24')][_0x9659('0x2c')])){throw new db[(_0x9659('0x2d'))][(_0x9659('0x2e'))](_0x9659('0x2f'));}if(_[_0x9659('0x2b')](_0x5b1de8['body']['body'])||_0x5b1de8['body'][_0x9659('0x24')]===''){throw new db[(_0x9659('0x2d'))][(_0x9659('0x2e'))]('body\x20is\x20mandatory\x20and\x20not\x20empty');}if(_['isNil'](_0x5b1de8[_0x9659('0x24')][_0x9659('0x30')])){throw new db['Sequelize'][(_0x9659('0x2e'))](_0x9659('0x31')+_0x46aa4e);}if(!_[_0x9659('0x32')](_0x46aa4e,_0x5b1de8[_0x9659('0x24')][_0x9659('0x30')])){throw new db['Sequelize']['ValidationError']('mapKey\x20invalid,\x20please\x20use\x20one\x20of\x20these:\x20'+_0x46aa4e);}_0xac0232[_0x5b1de8[_0x9659('0x24')][_0x9659('0x30')]]=_0x5b1de8[_0x9659('0x24')][_0x9659('0x2c')];})[_0x9659('0x11')](function(){return db['FaxAccount'][_0x9659('0x33')]({'where':{'id':_0x5b1de8[_0x9659('0x34')]['id']},'include':[{'model':db['CmList'],'as':'List','include':[{'model':db[_0x9659('0x35')],'as':_0x9659('0x36'),'where':_0xac0232,'limit':0x1,'order':[[_0x9659('0x37'),'DESC']]}]},{'model':db['FaxApplication'],'as':_0x9659('0x38')}]});})[_0x9659('0x11')](function(_0x763fcb){if(_0x763fcb&&_0x763fcb['List']){var _0xacf9fd=_0x763fcb['get']({'plain':!![]});_0x1f3241[_0x9659('0x34')]=_0xacf9fd;_0x1f3241[_0x9659('0x39')]=_0xacf9fd[_0x9659('0x38')];_0x1f3241[_0x9659('0x3a')]=_0xacf9fd[_0x9659('0x3b')];_0x1f3241['applications']=_[_0x9659('0x3c')](_0x1f3241[_0x9659('0x39')],[_0x9659('0x3d')],[_0x9659('0x3e')]);if(_0x1f3241[_0x9659('0x34')]['Applications']){delete _0x1f3241['account'][_0x9659('0x38')];}if(_0x1f3241[_0x9659('0x34')][_0x9659('0x3b')]&&_0x1f3241['account'][_0x9659('0x3b')][_0x9659('0x36')][_0x9659('0x3f')]){return _0x1f3241[_0x9659('0x34')][_0x9659('0x3b')]['Contacts'][0x0];}var _0x5c84a3=_[_0x9659('0xc')](_0x5b1de8[_0x9659('0x24')],{'firstName':_0x5b1de8['body'][_0x9659('0x2c')],'ListId':_0xacf9fd[_0x9659('0x2a')]});_0x5c84a3[_0x5b1de8['body']['mapKey']]=_0x5b1de8[_0x9659('0x24')][_0x9659('0x2c')];return db[_0x9659('0x35')][_0x9659('0x40')](_0x5c84a3,{'fields':_0x23459e,'raw':!![]});}})[_0x9659('0x11')](function(_0x351949){_0x1f3241[_0x9659('0x41')]=_0x351949;if(_0x351949){var _0x526c27={'ContactId':_0x351949['id'],'FaxAccountId':_0x5b1de8[_0x9659('0x34')]['id'],'fax':_0x351949[_0x9659('0x42')]};return db[_0x9659('0x43')][_0x9659('0x33')]({'where':{'ContactId':_0x351949['id'],'closed':![],'FaxAccountId':_0x5b1de8['account']['id']}})['then'](function(_0x2a25a8){if(_0x2a25a8){return[_0x2a25a8,![]];}return db[_0x9659('0x43')]['create'](_0x526c27)[_0x9659('0x11')](function(_0x2405ee){return[_0x2405ee,!![]];});});}else{throw new Error(_0x9659('0x44'));}})[_0x9659('0x45')](function(_0xc03277,_0x451a07){var _0x38445f=_0xc03277['get']({'plain':!![]});if(_0x451a07){if(_0x1f3241[_0x9659('0x34')]['autoclose']){_0x1f3241[_0x9659('0x39')][_0x9659('0x46')]({'id':0x0,'priority':_0x1f3241[_0x9659('0x39')]['length']+0x1,'app':'close','appdata':_0x9659('0x47'),'interval':_0x9659('0x48')});}_0x38445f[_0x9659('0x49')]=!![];}else{_0x38445f[_0x9659('0x49')]=![];}_0x1f3241[_0x9659('0x4a')]=_0x38445f;return db[_0x9659('0x4b')]['create']({'body':_0x5b1de8[_0x9659('0x24')][_0x9659('0x24')],'FaxAccountId':_0x5b1de8['account']['id'],'FaxInteractionId':_0xc03277['id'],'direction':'in','ContactId':_0xc03277['ContactId'],'AttachmentId':_0x5b1de8[_0x9659('0x24')][_0x9659('0x4c')]});})[_0x9659('0x11')](function(_0x563f3a){_0x1f3241[_0x9659('0x1a')]=_0x563f3a;if(_0x1f3241[_0x9659('0x4a')]['UserId']){return db[_0x9659('0x4d')]['find']({'attributes':['id','name'],'where':{'id':_0x1f3241[_0x9659('0x4a')]['UserId']}})[_0x9659('0x11')](function(_0x122e53){if(_0x122e53){_0x1f3241['applications'][_0x9659('0x4e')]({'id':0x0,'priority':0x0,'app':_0x9659('0x4f'),'appdata':_0x122e53[_0x9659('0x50')]+','+(_0x1f3241[_0x9659('0x34')][_0x9659('0x51')]||0xa),'interval':_0x9659('0x48')});}return respondWithRpcPromise(_0x9659('0x52'),_0x9659('0x53'),_0x1f3241);});}return respondWithRpcPromise('Start',_0x9659('0x53'),_0x1f3241);})[_0x9659('0x11')](function(_0x2a0c44){_0x2a6c57(_0x2a0c44);})[_0x9659('0x1c')](function(_0x1385a3){_0x3a8730(_0x46bc40[_0x9659('0x18')](0x1f4,_0x1385a3[_0x9659('0x1a')]));});});};