Built motion from commit bab6f49e.|2.6.17
[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 _0x250a=['describe','Sequelize','ValidationError','no\x20available\x20attributes','difference','keys','createdAt','updatedAt','CompanyId','from','from\x20is\x20mandatory','isNil','body\x20is\x20mandatory\x20and\x20not\x20empty','mapKey','includes','mapKey\x20invalid,\x20please\x20use\x20one\x20of\x20these:\x20','find','account','CmList','Contacts','DESC','Applications','List','get','list','applications','orderBy','priority','asc','ListId','FaxInteraction','create','spread','autoclose','push','close','unmanaged','*,*,*,*','created','FaxMessage','AttachmentId','interaction','UserId','User','name','unshift','waitForTheAssignedAgent','Start','startRouting','moment','bluebird','randomstring','../../mysqldb','../../config/utils','../../config/logger','rpc','jayson/promise','http','redis','defaults','localhost','./faxAccount.socket','register','then','FaxAccount,\x20%s,\x20%s','request\x20sent','debug','stringify','error','code','message','info','result','catch','GetFaxAccount','findAll','options','where','attributes','limit','include','map','model','NotifyFaxAccount','body','fax','CmContact'];(function(_0x451130,_0x595ee2){var _0x68c08e=function(_0x23fe84){while(--_0x23fe84){_0x451130['push'](_0x451130['shift']());}};_0x68c08e(++_0x595ee2);}(_0x250a,0x18d));var _0xa250=function(_0xb0f7c3,_0x4eae95){_0xb0f7c3=_0xb0f7c3-0x0;var _0x28ea68=_0x250a[_0xb0f7c3];return _0x28ea68;};'use strict';var _=require('lodash');var util=require('util');var moment=require(_0xa250('0x0'));var BPromise=require(_0xa250('0x1'));var rs=require(_0xa250('0x2'));var fs=require('fs');var Redis=require('ioredis');var db=require(_0xa250('0x3'))['db'];var utils=require(_0xa250('0x4'));var logger=require(_0xa250('0x5'))(_0xa250('0x6'));var config=require('../../config/environment');var jayson=require(_0xa250('0x7'));var client=jayson['client'][_0xa250('0x8')]({'port':0x232c});config[_0xa250('0x9')]=_[_0xa250('0xa')](config[_0xa250('0x9')],{'host':_0xa250('0xb'),'port':0x18eb});var socket=require('socket.io-emitter')(new Redis(config[_0xa250('0x9')]));require(_0xa250('0xc'))[_0xa250('0xd')](socket);function respondWithRpcPromise(_0x4d6e19,_0x577f3b,_0xb95704){return new BPromise(function(_0xaa0b40,_0x4bff74){return client['request'](_0x4d6e19,_0xb95704)[_0xa250('0xe')](function(_0x2843fa){logger['info'](_0xa250('0xf'),_0x577f3b,_0xa250('0x10'));logger[_0xa250('0x11')]('FaxAccount,\x20%s,\x20%s,\x20%s',_0x577f3b,'request\x20sent',JSON[_0xa250('0x12')](_0x2843fa));if(_0x2843fa[_0xa250('0x13')]){if(_0x2843fa[_0xa250('0x13')][_0xa250('0x14')]===0x1f4){logger[_0xa250('0x13')](_0xa250('0xf'),_0x577f3b,_0x2843fa[_0xa250('0x13')][_0xa250('0x15')]);return _0x4bff74(_0x2843fa[_0xa250('0x13')][_0xa250('0x15')]);}logger[_0xa250('0x13')](_0xa250('0xf'),_0x577f3b,_0x2843fa['error'][_0xa250('0x15')]);return _0xaa0b40(_0x2843fa[_0xa250('0x13')][_0xa250('0x15')]);}else{logger[_0xa250('0x16')](_0xa250('0xf'),_0x577f3b,'request\x20sent');_0xaa0b40(_0x2843fa[_0xa250('0x17')]['message']);}})[_0xa250('0x18')](function(_0x3fb569){logger['error'](_0xa250('0xf'),_0x577f3b,_0x3fb569);_0x4bff74(_0x3fb569);});});}exports[_0xa250('0x19')]=function(_0x2004d1){var _0x140759=this;return new Promise(function(_0x240b12,_0x57c710){return db['FaxAccount'][_0xa250('0x1a')]({'raw':_0x2004d1[_0xa250('0x1b')]?_0x2004d1[_0xa250('0x1b')]['raw']===undefined?!![]:![]:!![],'where':_0x2004d1[_0xa250('0x1b')]?_0x2004d1['options'][_0xa250('0x1c')]||null:null,'attributes':_0x2004d1[_0xa250('0x1b')]?_0x2004d1[_0xa250('0x1b')][_0xa250('0x1d')]||null:null,'limit':_0x2004d1['options']?_0x2004d1[_0xa250('0x1b')][_0xa250('0x1e')]||null:null,'include':_0x2004d1[_0xa250('0x1b')]?_0x2004d1['options'][_0xa250('0x1f')]?_[_0xa250('0x20')](_0x2004d1[_0xa250('0x1b')][_0xa250('0x1f')],function(_0x7122a5){return{'model':db[_0x7122a5[_0xa250('0x21')]],'as':_0x7122a5['as'],'attributes':_0x7122a5['attributes'],'include':_0x7122a5['include']?_[_0xa250('0x20')](_0x7122a5[_0xa250('0x1f')],function(_0x397fcd){return{'model':db[_0x397fcd[_0xa250('0x21')]],'as':_0x397fcd['as'],'attributes':_0x397fcd[_0xa250('0x1d')],'include':_0x397fcd[_0xa250('0x1f')]?_[_0xa250('0x20')](_0x397fcd[_0xa250('0x1f')],function(_0x4d66a8){return{'model':db[_0x4d66a8['model']],'as':_0x4d66a8['as'],'attributes':_0x4d66a8[_0xa250('0x1d')]};}):[]};}):[]};}):[]:[]})['then'](function(_0xf334dd){logger[_0xa250('0x16')](_0xa250('0x19'),_0x2004d1);logger[_0xa250('0x11')](_0xa250('0x19'),_0x2004d1,JSON[_0xa250('0x12')](_0xf334dd));_0x240b12(_0xf334dd);})['catch'](function(_0x597eaa){logger[_0xa250('0x13')](_0xa250('0x19'),_0x597eaa['message'],_0x2004d1);_0x57c710(_0x140759[_0xa250('0x13')](0x1f4,_0x597eaa[_0xa250('0x15')]));});});};exports[_0xa250('0x22')]=function(_0x150357,_0x2fb070,_0x2f1be9){var _0x1903e6=this;return new Promise(function(_0x3e419c,_0x2a241c){var _0x9211f0={'body':_0x150357[_0xa250('0x23')],'channel':_0xa250('0x24')};var _0x375d85=[];var _0x28e907=[];var _0x2e5fc3={};return db[_0xa250('0x25')][_0xa250('0x26')]()['then'](function(_0x5dc357){if(!_0x5dc357){throw new db[(_0xa250('0x27'))][(_0xa250('0x28'))](_0xa250('0x29'));}_0x375d85=_[_0xa250('0x2a')](_[_0xa250('0x2b')](_0x5dc357),[_0xa250('0x2c'),'updatedAt']);_0x28e907=_['difference'](_[_0xa250('0x2b')](_0x5dc357),[_0xa250('0x2c'),_0xa250('0x2d'),_0xa250('0x2e'),'ListId']);if(_0x150357['body']['id']){delete _0x150357['body']['id'];}if(_['isNil'](_0x150357[_0xa250('0x23')][_0xa250('0x2f')])){throw new db[(_0xa250('0x27'))][(_0xa250('0x28'))](_0xa250('0x30'));}if(_[_0xa250('0x31')](_0x150357[_0xa250('0x23')][_0xa250('0x23')])||_0x150357['body']['body']===''){throw new db['Sequelize'][(_0xa250('0x28'))](_0xa250('0x32'));}if(_[_0xa250('0x31')](_0x150357[_0xa250('0x23')][_0xa250('0x33')])){throw new db[(_0xa250('0x27'))][(_0xa250('0x28'))]('mapKey\x20is\x20mandatory,\x20please\x20use\x20one\x20of\x20these:\x20'+_0x28e907);}if(!_[_0xa250('0x34')](_0x28e907,_0x150357['body'][_0xa250('0x33')])){throw new db[(_0xa250('0x27'))][(_0xa250('0x28'))](_0xa250('0x35')+_0x28e907);}_0x2e5fc3[_0x150357[_0xa250('0x23')][_0xa250('0x33')]]=_0x150357[_0xa250('0x23')][_0xa250('0x2f')];})[_0xa250('0xe')](function(){return db['FaxAccount'][_0xa250('0x36')]({'where':{'id':_0x150357[_0xa250('0x37')]['id']},'include':[{'model':db[_0xa250('0x38')],'as':'List','include':[{'model':db[_0xa250('0x25')],'as':_0xa250('0x39'),'where':_0x2e5fc3,'limit':0x1,'order':[[_0xa250('0x2d'),_0xa250('0x3a')]]}]},{'model':db['FaxApplication'],'as':_0xa250('0x3b')}]});})[_0xa250('0xe')](function(_0x312429){if(_0x312429&&_0x312429[_0xa250('0x3c')]){var _0x2ec2ab=_0x312429[_0xa250('0x3d')]({'plain':!![]});_0x9211f0[_0xa250('0x37')]=_0x2ec2ab;_0x9211f0['applications']=_0x2ec2ab[_0xa250('0x3b')];_0x9211f0[_0xa250('0x3e')]=_0x2ec2ab[_0xa250('0x3c')];_0x9211f0[_0xa250('0x3f')]=_[_0xa250('0x40')](_0x9211f0[_0xa250('0x3f')],[_0xa250('0x41')],[_0xa250('0x42')]);if(_0x9211f0[_0xa250('0x37')][_0xa250('0x3b')]){delete _0x9211f0[_0xa250('0x37')]['Applications'];}if(_0x9211f0[_0xa250('0x37')][_0xa250('0x3c')]&&_0x9211f0[_0xa250('0x37')][_0xa250('0x3c')][_0xa250('0x39')]['length']){return _0x9211f0['account'][_0xa250('0x3c')][_0xa250('0x39')][0x0];}var _0x16b7d0=_['defaults'](_0x150357[_0xa250('0x23')],{'firstName':_0x150357['body']['from'],'ListId':_0x2ec2ab[_0xa250('0x43')]});_0x16b7d0[_0x150357[_0xa250('0x23')]['mapKey']]=_0x150357['body'][_0xa250('0x2f')];return db['CmContact']['create'](_0x16b7d0,{'fields':_0x375d85,'raw':!![]});}})[_0xa250('0xe')](function(_0x565f2a){_0x9211f0['contact']=_0x565f2a;if(_0x565f2a){var _0x266746={'ContactId':_0x565f2a['id'],'FaxAccountId':_0x150357[_0xa250('0x37')]['id'],'fax':_0x565f2a[_0xa250('0x24')]};return db[_0xa250('0x44')]['find']({'where':{'ContactId':_0x565f2a['id'],'closed':![],'FaxAccountId':_0x150357[_0xa250('0x37')]['id']}})['then'](function(_0x5f582b){if(_0x5f582b){return[_0x5f582b,![]];}return db['FaxInteraction'][_0xa250('0x45')](_0x266746)[_0xa250('0xe')](function(_0xbc6940){return[_0xbc6940,!![]];});});}else{throw new Error('Contact\x20not\x20found');}})[_0xa250('0x46')](function(_0x25a4f3,_0x1af033){var _0x5cb567=_0x25a4f3[_0xa250('0x3d')]({'plain':!![]});if(_0x1af033){if(_0x9211f0[_0xa250('0x37')][_0xa250('0x47')]){_0x9211f0[_0xa250('0x3f')][_0xa250('0x48')]({'id':0x0,'priority':_0x9211f0[_0xa250('0x3f')]['length']+0x1,'app':_0xa250('0x49'),'appdata':_0xa250('0x4a'),'interval':_0xa250('0x4b')});}_0x5cb567['created']=!![];}else{_0x5cb567[_0xa250('0x4c')]=![];}_0x9211f0['interaction']=_0x5cb567;return db[_0xa250('0x4d')]['create']({'body':_0x150357[_0xa250('0x23')][_0xa250('0x23')],'FaxAccountId':_0x150357['account']['id'],'FaxInteractionId':_0x25a4f3['id'],'direction':'in','ContactId':_0x25a4f3['ContactId'],'AttachmentId':_0x150357[_0xa250('0x23')][_0xa250('0x4e')]});})[_0xa250('0xe')](function(_0x226d9f){_0x9211f0[_0xa250('0x15')]=_0x226d9f;if(_0x9211f0[_0xa250('0x4f')][_0xa250('0x50')]){return db[_0xa250('0x51')][_0xa250('0x36')]({'attributes':['id',_0xa250('0x52')],'where':{'id':_0x9211f0[_0xa250('0x4f')][_0xa250('0x50')]}})[_0xa250('0xe')](function(_0x2b0e8a){if(_0x2b0e8a){_0x9211f0[_0xa250('0x3f')][_0xa250('0x53')]({'id':0x0,'priority':0x0,'app':'agent','appdata':_0x2b0e8a[_0xa250('0x52')]+','+(_0x9211f0['account'][_0xa250('0x54')]||0xa),'interval':_0xa250('0x4b')});}return respondWithRpcPromise(_0xa250('0x55'),'startRouting',_0x9211f0);});}return respondWithRpcPromise('Start',_0xa250('0x56'),_0x9211f0);})[_0xa250('0xe')](function(_0x4e1204){_0x3e419c(_0x4e1204);})['catch'](function(_0x5e5a36){_0x2a241c(_0x1903e6['error'](0x1f4,_0x5e5a36[_0xa250('0x15')]));});});};