Built motion from commit (unavailable).|2.5.8
[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 _0x8d3a=['startRouting','util','moment','bluebird','randomstring','../../mysqldb','rpc','../../config/environment','jayson/promise','redis','defaults','socket.io-emitter','./faxAccount.socket','register','request','then','info','FaxAccount,\x20%s,\x20%s','request\x20sent','debug','stringify','error','code','message','GetFaxAccount','FaxAccount','findAll','options','raw','attributes','limit','map','include','model','catch','body','fax','CmContact','describe','Sequelize','no\x20available\x20attributes','keys','createdAt','updatedAt','difference','CompanyId','ListId','ValidationError','isNil','mapKey','mapKey\x20is\x20mandatory,\x20please\x20use\x20one\x20of\x20these:\x20','from','find','account','CmList','List','Contacts','DESC','Applications','get','applications','list','orderBy','priority','asc','contact','create','Contact\x20not\x20found','spread','autoclose','push','length','close','unmanaged','*,*,*,*','interaction','FaxMessage','ContactId','AttachmentId','name','UserId','unshift','agent','waitForTheAssignedAgent','Start'];(function(_0x12a559,_0x33f24f){var _0x1ac9ad=function(_0x1c18dc){while(--_0x1c18dc){_0x12a559['push'](_0x12a559['shift']());}};_0x1ac9ad(++_0x33f24f);}(_0x8d3a,0x155));var _0xa8d3=function(_0x1d8898,_0x4d42d4){_0x1d8898=_0x1d8898-0x0;var _0x3e6134=_0x8d3a[_0x1d8898];return _0x3e6134;};'use strict';var _=require('lodash');var util=require(_0xa8d3('0x0'));var moment=require(_0xa8d3('0x1'));var BPromise=require(_0xa8d3('0x2'));var rs=require(_0xa8d3('0x3'));var fs=require('fs');var Redis=require('ioredis');var db=require(_0xa8d3('0x4'))['db'];var utils=require('../../config/utils');var logger=require('../../config/logger')(_0xa8d3('0x5'));var config=require(_0xa8d3('0x6'));var jayson=require(_0xa8d3('0x7'));var client=jayson['client']['http']({'port':0x232c});config[_0xa8d3('0x8')]=_[_0xa8d3('0x9')](config[_0xa8d3('0x8')],{'host':'localhost','port':0x18eb});var socket=require(_0xa8d3('0xa'))(new Redis(config[_0xa8d3('0x8')]));require(_0xa8d3('0xb'))[_0xa8d3('0xc')](socket);function respondWithRpcPromise(_0x331431,_0x41f8d4,_0x3b26e8){return new BPromise(function(_0xe5383c,_0x19f8e2){return client[_0xa8d3('0xd')](_0x331431,_0x3b26e8)[_0xa8d3('0xe')](function(_0x1b7ef5){logger[_0xa8d3('0xf')](_0xa8d3('0x10'),_0x41f8d4,_0xa8d3('0x11'));logger[_0xa8d3('0x12')]('FaxAccount,\x20%s,\x20%s,\x20%s',_0x41f8d4,_0xa8d3('0x11'),JSON[_0xa8d3('0x13')](_0x1b7ef5));if(_0x1b7ef5[_0xa8d3('0x14')]){if(_0x1b7ef5['error'][_0xa8d3('0x15')]===0x1f4){logger[_0xa8d3('0x14')](_0xa8d3('0x10'),_0x41f8d4,_0x1b7ef5[_0xa8d3('0x14')][_0xa8d3('0x16')]);return _0x19f8e2(_0x1b7ef5['error'][_0xa8d3('0x16')]);}logger['error'](_0xa8d3('0x10'),_0x41f8d4,_0x1b7ef5[_0xa8d3('0x14')][_0xa8d3('0x16')]);return _0xe5383c(_0x1b7ef5[_0xa8d3('0x14')][_0xa8d3('0x16')]);}else{logger[_0xa8d3('0xf')](_0xa8d3('0x10'),_0x41f8d4,_0xa8d3('0x11'));_0xe5383c(_0x1b7ef5['result'][_0xa8d3('0x16')]);}})['catch'](function(_0x580de8){logger['error'](_0xa8d3('0x10'),_0x41f8d4,_0x580de8);_0x19f8e2(_0x580de8);});});}exports[_0xa8d3('0x17')]=function(_0x360c73){var _0x11a8ab=this;return new Promise(function(_0x4fa7cd,_0x3e9d33){return db[_0xa8d3('0x18')][_0xa8d3('0x19')]({'raw':_0x360c73[_0xa8d3('0x1a')]?_0x360c73[_0xa8d3('0x1a')][_0xa8d3('0x1b')]===undefined?!![]:![]:!![],'where':_0x360c73[_0xa8d3('0x1a')]?_0x360c73[_0xa8d3('0x1a')]['where']||null:null,'attributes':_0x360c73['options']?_0x360c73['options'][_0xa8d3('0x1c')]||null:null,'limit':_0x360c73[_0xa8d3('0x1a')]?_0x360c73[_0xa8d3('0x1a')][_0xa8d3('0x1d')]||null:null,'include':_0x360c73[_0xa8d3('0x1a')]?_0x360c73[_0xa8d3('0x1a')]['include']?_[_0xa8d3('0x1e')](_0x360c73[_0xa8d3('0x1a')][_0xa8d3('0x1f')],function(_0x131638){return{'model':db[_0x131638[_0xa8d3('0x20')]],'as':_0x131638['as'],'attributes':_0x131638[_0xa8d3('0x1c')],'include':_0x131638[_0xa8d3('0x1f')]?_[_0xa8d3('0x1e')](_0x131638[_0xa8d3('0x1f')],function(_0x2903ff){return{'model':db[_0x2903ff[_0xa8d3('0x20')]],'as':_0x2903ff['as'],'attributes':_0x2903ff[_0xa8d3('0x1c')],'include':_0x2903ff['include']?_[_0xa8d3('0x1e')](_0x2903ff[_0xa8d3('0x1f')],function(_0x103553){return{'model':db[_0x103553['model']],'as':_0x103553['as'],'attributes':_0x103553['attributes']};}):[]};}):[]};}):[]:[]})[_0xa8d3('0xe')](function(_0x5e9e07){logger[_0xa8d3('0xf')](_0xa8d3('0x17'),_0x360c73);logger['debug'](_0xa8d3('0x17'),_0x360c73,JSON[_0xa8d3('0x13')](_0x5e9e07));_0x4fa7cd(_0x5e9e07);})[_0xa8d3('0x21')](function(_0x5cc4d0){logger[_0xa8d3('0x14')]('GetFaxAccount',_0x5cc4d0[_0xa8d3('0x16')],_0x360c73);_0x3e9d33(_0x11a8ab[_0xa8d3('0x14')](0x1f4,_0x5cc4d0[_0xa8d3('0x16')]));});});};exports['NotifyFaxAccount']=function(_0xb34306,_0x26ce3c,_0x3a4466){var _0x5780ae=this;return new Promise(function(_0xb9b901,_0x1f5ce9){var _0x5507cd={'body':_0xb34306[_0xa8d3('0x22')],'channel':_0xa8d3('0x23')};var _0x6e6fac=[];var _0x23df11=[];var _0x3ae893={};return db[_0xa8d3('0x24')][_0xa8d3('0x25')]()[_0xa8d3('0xe')](function(_0x5c8679){if(!_0x5c8679){throw new db[(_0xa8d3('0x26'))]['ValidationError'](_0xa8d3('0x27'));}_0x6e6fac=_['difference'](_[_0xa8d3('0x28')](_0x5c8679),[_0xa8d3('0x29'),_0xa8d3('0x2a')]);_0x23df11=_[_0xa8d3('0x2b')](_['keys'](_0x5c8679),[_0xa8d3('0x29'),'updatedAt',_0xa8d3('0x2c'),_0xa8d3('0x2d')]);if(_0xb34306[_0xa8d3('0x22')]['id']){delete _0xb34306[_0xa8d3('0x22')]['id'];}if(_['isNil'](_0xb34306['body']['from'])){throw new db[(_0xa8d3('0x26'))]['ValidationError']('from\x20is\x20mandatory');}if(_['isNil'](_0xb34306['body'][_0xa8d3('0x22')])||_0xb34306[_0xa8d3('0x22')]['body']===''){throw new db[(_0xa8d3('0x26'))][(_0xa8d3('0x2e'))]('body\x20is\x20mandatory\x20and\x20not\x20empty');}if(_[_0xa8d3('0x2f')](_0xb34306[_0xa8d3('0x22')][_0xa8d3('0x30')])){throw new db[(_0xa8d3('0x26'))][(_0xa8d3('0x2e'))](_0xa8d3('0x31')+_0x23df11);}if(!_['includes'](_0x23df11,_0xb34306[_0xa8d3('0x22')][_0xa8d3('0x30')])){throw new db[(_0xa8d3('0x26'))]['ValidationError']('mapKey\x20invalid,\x20please\x20use\x20one\x20of\x20these:\x20'+_0x23df11);}_0x3ae893[_0xb34306[_0xa8d3('0x22')][_0xa8d3('0x30')]]=_0xb34306[_0xa8d3('0x22')][_0xa8d3('0x32')];})[_0xa8d3('0xe')](function(){return db[_0xa8d3('0x18')][_0xa8d3('0x33')]({'where':{'id':_0xb34306[_0xa8d3('0x34')]['id']},'include':[{'model':db[_0xa8d3('0x35')],'as':_0xa8d3('0x36'),'include':[{'model':db[_0xa8d3('0x24')],'as':_0xa8d3('0x37'),'where':_0x3ae893,'limit':0x1,'order':[['updatedAt',_0xa8d3('0x38')]]}]},{'model':db['FaxApplication'],'as':_0xa8d3('0x39')}]});})[_0xa8d3('0xe')](function(_0x5edd0a){if(_0x5edd0a&&_0x5edd0a[_0xa8d3('0x36')]){var _0x198e33=_0x5edd0a[_0xa8d3('0x3a')]({'plain':!![]});_0x5507cd['account']=_0x198e33;_0x5507cd[_0xa8d3('0x3b')]=_0x198e33[_0xa8d3('0x39')];_0x5507cd[_0xa8d3('0x3c')]=_0x198e33['List'];_0x5507cd[_0xa8d3('0x3b')]=_[_0xa8d3('0x3d')](_0x5507cd[_0xa8d3('0x3b')],[_0xa8d3('0x3e')],[_0xa8d3('0x3f')]);if(_0x5507cd[_0xa8d3('0x34')][_0xa8d3('0x39')]){delete _0x5507cd[_0xa8d3('0x34')][_0xa8d3('0x39')];}if(_0x5507cd[_0xa8d3('0x34')]['List']&&_0x5507cd['account'][_0xa8d3('0x36')][_0xa8d3('0x37')]['length']){return _0x5507cd[_0xa8d3('0x34')][_0xa8d3('0x36')][_0xa8d3('0x37')][0x0];}var _0x4128b7=_[_0xa8d3('0x9')](_0xb34306['body'],{'firstName':_0xb34306[_0xa8d3('0x22')]['from'],'ListId':_0x198e33[_0xa8d3('0x2d')]});_0x4128b7[_0xb34306[_0xa8d3('0x22')][_0xa8d3('0x30')]]=_0xb34306[_0xa8d3('0x22')]['from'];return db[_0xa8d3('0x24')]['create'](_0x4128b7,{'fields':_0x6e6fac,'raw':!![]});}})[_0xa8d3('0xe')](function(_0x1f1ae1){_0x5507cd[_0xa8d3('0x40')]=_0x1f1ae1;if(_0x1f1ae1){var _0x163f53={'ContactId':_0x1f1ae1['id'],'FaxAccountId':_0xb34306['account']['id'],'fax':_0x1f1ae1[_0xa8d3('0x23')]};return db['FaxInteraction'][_0xa8d3('0x33')]({'where':{'ContactId':_0x1f1ae1['id'],'closed':![],'FaxAccountId':_0xb34306[_0xa8d3('0x34')]['id']}})['then'](function(_0x218712){if(_0x218712){return[_0x218712,![]];}return db['FaxInteraction'][_0xa8d3('0x41')](_0x163f53)['then'](function(_0x43151a){return[_0x43151a,!![]];});});}else{throw new Error(_0xa8d3('0x42'));}})[_0xa8d3('0x43')](function(_0x453284,_0x74161){var _0x2f6a1a=_0x453284[_0xa8d3('0x3a')]({'plain':!![]});if(_0x74161){if(_0x5507cd[_0xa8d3('0x34')][_0xa8d3('0x44')]){_0x5507cd[_0xa8d3('0x3b')][_0xa8d3('0x45')]({'id':0x0,'priority':_0x5507cd[_0xa8d3('0x3b')][_0xa8d3('0x46')]+0x1,'app':_0xa8d3('0x47'),'appdata':_0xa8d3('0x48'),'interval':_0xa8d3('0x49')});}_0x2f6a1a['created']=!![];}else{_0x2f6a1a['created']=![];}_0x5507cd[_0xa8d3('0x4a')]=_0x2f6a1a;return db[_0xa8d3('0x4b')]['create']({'body':_0xb34306['body']['body'],'FaxAccountId':_0xb34306[_0xa8d3('0x34')]['id'],'FaxInteractionId':_0x453284['id'],'direction':'in','ContactId':_0x453284[_0xa8d3('0x4c')],'AttachmentId':_0xb34306[_0xa8d3('0x22')][_0xa8d3('0x4d')]});})[_0xa8d3('0xe')](function(_0x177cbe){_0x5507cd[_0xa8d3('0x16')]=_0x177cbe;if(_0x5507cd[_0xa8d3('0x4a')]['UserId']){return db['User']['find']({'attributes':['id',_0xa8d3('0x4e')],'where':{'id':_0x5507cd['interaction'][_0xa8d3('0x4f')]}})[_0xa8d3('0xe')](function(_0x4e8fdf){if(_0x4e8fdf){_0x5507cd[_0xa8d3('0x3b')][_0xa8d3('0x50')]({'id':0x0,'priority':0x0,'app':_0xa8d3('0x51'),'appdata':_0x4e8fdf['name']+','+(_0x5507cd[_0xa8d3('0x34')][_0xa8d3('0x52')]||0xa),'interval':_0xa8d3('0x49')});}return respondWithRpcPromise(_0xa8d3('0x53'),_0xa8d3('0x54'),_0x5507cd);});}return respondWithRpcPromise(_0xa8d3('0x53'),'startRouting',_0x5507cd);})[_0xa8d3('0xe')](function(_0x18de2e){_0xb9b901(_0x18de2e);})[_0xa8d3('0x21')](function(_0x10a52c){_0x1f5ce9(_0x5780ae[_0xa8d3('0x14')](0x1f4,_0x10a52c['message']));});});};