aac1db09b0cbab0d804540902dd8e271265d796a
[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 _0xd90f=['jayson/promise','client','redis','defaults','localhost','socket.io-emitter','./faxAccount.socket','register','request','info','FaxAccount,\x20%s,\x20%s','request\x20sent','debug','stringify','error','code','message','result','GetFaxAccount','FaxAccount','findAll','options','attributes','map','include','model','then','catch','NotifyFaxAccount','body','fax','CmContact','Sequelize','no\x20available\x20attributes','difference','createdAt','updatedAt','ListId','isNil','from','from\x20is\x20mandatory','ValidationError','mapKey','includes','mapKey\x20invalid,\x20please\x20use\x20one\x20of\x20these:\x20','find','CmList','List','Contacts','FaxApplication','Applications','get','list','applications','orderBy','asc','account','length','create','FaxInteraction','spread','autoclose','push','close','*,*,*,*','FaxMessage','ContactId','AttachmentId','interaction','UserId','User','name','unshift','agent','waitForTheAssignedAgent','Start','startRouting','lodash','moment','ioredis','../../mysqldb','../../config/utils','rpc','../../config/environment'];(function(_0x178241,_0x5d9f70){var _0x40eca9=function(_0x26f6da){while(--_0x26f6da){_0x178241['push'](_0x178241['shift']());}};_0x40eca9(++_0x5d9f70);}(_0xd90f,0xf5));var _0xfd90=function(_0x4afe56,_0x1bf58c){_0x4afe56=_0x4afe56-0x0;var _0x3d0a71=_0xd90f[_0x4afe56];return _0x3d0a71;};'use strict';var _=require(_0xfd90('0x0'));var util=require('util');var moment=require(_0xfd90('0x1'));var BPromise=require('bluebird');var rs=require('randomstring');var fs=require('fs');var Redis=require(_0xfd90('0x2'));var db=require(_0xfd90('0x3'))['db'];var utils=require(_0xfd90('0x4'));var logger=require('../../config/logger')(_0xfd90('0x5'));var config=require(_0xfd90('0x6'));var jayson=require(_0xfd90('0x7'));var client=jayson[_0xfd90('0x8')]['http']({'port':0x232c});config[_0xfd90('0x9')]=_[_0xfd90('0xa')](config[_0xfd90('0x9')],{'host':_0xfd90('0xb'),'port':0x18eb});var socket=require(_0xfd90('0xc'))(new Redis(config['redis']));require(_0xfd90('0xd'))[_0xfd90('0xe')](socket);function respondWithRpcPromise(_0x246924,_0x47bdf9,_0x53ce00){return new BPromise(function(_0x312e27,_0x38257d){return client[_0xfd90('0xf')](_0x246924,_0x53ce00)['then'](function(_0x3dcb48){logger[_0xfd90('0x10')](_0xfd90('0x11'),_0x47bdf9,_0xfd90('0x12'));logger[_0xfd90('0x13')]('FaxAccount,\x20%s,\x20%s,\x20%s',_0x47bdf9,_0xfd90('0x12'),JSON[_0xfd90('0x14')](_0x3dcb48));if(_0x3dcb48[_0xfd90('0x15')]){if(_0x3dcb48[_0xfd90('0x15')][_0xfd90('0x16')]===0x1f4){logger[_0xfd90('0x15')]('FaxAccount,\x20%s,\x20%s',_0x47bdf9,_0x3dcb48[_0xfd90('0x15')]['message']);return _0x38257d(_0x3dcb48[_0xfd90('0x15')][_0xfd90('0x17')]);}logger[_0xfd90('0x15')](_0xfd90('0x11'),_0x47bdf9,_0x3dcb48[_0xfd90('0x15')][_0xfd90('0x17')]);return _0x312e27(_0x3dcb48[_0xfd90('0x15')][_0xfd90('0x17')]);}else{logger[_0xfd90('0x10')](_0xfd90('0x11'),_0x47bdf9,'request\x20sent');_0x312e27(_0x3dcb48[_0xfd90('0x18')]['message']);}})['catch'](function(_0x2ab331){logger[_0xfd90('0x15')](_0xfd90('0x11'),_0x47bdf9,_0x2ab331);_0x38257d(_0x2ab331);});});}exports[_0xfd90('0x19')]=function(_0x3a1222){var _0x5bdbc5=this;return new Promise(function(_0x526494,_0x1ddc00){return db[_0xfd90('0x1a')][_0xfd90('0x1b')]({'raw':_0x3a1222[_0xfd90('0x1c')]?_0x3a1222[_0xfd90('0x1c')]['raw']===undefined?!![]:![]:!![],'where':_0x3a1222[_0xfd90('0x1c')]?_0x3a1222[_0xfd90('0x1c')]['where']||null:null,'attributes':_0x3a1222[_0xfd90('0x1c')]?_0x3a1222[_0xfd90('0x1c')][_0xfd90('0x1d')]||null:null,'limit':_0x3a1222[_0xfd90('0x1c')]?_0x3a1222[_0xfd90('0x1c')]['limit']||null:null,'include':_0x3a1222[_0xfd90('0x1c')]?_0x3a1222['options']['include']?_[_0xfd90('0x1e')](_0x3a1222[_0xfd90('0x1c')][_0xfd90('0x1f')],function(_0xe7ec29){return{'model':db[_0xe7ec29['model']],'as':_0xe7ec29['as'],'attributes':_0xe7ec29[_0xfd90('0x1d')],'include':_0xe7ec29['include']?_[_0xfd90('0x1e')](_0xe7ec29['include'],function(_0x51e733){return{'model':db[_0x51e733['model']],'as':_0x51e733['as'],'attributes':_0x51e733[_0xfd90('0x1d')],'include':_0x51e733[_0xfd90('0x1f')]?_[_0xfd90('0x1e')](_0x51e733[_0xfd90('0x1f')],function(_0x5871d8){return{'model':db[_0x5871d8[_0xfd90('0x20')]],'as':_0x5871d8['as'],'attributes':_0x5871d8[_0xfd90('0x1d')]};}):[]};}):[]};}):[]:[]})[_0xfd90('0x21')](function(_0x408e27){logger['info'](_0xfd90('0x19'),_0x3a1222);logger['debug'](_0xfd90('0x19'),_0x3a1222,JSON[_0xfd90('0x14')](_0x408e27));_0x526494(_0x408e27);})[_0xfd90('0x22')](function(_0x1ff3cb){logger[_0xfd90('0x15')](_0xfd90('0x19'),_0x1ff3cb[_0xfd90('0x17')],_0x3a1222);_0x1ddc00(_0x5bdbc5['error'](0x1f4,_0x1ff3cb[_0xfd90('0x17')]));});});};exports[_0xfd90('0x23')]=function(_0x5b304c,_0x165ee6,_0x5db771){var _0x2c564f=this;return new Promise(function(_0x13dce9,_0x5f1537){var _0x4b8e86={'body':_0x5b304c[_0xfd90('0x24')],'channel':_0xfd90('0x25')};var _0x2cad20=[];var _0x2d2220=[];var _0x3e63ea={};return db[_0xfd90('0x26')]['describe']()[_0xfd90('0x21')](function(_0x29ade9){if(!_0x29ade9){throw new db[(_0xfd90('0x27'))]['ValidationError'](_0xfd90('0x28'));}_0x2cad20=_[_0xfd90('0x29')](_['keys'](_0x29ade9),[_0xfd90('0x2a'),'updatedAt']);_0x2d2220=_[_0xfd90('0x29')](_['keys'](_0x29ade9),['createdAt',_0xfd90('0x2b'),'CompanyId',_0xfd90('0x2c')]);if(_0x5b304c[_0xfd90('0x24')]['id']){delete _0x5b304c['body']['id'];}if(_[_0xfd90('0x2d')](_0x5b304c[_0xfd90('0x24')][_0xfd90('0x2e')])){throw new db['Sequelize']['ValidationError'](_0xfd90('0x2f'));}if(_[_0xfd90('0x2d')](_0x5b304c[_0xfd90('0x24')][_0xfd90('0x24')])||_0x5b304c[_0xfd90('0x24')][_0xfd90('0x24')]===''){throw new db[(_0xfd90('0x27'))][(_0xfd90('0x30'))]('body\x20is\x20mandatory\x20and\x20not\x20empty');}if(_[_0xfd90('0x2d')](_0x5b304c[_0xfd90('0x24')][_0xfd90('0x31')])){throw new db[(_0xfd90('0x27'))][(_0xfd90('0x30'))]('mapKey\x20is\x20mandatory,\x20please\x20use\x20one\x20of\x20these:\x20'+_0x2d2220);}if(!_[_0xfd90('0x32')](_0x2d2220,_0x5b304c[_0xfd90('0x24')][_0xfd90('0x31')])){throw new db[(_0xfd90('0x27'))][(_0xfd90('0x30'))](_0xfd90('0x33')+_0x2d2220);}_0x3e63ea[_0x5b304c[_0xfd90('0x24')][_0xfd90('0x31')]]=_0x5b304c[_0xfd90('0x24')]['from'];})[_0xfd90('0x21')](function(){return db[_0xfd90('0x1a')][_0xfd90('0x34')]({'where':{'id':_0x5b304c['account']['id']},'include':[{'model':db[_0xfd90('0x35')],'as':_0xfd90('0x36'),'include':[{'model':db['CmContact'],'as':_0xfd90('0x37'),'where':_0x3e63ea,'limit':0x1,'order':[[_0xfd90('0x2b'),'DESC']]}]},{'model':db[_0xfd90('0x38')],'as':_0xfd90('0x39')}]});})[_0xfd90('0x21')](function(_0x563269){if(_0x563269&&_0x563269[_0xfd90('0x36')]){var _0x2ce71b=_0x563269[_0xfd90('0x3a')]({'plain':!![]});_0x4b8e86['account']=_0x2ce71b;_0x4b8e86['applications']=_0x2ce71b[_0xfd90('0x39')];_0x4b8e86[_0xfd90('0x3b')]=_0x2ce71b[_0xfd90('0x36')];_0x4b8e86[_0xfd90('0x3c')]=_[_0xfd90('0x3d')](_0x4b8e86[_0xfd90('0x3c')],['priority'],[_0xfd90('0x3e')]);if(_0x4b8e86[_0xfd90('0x3f')][_0xfd90('0x39')]){delete _0x4b8e86[_0xfd90('0x3f')][_0xfd90('0x39')];}if(_0x4b8e86[_0xfd90('0x3f')]['List']&&_0x4b8e86[_0xfd90('0x3f')][_0xfd90('0x36')][_0xfd90('0x37')][_0xfd90('0x40')]){return _0x4b8e86[_0xfd90('0x3f')][_0xfd90('0x36')][_0xfd90('0x37')][0x0];}var _0x2633b2=_[_0xfd90('0xa')](_0x5b304c[_0xfd90('0x24')],{'firstName':_0x5b304c[_0xfd90('0x24')][_0xfd90('0x2e')],'ListId':_0x2ce71b[_0xfd90('0x2c')]});_0x2633b2[_0x5b304c[_0xfd90('0x24')][_0xfd90('0x31')]]=_0x5b304c[_0xfd90('0x24')][_0xfd90('0x2e')];return db[_0xfd90('0x26')][_0xfd90('0x41')](_0x2633b2,{'fields':_0x2cad20,'raw':!![]});}})[_0xfd90('0x21')](function(_0x19f0c0){_0x4b8e86['contact']=_0x19f0c0;if(_0x19f0c0){var _0x125826={'ContactId':_0x19f0c0['id'],'FaxAccountId':_0x5b304c[_0xfd90('0x3f')]['id'],'fax':_0x19f0c0[_0xfd90('0x25')]};return db[_0xfd90('0x42')][_0xfd90('0x34')]({'where':{'ContactId':_0x19f0c0['id'],'closed':![],'FaxAccountId':_0x5b304c[_0xfd90('0x3f')]['id']}})['then'](function(_0x15e3c3){if(_0x15e3c3){return[_0x15e3c3,![]];}return db[_0xfd90('0x42')][_0xfd90('0x41')](_0x125826)[_0xfd90('0x21')](function(_0x2c090a){return[_0x2c090a,!![]];});});}else{throw new Error('Contact\x20not\x20found');}})[_0xfd90('0x43')](function(_0x1f5f4e,_0x5ac216){var _0x218c4e=_0x1f5f4e[_0xfd90('0x3a')]({'plain':!![]});if(_0x5ac216){if(_0x4b8e86[_0xfd90('0x3f')][_0xfd90('0x44')]){_0x4b8e86[_0xfd90('0x3c')][_0xfd90('0x45')]({'id':0x0,'priority':_0x4b8e86[_0xfd90('0x3c')][_0xfd90('0x40')]+0x1,'app':_0xfd90('0x46'),'appdata':'unmanaged','interval':_0xfd90('0x47')});}_0x218c4e['created']=!![];}else{_0x218c4e['created']=![];}_0x4b8e86['interaction']=_0x218c4e;return db[_0xfd90('0x48')][_0xfd90('0x41')]({'body':_0x5b304c[_0xfd90('0x24')][_0xfd90('0x24')],'FaxAccountId':_0x5b304c[_0xfd90('0x3f')]['id'],'FaxInteractionId':_0x1f5f4e['id'],'direction':'in','ContactId':_0x1f5f4e[_0xfd90('0x49')],'AttachmentId':_0x5b304c[_0xfd90('0x24')][_0xfd90('0x4a')]});})['then'](function(_0x1b7b07){_0x4b8e86[_0xfd90('0x17')]=_0x1b7b07;if(_0x4b8e86[_0xfd90('0x4b')][_0xfd90('0x4c')]){return db[_0xfd90('0x4d')][_0xfd90('0x34')]({'attributes':['id',_0xfd90('0x4e')],'where':{'id':_0x4b8e86[_0xfd90('0x4b')][_0xfd90('0x4c')]}})[_0xfd90('0x21')](function(_0x1d26fb){if(_0x1d26fb){_0x4b8e86[_0xfd90('0x3c')][_0xfd90('0x4f')]({'id':0x0,'priority':0x0,'app':_0xfd90('0x50'),'appdata':_0x1d26fb[_0xfd90('0x4e')]+','+(_0x4b8e86['account'][_0xfd90('0x51')]||0xa),'interval':'*,*,*,*'});}return respondWithRpcPromise('Start','startRouting',_0x4b8e86);});}return respondWithRpcPromise(_0xfd90('0x52'),_0xfd90('0x53'),_0x4b8e86);})[_0xfd90('0x21')](function(_0x11cfeb){_0x13dce9(_0x11cfeb);})[_0xfd90('0x22')](function(_0x3d7e08){_0x5f1537(_0x2c564f[_0xfd90('0x15')](0x1f4,_0x3d7e08['message']));});});};