Built motion from commit 9d7072cc.|2.5.39
[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 _0xeaf0=['agent','startRouting','Start','moment','bluebird','randomstring','ioredis','../../mysqldb','rpc','jayson/promise','redis','defaults','localhost','socket.io-emitter','then','info','request\x20sent','debug','FaxAccount,\x20%s,\x20%s,\x20%s','error','code','FaxAccount,\x20%s,\x20%s','message','result','catch','findAll','options','raw','where','attributes','limit','include','map','model','GetFaxAccount','stringify','NotifyFaxAccount','body','CmContact','describe','Sequelize','no\x20available\x20attributes','difference','keys','createdAt','updatedAt','CompanyId','ListId','from','ValidationError','from\x20is\x20mandatory','isNil','includes','mapKey\x20invalid,\x20please\x20use\x20one\x20of\x20these:\x20','mapKey','FaxAccount','account','List','Contacts','DESC','FaxApplication','Applications','get','applications','length','contact','FaxInteraction','create','Contact\x20not\x20found','spread','autoclose','push','unmanaged','*,*,*,*','created','interaction','FaxMessage','AttachmentId','UserId','User','find','name'];(function(_0x2b2da3,_0x1c73d0){var _0x1358c4=function(_0x3621e4){while(--_0x3621e4){_0x2b2da3['push'](_0x2b2da3['shift']());}};_0x1358c4(++_0x1c73d0);}(_0xeaf0,0xf9));var _0x0eaf=function(_0x38fc81,_0x3a5b08){_0x38fc81=_0x38fc81-0x0;var _0xbf700c=_0xeaf0[_0x38fc81];return _0xbf700c;};'use strict';var _=require('lodash');var util=require('util');var moment=require(_0x0eaf('0x0'));var BPromise=require(_0x0eaf('0x1'));var rs=require(_0x0eaf('0x2'));var fs=require('fs');var Redis=require(_0x0eaf('0x3'));var db=require(_0x0eaf('0x4'))['db'];var utils=require('../../config/utils');var logger=require('../../config/logger')(_0x0eaf('0x5'));var config=require('../../config/environment');var jayson=require(_0x0eaf('0x6'));var client=jayson['client']['http']({'port':0x232c});config[_0x0eaf('0x7')]=_[_0x0eaf('0x8')](config['redis'],{'host':_0x0eaf('0x9'),'port':0x18eb});var socket=require(_0x0eaf('0xa'))(new Redis(config[_0x0eaf('0x7')]));require('./faxAccount.socket')['register'](socket);function respondWithRpcPromise(_0x1dd5e2,_0x4c2561,_0x2c7fef){return new BPromise(function(_0x29cbcc,_0x5d1a3e){return client['request'](_0x1dd5e2,_0x2c7fef)[_0x0eaf('0xb')](function(_0x3803a6){logger[_0x0eaf('0xc')]('FaxAccount,\x20%s,\x20%s',_0x4c2561,_0x0eaf('0xd'));logger[_0x0eaf('0xe')](_0x0eaf('0xf'),_0x4c2561,_0x0eaf('0xd'),JSON['stringify'](_0x3803a6));if(_0x3803a6[_0x0eaf('0x10')]){if(_0x3803a6[_0x0eaf('0x10')][_0x0eaf('0x11')]===0x1f4){logger[_0x0eaf('0x10')](_0x0eaf('0x12'),_0x4c2561,_0x3803a6[_0x0eaf('0x10')][_0x0eaf('0x13')]);return _0x5d1a3e(_0x3803a6['error'][_0x0eaf('0x13')]);}logger[_0x0eaf('0x10')]('FaxAccount,\x20%s,\x20%s',_0x4c2561,_0x3803a6[_0x0eaf('0x10')][_0x0eaf('0x13')]);return _0x29cbcc(_0x3803a6['error'][_0x0eaf('0x13')]);}else{logger[_0x0eaf('0xc')](_0x0eaf('0x12'),_0x4c2561,_0x0eaf('0xd'));_0x29cbcc(_0x3803a6[_0x0eaf('0x14')]['message']);}})[_0x0eaf('0x15')](function(_0x37b85f){logger[_0x0eaf('0x10')](_0x0eaf('0x12'),_0x4c2561,_0x37b85f);_0x5d1a3e(_0x37b85f);});});}exports['GetFaxAccount']=function(_0x3441df){var _0x18eb69=this;return new Promise(function(_0x31a1b3,_0x2b6cfd){return db['FaxAccount'][_0x0eaf('0x16')]({'raw':_0x3441df[_0x0eaf('0x17')]?_0x3441df['options'][_0x0eaf('0x18')]===undefined?!![]:![]:!![],'where':_0x3441df['options']?_0x3441df['options'][_0x0eaf('0x19')]||null:null,'attributes':_0x3441df['options']?_0x3441df[_0x0eaf('0x17')][_0x0eaf('0x1a')]||null:null,'limit':_0x3441df['options']?_0x3441df[_0x0eaf('0x17')][_0x0eaf('0x1b')]||null:null,'include':_0x3441df[_0x0eaf('0x17')]?_0x3441df['options'][_0x0eaf('0x1c')]?_[_0x0eaf('0x1d')](_0x3441df[_0x0eaf('0x17')]['include'],function(_0x16c8d9){return{'model':db[_0x16c8d9['model']],'as':_0x16c8d9['as'],'attributes':_0x16c8d9['attributes'],'include':_0x16c8d9['include']?_[_0x0eaf('0x1d')](_0x16c8d9[_0x0eaf('0x1c')],function(_0xaa8c41){return{'model':db[_0xaa8c41[_0x0eaf('0x1e')]],'as':_0xaa8c41['as'],'attributes':_0xaa8c41[_0x0eaf('0x1a')],'include':_0xaa8c41[_0x0eaf('0x1c')]?_[_0x0eaf('0x1d')](_0xaa8c41[_0x0eaf('0x1c')],function(_0x18054a){return{'model':db[_0x18054a[_0x0eaf('0x1e')]],'as':_0x18054a['as'],'attributes':_0x18054a['attributes']};}):[]};}):[]};}):[]:[]})[_0x0eaf('0xb')](function(_0x291907){logger[_0x0eaf('0xc')](_0x0eaf('0x1f'),_0x3441df);logger[_0x0eaf('0xe')](_0x0eaf('0x1f'),_0x3441df,JSON[_0x0eaf('0x20')](_0x291907));_0x31a1b3(_0x291907);})[_0x0eaf('0x15')](function(_0x3aefbf){logger[_0x0eaf('0x10')](_0x0eaf('0x1f'),_0x3aefbf[_0x0eaf('0x13')],_0x3441df);_0x2b6cfd(_0x18eb69[_0x0eaf('0x10')](0x1f4,_0x3aefbf[_0x0eaf('0x13')]));});});};exports[_0x0eaf('0x21')]=function(_0x4300fe,_0x1e235d,_0x472d76){var _0x1c7359=this;return new Promise(function(_0x55413a,_0x1f7bed){var _0x4a4c21={'body':_0x4300fe[_0x0eaf('0x22')],'channel':'fax'};var _0x429b14=[];var _0x4bb1d8=[];var _0x3ee804={};return db[_0x0eaf('0x23')][_0x0eaf('0x24')]()[_0x0eaf('0xb')](function(_0xb37a70){if(!_0xb37a70){throw new db[(_0x0eaf('0x25'))]['ValidationError'](_0x0eaf('0x26'));}_0x429b14=_[_0x0eaf('0x27')](_[_0x0eaf('0x28')](_0xb37a70),[_0x0eaf('0x29'),'updatedAt']);_0x4bb1d8=_['difference'](_['keys'](_0xb37a70),[_0x0eaf('0x29'),_0x0eaf('0x2a'),_0x0eaf('0x2b'),_0x0eaf('0x2c')]);if(_0x4300fe['body']['id']){delete _0x4300fe['body']['id'];}if(_['isNil'](_0x4300fe[_0x0eaf('0x22')][_0x0eaf('0x2d')])){throw new db[(_0x0eaf('0x25'))][(_0x0eaf('0x2e'))](_0x0eaf('0x2f'));}if(_[_0x0eaf('0x30')](_0x4300fe[_0x0eaf('0x22')][_0x0eaf('0x22')])||_0x4300fe[_0x0eaf('0x22')][_0x0eaf('0x22')]===''){throw new db['Sequelize'][(_0x0eaf('0x2e'))]('body\x20is\x20mandatory\x20and\x20not\x20empty');}if(_[_0x0eaf('0x30')](_0x4300fe['body']['mapKey'])){throw new db[(_0x0eaf('0x25'))][(_0x0eaf('0x2e'))]('mapKey\x20is\x20mandatory,\x20please\x20use\x20one\x20of\x20these:\x20'+_0x4bb1d8);}if(!_[_0x0eaf('0x31')](_0x4bb1d8,_0x4300fe[_0x0eaf('0x22')]['mapKey'])){throw new db[(_0x0eaf('0x25'))][(_0x0eaf('0x2e'))](_0x0eaf('0x32')+_0x4bb1d8);}_0x3ee804[_0x4300fe[_0x0eaf('0x22')][_0x0eaf('0x33')]]=_0x4300fe[_0x0eaf('0x22')]['from'];})[_0x0eaf('0xb')](function(){return db[_0x0eaf('0x34')]['find']({'where':{'id':_0x4300fe[_0x0eaf('0x35')]['id']},'include':[{'model':db['CmList'],'as':_0x0eaf('0x36'),'include':[{'model':db[_0x0eaf('0x23')],'as':_0x0eaf('0x37'),'where':_0x3ee804,'limit':0x1,'order':[[_0x0eaf('0x2a'),_0x0eaf('0x38')]]}]},{'model':db[_0x0eaf('0x39')],'as':_0x0eaf('0x3a')}]});})[_0x0eaf('0xb')](function(_0x3786f2){if(_0x3786f2&&_0x3786f2[_0x0eaf('0x36')]){var _0x2d303b=_0x3786f2[_0x0eaf('0x3b')]({'plain':!![]});_0x4a4c21[_0x0eaf('0x35')]=_0x2d303b;_0x4a4c21['applications']=_0x2d303b[_0x0eaf('0x3a')];_0x4a4c21['list']=_0x2d303b[_0x0eaf('0x36')];_0x4a4c21[_0x0eaf('0x3c')]=_['orderBy'](_0x4a4c21[_0x0eaf('0x3c')],['priority'],['asc']);if(_0x4a4c21[_0x0eaf('0x35')][_0x0eaf('0x3a')]){delete _0x4a4c21[_0x0eaf('0x35')][_0x0eaf('0x3a')];}if(_0x4a4c21['account']['List']&&_0x4a4c21[_0x0eaf('0x35')][_0x0eaf('0x36')]['Contacts'][_0x0eaf('0x3d')]){return _0x4a4c21[_0x0eaf('0x35')]['List'][_0x0eaf('0x37')][0x0];}var _0x3b426f=_[_0x0eaf('0x8')](_0x4300fe[_0x0eaf('0x22')],{'firstName':_0x4300fe['body']['from'],'ListId':_0x2d303b[_0x0eaf('0x2c')]});_0x3b426f[_0x4300fe[_0x0eaf('0x22')][_0x0eaf('0x33')]]=_0x4300fe[_0x0eaf('0x22')]['from'];return db['CmContact']['create'](_0x3b426f,{'fields':_0x429b14,'raw':!![]});}})[_0x0eaf('0xb')](function(_0x15f4e3){_0x4a4c21[_0x0eaf('0x3e')]=_0x15f4e3;if(_0x15f4e3){var _0x5c2988={'ContactId':_0x15f4e3['id'],'FaxAccountId':_0x4300fe[_0x0eaf('0x35')]['id'],'fax':_0x15f4e3['fax']};return db[_0x0eaf('0x3f')]['find']({'where':{'ContactId':_0x15f4e3['id'],'closed':![],'FaxAccountId':_0x4300fe[_0x0eaf('0x35')]['id']}})['then'](function(_0x5a1202){if(_0x5a1202){return[_0x5a1202,![]];}return db['FaxInteraction'][_0x0eaf('0x40')](_0x5c2988)['then'](function(_0x2d73ba){return[_0x2d73ba,!![]];});});}else{throw new Error(_0x0eaf('0x41'));}})[_0x0eaf('0x42')](function(_0x6f8a99,_0xf92562){var _0x1d3f79=_0x6f8a99[_0x0eaf('0x3b')]({'plain':!![]});if(_0xf92562){if(_0x4a4c21[_0x0eaf('0x35')][_0x0eaf('0x43')]){_0x4a4c21['applications'][_0x0eaf('0x44')]({'id':0x0,'priority':_0x4a4c21[_0x0eaf('0x3c')][_0x0eaf('0x3d')]+0x1,'app':'close','appdata':_0x0eaf('0x45'),'interval':_0x0eaf('0x46')});}_0x1d3f79[_0x0eaf('0x47')]=!![];}else{_0x1d3f79['created']=![];}_0x4a4c21[_0x0eaf('0x48')]=_0x1d3f79;return db[_0x0eaf('0x49')][_0x0eaf('0x40')]({'body':_0x4300fe[_0x0eaf('0x22')][_0x0eaf('0x22')],'FaxAccountId':_0x4300fe['account']['id'],'FaxInteractionId':_0x6f8a99['id'],'direction':'in','ContactId':_0x6f8a99['ContactId'],'AttachmentId':_0x4300fe[_0x0eaf('0x22')][_0x0eaf('0x4a')]});})['then'](function(_0x4d2ef4){_0x4a4c21[_0x0eaf('0x13')]=_0x4d2ef4;if(_0x4a4c21[_0x0eaf('0x48')][_0x0eaf('0x4b')]){return db[_0x0eaf('0x4c')][_0x0eaf('0x4d')]({'attributes':['id',_0x0eaf('0x4e')],'where':{'id':_0x4a4c21['interaction']['UserId']}})[_0x0eaf('0xb')](function(_0x2cf403){if(_0x2cf403){_0x4a4c21[_0x0eaf('0x3c')]['unshift']({'id':0x0,'priority':0x0,'app':_0x0eaf('0x4f'),'appdata':_0x2cf403[_0x0eaf('0x4e')]+','+(_0x4a4c21[_0x0eaf('0x35')]['waitForTheAssignedAgent']||0xa),'interval':_0x0eaf('0x46')});}return respondWithRpcPromise('Start',_0x0eaf('0x50'),_0x4a4c21);});}return respondWithRpcPromise(_0x0eaf('0x51'),_0x0eaf('0x50'),_0x4a4c21);})['then'](function(_0x2141bd){_0x55413a(_0x2141bd);})['catch'](function(_0x2ee33d){_0x1f7bed(_0x1c7359[_0x0eaf('0x10')](0x1f4,_0x2ee33d[_0x0eaf('0x13')]));});});};