22c0c8982d5f548bd5098e67c357972e6d46515b
[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 _0x277c=['*,*,*,*','queueId','FaxQueue','waitForTheAssignedQueue','Start','startRouting','moment','randomstring','ioredis','../../config/logger','rpc','../../config/environment','jayson/promise','client','http','redis','localhost','./faxAccount.socket','request','then','info','request\x20sent','debug','stringify','error','code','FaxAccount,\x20%s,\x20%s','message','result','catch','findAll','options','where','limit','map','include','model','attributes','GetFaxAccount','CmContact','describe','Sequelize','ValidationError','no\x20available\x20attributes','keys','createdAt','updatedAt','difference','CompanyId','ListId','body','isNil','from\x20is\x20mandatory','body\x20is\x20mandatory\x20and\x20not\x20empty','mapKey','mapKey\x20is\x20mandatory,\x20please\x20use\x20one\x20of\x20these:\x20','includes','from','FaxAccount','find','account','CmList','List','Contacts','DESC','FaxApplication','Applications','applications','list','orderBy','priority','asc','length','defaults','create','fax','FaxInteraction','Contact\x20not\x20found','spread','get','autoclose','push','unmanaged','created','interaction','FaxMessage','AttachmentId','UserId','name','unshift','agent','waitForTheAssignedAgent'];(function(_0x470f24,_0x2436a9){var _0x2c6fc8=function(_0x3ef190){while(--_0x3ef190){_0x470f24['push'](_0x470f24['shift']());}};_0x2c6fc8(++_0x2436a9);}(_0x277c,0x11a));var _0xc277=function(_0x580d98,_0x2c71ac){_0x580d98=_0x580d98-0x0;var _0x4d5579=_0x277c[_0x580d98];return _0x4d5579;};'use strict';var _=require('lodash');var util=require('util');var moment=require(_0xc277('0x0'));var BPromise=require('bluebird');var rs=require(_0xc277('0x1'));var fs=require('fs');var Redis=require(_0xc277('0x2'));var db=require('../../mysqldb')['db'];var utils=require('../../config/utils');var logger=require(_0xc277('0x3'))(_0xc277('0x4'));var config=require(_0xc277('0x5'));var jayson=require(_0xc277('0x6'));var client=jayson[_0xc277('0x7')][_0xc277('0x8')]({'port':0x232c});config['redis']=_['defaults'](config[_0xc277('0x9')],{'host':_0xc277('0xa'),'port':0x18eb});var socket=require('socket.io-emitter')(new Redis(config[_0xc277('0x9')]));require(_0xc277('0xb'))['register'](socket);function respondWithRpcPromise(_0x1732d1,_0x8dba9f,_0x212ef8){return new BPromise(function(_0x35d133,_0x12a713){return client[_0xc277('0xc')](_0x1732d1,_0x212ef8)[_0xc277('0xd')](function(_0x34f8f7){logger[_0xc277('0xe')]('FaxAccount,\x20%s,\x20%s',_0x8dba9f,_0xc277('0xf'));logger[_0xc277('0x10')]('FaxAccount,\x20%s,\x20%s,\x20%s',_0x8dba9f,'request\x20sent',JSON[_0xc277('0x11')](_0x34f8f7));if(_0x34f8f7[_0xc277('0x12')]){if(_0x34f8f7[_0xc277('0x12')][_0xc277('0x13')]===0x1f4){logger[_0xc277('0x12')](_0xc277('0x14'),_0x8dba9f,_0x34f8f7[_0xc277('0x12')][_0xc277('0x15')]);return _0x12a713(_0x34f8f7[_0xc277('0x12')]['message']);}logger[_0xc277('0x12')]('FaxAccount,\x20%s,\x20%s',_0x8dba9f,_0x34f8f7[_0xc277('0x12')][_0xc277('0x15')]);return _0x35d133(_0x34f8f7[_0xc277('0x12')][_0xc277('0x15')]);}else{logger[_0xc277('0xe')](_0xc277('0x14'),_0x8dba9f,'request\x20sent');_0x35d133(_0x34f8f7[_0xc277('0x16')][_0xc277('0x15')]);}})[_0xc277('0x17')](function(_0x19e339){logger[_0xc277('0x12')]('FaxAccount,\x20%s,\x20%s',_0x8dba9f,_0x19e339);_0x12a713(_0x19e339);});});}exports['GetFaxAccount']=function(_0x2ff2d5){var _0x1b12a6=this;return new Promise(function(_0x4d4509,_0x526812){return db['FaxAccount'][_0xc277('0x18')]({'raw':_0x2ff2d5[_0xc277('0x19')]?_0x2ff2d5[_0xc277('0x19')]['raw']===undefined?!![]:![]:!![],'where':_0x2ff2d5[_0xc277('0x19')]?_0x2ff2d5[_0xc277('0x19')][_0xc277('0x1a')]||null:null,'attributes':_0x2ff2d5[_0xc277('0x19')]?_0x2ff2d5['options']['attributes']||null:null,'limit':_0x2ff2d5[_0xc277('0x19')]?_0x2ff2d5[_0xc277('0x19')][_0xc277('0x1b')]||null:null,'include':_0x2ff2d5[_0xc277('0x19')]?_0x2ff2d5['options']['include']?_[_0xc277('0x1c')](_0x2ff2d5['options'][_0xc277('0x1d')],function(_0x8b87c5){return{'model':db[_0x8b87c5[_0xc277('0x1e')]],'as':_0x8b87c5['as'],'attributes':_0x8b87c5[_0xc277('0x1f')],'include':_0x8b87c5[_0xc277('0x1d')]?_[_0xc277('0x1c')](_0x8b87c5[_0xc277('0x1d')],function(_0x2f9e5a){return{'model':db[_0x2f9e5a['model']],'as':_0x2f9e5a['as'],'attributes':_0x2f9e5a[_0xc277('0x1f')],'include':_0x2f9e5a['include']?_[_0xc277('0x1c')](_0x2f9e5a[_0xc277('0x1d')],function(_0x27ff0c){return{'model':db[_0x27ff0c[_0xc277('0x1e')]],'as':_0x27ff0c['as'],'attributes':_0x27ff0c[_0xc277('0x1f')]};}):[]};}):[]};}):[]:[]})[_0xc277('0xd')](function(_0x48c619){logger[_0xc277('0xe')](_0xc277('0x20'),_0x2ff2d5);logger[_0xc277('0x10')](_0xc277('0x20'),_0x2ff2d5,JSON[_0xc277('0x11')](_0x48c619));_0x4d4509(_0x48c619);})[_0xc277('0x17')](function(_0x37b81e){logger['error'](_0xc277('0x20'),_0x37b81e[_0xc277('0x15')],_0x2ff2d5);_0x526812(_0x1b12a6['error'](0x1f4,_0x37b81e[_0xc277('0x15')]));});});};exports['NotifyFaxAccount']=function(_0x3e2650,_0x23f178,_0x162f7d){var _0x269b9f=this;return new Promise(function(_0x41cb9e,_0x201a29){var _0x50f73c={'body':_0x3e2650['body'],'channel':'fax'};var _0x440325=[];var _0xfd2310=[];var _0x5aece8={};return db[_0xc277('0x21')][_0xc277('0x22')]()[_0xc277('0xd')](function(_0x2fdadb){if(!_0x2fdadb){throw new db[(_0xc277('0x23'))][(_0xc277('0x24'))](_0xc277('0x25'));}_0x440325=_['difference'](_[_0xc277('0x26')](_0x2fdadb),[_0xc277('0x27'),_0xc277('0x28')]);_0xfd2310=_[_0xc277('0x29')](_[_0xc277('0x26')](_0x2fdadb),[_0xc277('0x27'),'updatedAt',_0xc277('0x2a'),_0xc277('0x2b')]);if(_0x3e2650[_0xc277('0x2c')]['id']){delete _0x3e2650[_0xc277('0x2c')]['id'];}if(_[_0xc277('0x2d')](_0x3e2650['body']['from'])){throw new db['Sequelize'][(_0xc277('0x24'))](_0xc277('0x2e'));}if(_[_0xc277('0x2d')](_0x3e2650[_0xc277('0x2c')]['body'])||_0x3e2650[_0xc277('0x2c')][_0xc277('0x2c')]===''){throw new db['Sequelize'][(_0xc277('0x24'))](_0xc277('0x2f'));}if(_[_0xc277('0x2d')](_0x3e2650[_0xc277('0x2c')][_0xc277('0x30')])){throw new db[(_0xc277('0x23'))][(_0xc277('0x24'))](_0xc277('0x31')+_0xfd2310);}if(!_[_0xc277('0x32')](_0xfd2310,_0x3e2650[_0xc277('0x2c')][_0xc277('0x30')])){throw new db[(_0xc277('0x23'))][(_0xc277('0x24'))]('mapKey\x20invalid,\x20please\x20use\x20one\x20of\x20these:\x20'+_0xfd2310);}_0x5aece8[_0x3e2650[_0xc277('0x2c')]['mapKey']]=_0x3e2650[_0xc277('0x2c')][_0xc277('0x33')];})[_0xc277('0xd')](function(){return db[_0xc277('0x34')][_0xc277('0x35')]({'where':{'id':_0x3e2650[_0xc277('0x36')]['id']},'include':[{'model':db[_0xc277('0x37')],'as':_0xc277('0x38'),'include':[{'model':db[_0xc277('0x21')],'as':_0xc277('0x39'),'where':_0x5aece8,'limit':0x1,'order':[[_0xc277('0x28'),_0xc277('0x3a')]]}]},{'model':db[_0xc277('0x3b')],'as':_0xc277('0x3c')}]});})[_0xc277('0xd')](function(_0x4db7f3){if(_0x4db7f3&&_0x4db7f3['List']){var _0x229dea=_0x4db7f3['get']({'plain':!![]});_0x50f73c['account']=_0x229dea;_0x50f73c[_0xc277('0x3d')]=_0x229dea['Applications'];_0x50f73c[_0xc277('0x3e')]=_0x229dea['List'];_0x50f73c[_0xc277('0x3d')]=_[_0xc277('0x3f')](_0x50f73c[_0xc277('0x3d')],[_0xc277('0x40')],[_0xc277('0x41')]);if(_0x50f73c['account'][_0xc277('0x3c')]){delete _0x50f73c['account']['Applications'];}if(_0x50f73c[_0xc277('0x36')][_0xc277('0x38')]&&_0x50f73c[_0xc277('0x36')][_0xc277('0x38')][_0xc277('0x39')][_0xc277('0x42')]){return _0x50f73c[_0xc277('0x36')][_0xc277('0x38')][_0xc277('0x39')][0x0];}var _0x4fcad4=_[_0xc277('0x43')](_0x3e2650['body'],{'firstName':_0x3e2650[_0xc277('0x2c')][_0xc277('0x33')],'ListId':_0x229dea[_0xc277('0x2b')]});_0x4fcad4[_0x3e2650[_0xc277('0x2c')][_0xc277('0x30')]]=_0x3e2650['body'][_0xc277('0x33')];return db[_0xc277('0x21')][_0xc277('0x44')](_0x4fcad4,{'fields':_0x440325,'raw':!![]});}})[_0xc277('0xd')](function(_0x11a83a){_0x50f73c['contact']=_0x11a83a;if(_0x11a83a){var _0xc703bc={'ContactId':_0x11a83a['id'],'FaxAccountId':_0x3e2650[_0xc277('0x36')]['id'],'fax':_0x11a83a[_0xc277('0x45')]};return db['FaxInteraction'][_0xc277('0x35')]({'where':{'ContactId':_0x11a83a['id'],'closed':![],'FaxAccountId':_0x3e2650['account']['id']}})[_0xc277('0xd')](function(_0x33aed7){if(_0x33aed7){return[_0x33aed7,![]];}return db[_0xc277('0x46')]['create'](_0xc703bc)[_0xc277('0xd')](function(_0x47744e){return[_0x47744e,!![]];});});}else{throw new Error(_0xc277('0x47'));}})[_0xc277('0x48')](function(_0x2f5ce4,_0x33a47e){var _0x348cd6=_0x2f5ce4[_0xc277('0x49')]({'plain':!![]});if(_0x33a47e){if(_0x50f73c[_0xc277('0x36')][_0xc277('0x4a')]){_0x50f73c[_0xc277('0x3d')][_0xc277('0x4b')]({'id':0x0,'priority':_0x50f73c[_0xc277('0x3d')][_0xc277('0x42')]+0x1,'app':'close','appdata':_0xc277('0x4c'),'interval':'*,*,*,*'});}_0x348cd6[_0xc277('0x4d')]=!![];}else{_0x348cd6[_0xc277('0x4d')]=![];}_0x50f73c[_0xc277('0x4e')]=_0x348cd6;return db[_0xc277('0x4f')][_0xc277('0x44')]({'body':_0x3e2650[_0xc277('0x2c')][_0xc277('0x2c')],'FaxAccountId':_0x3e2650[_0xc277('0x36')]['id'],'FaxInteractionId':_0x2f5ce4['id'],'direction':'in','ContactId':_0x2f5ce4['ContactId'],'AttachmentId':_0x3e2650[_0xc277('0x2c')][_0xc277('0x50')]});})['then'](function(_0x9a8c4f){_0x50f73c[_0xc277('0x15')]=_0x9a8c4f;if(!_0x50f73c[_0xc277('0x4e')][_0xc277('0x51')])return;return db['User'][_0xc277('0x35')]({'attributes':['id',_0xc277('0x52')],'where':{'id':_0x50f73c[_0xc277('0x4e')][_0xc277('0x51')]}});})['then'](function(_0x238254){if(_0x238254){_0x50f73c[_0xc277('0x3d')][_0xc277('0x53')]({'id':0x0,'priority':0x0,'app':_0xc277('0x54'),'appdata':_0x238254[_0xc277('0x52')]+','+(_0x50f73c['account'][_0xc277('0x55')]||0xa),'interval':_0xc277('0x56')});}if(!_0x50f73c[_0xc277('0x4e')][_0xc277('0x57')])return;return db[_0xc277('0x58')][_0xc277('0x35')]({'attributes':['id',_0xc277('0x52')],'where':{'id':_0x50f73c[_0xc277('0x4e')][_0xc277('0x57')]}});})[_0xc277('0xd')](function(_0x27de6d){if(_0x27de6d){_0x50f73c[_0xc277('0x3d')][_0xc277('0x53')]({'id':0x0,'priority':0x1,'app':'queue','appdata':_0x27de6d[_0xc277('0x52')]+','+(_0x50f73c[_0xc277('0x36')][_0xc277('0x59')]||0x12c),'interval':_0xc277('0x56')});}return respondWithRpcPromise(_0xc277('0x5a'),_0xc277('0x5b'),_0x50f73c);})['then'](function(_0xe051d6){_0x41cb9e(_0xe051d6);})['catch'](function(_0xf1067c){_0x201a29(_0x269b9f[_0xc277('0x12')](0x1f4,_0xf1067c[_0xc277('0x15')]));});});};