Built motion from commit 3c2ce842.|2.6.31
[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 _0xedcc=['fax','CmContact','describe','Sequelize','ValidationError','createdAt','difference','updatedAt','CompanyId','ListId','isNil','from\x20is\x20mandatory','mapKey','mapKey\x20is\x20mandatory,\x20please\x20use\x20one\x20of\x20these:\x20','includes','mapKey\x20invalid,\x20please\x20use\x20one\x20of\x20these:\x20','from','find','CmList','List','FaxApplication','Applications','get','account','list','applications','orderBy','priority','Contacts','length','defaults','FaxInteraction','Contact\x20not\x20found','spread','push','close','unmanaged','created','FaxMessage','ContactId','AttachmentId','interaction','UserId','User','name','unshift','agent','*,*,*,*','queueId','FaxQueue','queue','Start','lodash','util','randomstring','../../config/utils','../../config/logger','rpc','../../config/environment','client','redis','localhost','socket.io-emitter','register','request','then','request\x20sent','FaxAccount,\x20%s,\x20%s,\x20%s','error','code','message','result','catch','FaxAccount,\x20%s,\x20%s','GetFaxAccount','FaxAccount','findAll','options','attributes','limit','include','map','model','debug','stringify','body'];(function(_0x5538d5,_0x190032){var _0x323b1a=function(_0x179caa){while(--_0x179caa){_0x5538d5['push'](_0x5538d5['shift']());}};_0x323b1a(++_0x190032);}(_0xedcc,0x1e2));var _0xcedc=function(_0x34b001,_0x4c91c8){_0x34b001=_0x34b001-0x0;var _0x4f96ff=_0xedcc[_0x34b001];return _0x4f96ff;};'use strict';var _=require(_0xcedc('0x0'));var util=require(_0xcedc('0x1'));var moment=require('moment');var BPromise=require('bluebird');var rs=require(_0xcedc('0x2'));var fs=require('fs');var Redis=require('ioredis');var db=require('../../mysqldb')['db'];var utils=require(_0xcedc('0x3'));var logger=require(_0xcedc('0x4'))(_0xcedc('0x5'));var config=require(_0xcedc('0x6'));var jayson=require('jayson/promise');var client=jayson[_0xcedc('0x7')]['http']({'port':0x232c});config[_0xcedc('0x8')]=_['defaults'](config['redis'],{'host':_0xcedc('0x9'),'port':0x18eb});var socket=require(_0xcedc('0xa'))(new Redis(config[_0xcedc('0x8')]));require('./faxAccount.socket')[_0xcedc('0xb')](socket);function respondWithRpcPromise(_0x52e4f8,_0x2d5703,_0x262e16){return new BPromise(function(_0x2e24af,_0x581a0d){return client[_0xcedc('0xc')](_0x52e4f8,_0x262e16)[_0xcedc('0xd')](function(_0x1d0261){logger['info']('FaxAccount,\x20%s,\x20%s',_0x2d5703,_0xcedc('0xe'));logger['debug'](_0xcedc('0xf'),_0x2d5703,_0xcedc('0xe'),JSON['stringify'](_0x1d0261));if(_0x1d0261[_0xcedc('0x10')]){if(_0x1d0261[_0xcedc('0x10')][_0xcedc('0x11')]===0x1f4){logger['error']('FaxAccount,\x20%s,\x20%s',_0x2d5703,_0x1d0261[_0xcedc('0x10')]['message']);return _0x581a0d(_0x1d0261[_0xcedc('0x10')][_0xcedc('0x12')]);}logger[_0xcedc('0x10')]('FaxAccount,\x20%s,\x20%s',_0x2d5703,_0x1d0261['error'][_0xcedc('0x12')]);return _0x2e24af(_0x1d0261[_0xcedc('0x10')][_0xcedc('0x12')]);}else{logger['info']('FaxAccount,\x20%s,\x20%s',_0x2d5703,_0xcedc('0xe'));_0x2e24af(_0x1d0261[_0xcedc('0x13')][_0xcedc('0x12')]);}})[_0xcedc('0x14')](function(_0x591d44){logger[_0xcedc('0x10')](_0xcedc('0x15'),_0x2d5703,_0x591d44);_0x581a0d(_0x591d44);});});}exports[_0xcedc('0x16')]=function(_0x32ab6d){var _0x1b2460=this;return new Promise(function(_0x3d1286,_0x439ae6){return db[_0xcedc('0x17')][_0xcedc('0x18')]({'raw':_0x32ab6d['options']?_0x32ab6d['options']['raw']===undefined?!![]:![]:!![],'where':_0x32ab6d['options']?_0x32ab6d['options']['where']||null:null,'attributes':_0x32ab6d[_0xcedc('0x19')]?_0x32ab6d[_0xcedc('0x19')][_0xcedc('0x1a')]||null:null,'limit':_0x32ab6d['options']?_0x32ab6d['options'][_0xcedc('0x1b')]||null:null,'include':_0x32ab6d[_0xcedc('0x19')]?_0x32ab6d[_0xcedc('0x19')][_0xcedc('0x1c')]?_[_0xcedc('0x1d')](_0x32ab6d['options'][_0xcedc('0x1c')],function(_0x14ddfa){return{'model':db[_0x14ddfa[_0xcedc('0x1e')]],'as':_0x14ddfa['as'],'attributes':_0x14ddfa[_0xcedc('0x1a')],'include':_0x14ddfa[_0xcedc('0x1c')]?_['map'](_0x14ddfa[_0xcedc('0x1c')],function(_0x11643f){return{'model':db[_0x11643f['model']],'as':_0x11643f['as'],'attributes':_0x11643f['attributes'],'include':_0x11643f[_0xcedc('0x1c')]?_['map'](_0x11643f[_0xcedc('0x1c')],function(_0x2ad9b8){return{'model':db[_0x2ad9b8[_0xcedc('0x1e')]],'as':_0x2ad9b8['as'],'attributes':_0x2ad9b8[_0xcedc('0x1a')]};}):[]};}):[]};}):[]:[]})['then'](function(_0x4940dc){logger['info']('GetFaxAccount',_0x32ab6d);logger[_0xcedc('0x1f')](_0xcedc('0x16'),_0x32ab6d,JSON[_0xcedc('0x20')](_0x4940dc));_0x3d1286(_0x4940dc);})['catch'](function(_0x27d792){logger['error'](_0xcedc('0x16'),_0x27d792['message'],_0x32ab6d);_0x439ae6(_0x1b2460[_0xcedc('0x10')](0x1f4,_0x27d792[_0xcedc('0x12')]));});});};exports['NotifyFaxAccount']=function(_0xd0e60f,_0x595d1,_0x121701){var _0x1d6f5f=this;return new Promise(function(_0x13016f,_0x9046b6){var _0x52e982={'body':_0xd0e60f[_0xcedc('0x21')],'channel':_0xcedc('0x22')};var _0x4d95c1=[];var _0x440839=[];var _0x1255de={};return db[_0xcedc('0x23')][_0xcedc('0x24')]()[_0xcedc('0xd')](function(_0x2c6c12){if(!_0x2c6c12){throw new db[(_0xcedc('0x25'))][(_0xcedc('0x26'))]('no\x20available\x20attributes');}_0x4d95c1=_['difference'](_['keys'](_0x2c6c12),[_0xcedc('0x27'),'updatedAt']);_0x440839=_[_0xcedc('0x28')](_['keys'](_0x2c6c12),[_0xcedc('0x27'),_0xcedc('0x29'),_0xcedc('0x2a'),_0xcedc('0x2b')]);if(_0xd0e60f[_0xcedc('0x21')]['id']){delete _0xd0e60f[_0xcedc('0x21')]['id'];}if(_[_0xcedc('0x2c')](_0xd0e60f[_0xcedc('0x21')]['from'])){throw new db[(_0xcedc('0x25'))][(_0xcedc('0x26'))](_0xcedc('0x2d'));}if(_['isNil'](_0xd0e60f[_0xcedc('0x21')][_0xcedc('0x21')])||_0xd0e60f['body']['body']===''){throw new db[(_0xcedc('0x25'))]['ValidationError']('body\x20is\x20mandatory\x20and\x20not\x20empty');}if(_['isNil'](_0xd0e60f['body'][_0xcedc('0x2e')])){throw new db[(_0xcedc('0x25'))][(_0xcedc('0x26'))](_0xcedc('0x2f')+_0x440839);}if(!_[_0xcedc('0x30')](_0x440839,_0xd0e60f['body'][_0xcedc('0x2e')])){throw new db[(_0xcedc('0x25'))]['ValidationError'](_0xcedc('0x31')+_0x440839);}_0x1255de[_0xd0e60f['body'][_0xcedc('0x2e')]]=_0xd0e60f[_0xcedc('0x21')][_0xcedc('0x32')];})['then'](function(){return db['FaxAccount'][_0xcedc('0x33')]({'where':{'id':_0xd0e60f['account']['id']},'include':[{'model':db[_0xcedc('0x34')],'as':_0xcedc('0x35'),'include':[{'model':db[_0xcedc('0x23')],'as':'Contacts','where':_0x1255de,'limit':0x1,'order':[[_0xcedc('0x29'),'DESC']]}]},{'model':db[_0xcedc('0x36')],'as':_0xcedc('0x37')}]});})[_0xcedc('0xd')](function(_0xf22a78){if(_0xf22a78&&_0xf22a78['List']){var _0x383c7a=_0xf22a78[_0xcedc('0x38')]({'plain':!![]});_0x52e982[_0xcedc('0x39')]=_0x383c7a;_0x52e982['applications']=_0x383c7a[_0xcedc('0x37')];_0x52e982[_0xcedc('0x3a')]=_0x383c7a[_0xcedc('0x35')];_0x52e982[_0xcedc('0x3b')]=_[_0xcedc('0x3c')](_0x52e982['applications'],[_0xcedc('0x3d')],['asc']);if(_0x52e982[_0xcedc('0x39')]['Applications']){delete _0x52e982[_0xcedc('0x39')][_0xcedc('0x37')];}if(_0x52e982[_0xcedc('0x39')][_0xcedc('0x35')]&&_0x52e982[_0xcedc('0x39')]['List'][_0xcedc('0x3e')][_0xcedc('0x3f')]){return _0x52e982[_0xcedc('0x39')]['List']['Contacts'][0x0];}var _0x600539=_[_0xcedc('0x40')](_0xd0e60f[_0xcedc('0x21')],{'firstName':_0xd0e60f[_0xcedc('0x21')][_0xcedc('0x32')],'ListId':_0x383c7a['ListId']});_0x600539[_0xd0e60f['body'][_0xcedc('0x2e')]]=_0xd0e60f[_0xcedc('0x21')][_0xcedc('0x32')];return db[_0xcedc('0x23')]['create'](_0x600539,{'fields':_0x4d95c1,'raw':!![]});}})['then'](function(_0x34d29f){_0x52e982['contact']=_0x34d29f;if(_0x34d29f){var _0x1612cd={'ContactId':_0x34d29f['id'],'FaxAccountId':_0xd0e60f['account']['id'],'fax':_0x34d29f[_0xcedc('0x22')]};return db['FaxInteraction'][_0xcedc('0x33')]({'where':{'ContactId':_0x34d29f['id'],'closed':![],'FaxAccountId':_0xd0e60f[_0xcedc('0x39')]['id']}})[_0xcedc('0xd')](function(_0x300780){if(_0x300780){return[_0x300780,![]];}return db[_0xcedc('0x41')]['create'](_0x1612cd)[_0xcedc('0xd')](function(_0x66040d){return[_0x66040d,!![]];});});}else{throw new Error(_0xcedc('0x42'));}})[_0xcedc('0x43')](function(_0x503d59,_0x59f4f4){var _0x560315=_0x503d59[_0xcedc('0x38')]({'plain':!![]});if(_0x59f4f4){if(_0x52e982['account']['autoclose']){_0x52e982[_0xcedc('0x3b')][_0xcedc('0x44')]({'id':0x0,'priority':_0x52e982['applications'][_0xcedc('0x3f')]+0x1,'app':_0xcedc('0x45'),'appdata':_0xcedc('0x46'),'interval':'*,*,*,*'});}_0x560315[_0xcedc('0x47')]=!![];}else{_0x560315[_0xcedc('0x47')]=![];}_0x52e982['interaction']=_0x560315;return db[_0xcedc('0x48')]['create']({'body':_0xd0e60f['body'][_0xcedc('0x21')],'FaxAccountId':_0xd0e60f[_0xcedc('0x39')]['id'],'FaxInteractionId':_0x503d59['id'],'direction':'in','ContactId':_0x503d59[_0xcedc('0x49')],'AttachmentId':_0xd0e60f[_0xcedc('0x21')][_0xcedc('0x4a')]});})[_0xcedc('0xd')](function(_0x544355){_0x52e982['message']=_0x544355;if(!_0x52e982[_0xcedc('0x4b')][_0xcedc('0x4c')])return;return db[_0xcedc('0x4d')]['find']({'attributes':['id',_0xcedc('0x4e')],'where':{'id':_0x52e982[_0xcedc('0x4b')][_0xcedc('0x4c')]}});})[_0xcedc('0xd')](function(_0x5efa07){if(_0x5efa07){_0x52e982[_0xcedc('0x3b')][_0xcedc('0x4f')]({'id':0x0,'priority':0x0,'app':_0xcedc('0x50'),'appdata':_0x5efa07[_0xcedc('0x4e')]+','+(_0x52e982[_0xcedc('0x39')]['waitForTheAssignedAgent']||0xa),'interval':_0xcedc('0x51')});}if(!_0x52e982[_0xcedc('0x4b')][_0xcedc('0x52')])return;return db[_0xcedc('0x53')][_0xcedc('0x33')]({'attributes':['id','name'],'where':{'id':_0x52e982['interaction'][_0xcedc('0x52')]}});})[_0xcedc('0xd')](function(_0x2c863d){if(_0x2c863d){_0x52e982[_0xcedc('0x3b')][_0xcedc('0x4f')]({'id':0x0,'priority':0x1,'app':_0xcedc('0x54'),'appdata':_0x2c863d[_0xcedc('0x4e')]+','+(_0x52e982[_0xcedc('0x39')]['waitForTheAssignedQueue']||0x12c),'interval':_0xcedc('0x51')});}return respondWithRpcPromise(_0xcedc('0x55'),'startRouting',_0x52e982);})['then'](function(_0x50e087){_0x13016f(_0x50e087);})[_0xcedc('0x14')](function(_0x575bf2){_0x9046b6(_0x1d6f5f[_0xcedc('0x10')](0x1f4,_0x575bf2['message']));});});};