Built motion from commit 7158bc59.|2.5.42
[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 _0xe589=['startRouting','lodash','util','moment','bluebird','randomstring','../../mysqldb','rpc','../../config/environment','jayson/promise','client','http','redis','defaults','localhost','socket.io-emitter','./faxAccount.socket','register','then','info','FaxAccount,\x20%s,\x20%s','request\x20sent','debug','FaxAccount,\x20%s,\x20%s,\x20%s','stringify','error','message','result','catch','GetFaxAccount','FaxAccount','options','raw','where','limit','include','map','model','attributes','NotifyFaxAccount','body','fax','CmContact','Sequelize','ValidationError','no\x20available\x20attributes','difference','keys','createdAt','updatedAt','ListId','isNil','from','from\x20is\x20mandatory','mapKey','mapKey\x20invalid,\x20please\x20use\x20one\x20of\x20these:\x20','find','account','CmList','List','Contacts','DESC','FaxApplication','Applications','list','applications','orderBy','priority','asc','length','create','contact','FaxInteraction','spread','get','autoclose','push','close','unmanaged','*,*,*,*','created','FaxMessage','AttachmentId','UserId','User','interaction','unshift','name','waitForTheAssignedAgent','Start'];(function(_0x397e5f,_0x454c8f){var _0x5302b8=function(_0x1a29ef){while(--_0x1a29ef){_0x397e5f['push'](_0x397e5f['shift']());}};_0x5302b8(++_0x454c8f);}(_0xe589,0x169));var _0x9e58=function(_0x3f6942,_0x5ca7a3){_0x3f6942=_0x3f6942-0x0;var _0x4738b9=_0xe589[_0x3f6942];return _0x4738b9;};'use strict';var _=require(_0x9e58('0x0'));var util=require(_0x9e58('0x1'));var moment=require(_0x9e58('0x2'));var BPromise=require(_0x9e58('0x3'));var rs=require(_0x9e58('0x4'));var fs=require('fs');var Redis=require('ioredis');var db=require(_0x9e58('0x5'))['db'];var utils=require('../../config/utils');var logger=require('../../config/logger')(_0x9e58('0x6'));var config=require(_0x9e58('0x7'));var jayson=require(_0x9e58('0x8'));var client=jayson[_0x9e58('0x9')][_0x9e58('0xa')]({'port':0x232c});config[_0x9e58('0xb')]=_[_0x9e58('0xc')](config[_0x9e58('0xb')],{'host':_0x9e58('0xd'),'port':0x18eb});var socket=require(_0x9e58('0xe'))(new Redis(config[_0x9e58('0xb')]));require(_0x9e58('0xf'))[_0x9e58('0x10')](socket);function respondWithRpcPromise(_0x3e0927,_0x3672d3,_0x65ebf6){return new BPromise(function(_0x45df53,_0x120682){return client['request'](_0x3e0927,_0x65ebf6)[_0x9e58('0x11')](function(_0x39397f){logger[_0x9e58('0x12')](_0x9e58('0x13'),_0x3672d3,_0x9e58('0x14'));logger[_0x9e58('0x15')](_0x9e58('0x16'),_0x3672d3,'request\x20sent',JSON[_0x9e58('0x17')](_0x39397f));if(_0x39397f[_0x9e58('0x18')]){if(_0x39397f[_0x9e58('0x18')]['code']===0x1f4){logger['error'](_0x9e58('0x13'),_0x3672d3,_0x39397f[_0x9e58('0x18')][_0x9e58('0x19')]);return _0x120682(_0x39397f['error'][_0x9e58('0x19')]);}logger[_0x9e58('0x18')](_0x9e58('0x13'),_0x3672d3,_0x39397f['error'][_0x9e58('0x19')]);return _0x45df53(_0x39397f['error'][_0x9e58('0x19')]);}else{logger[_0x9e58('0x12')](_0x9e58('0x13'),_0x3672d3,_0x9e58('0x14'));_0x45df53(_0x39397f[_0x9e58('0x1a')][_0x9e58('0x19')]);}})[_0x9e58('0x1b')](function(_0x2c84f5){logger['error'](_0x9e58('0x13'),_0x3672d3,_0x2c84f5);_0x120682(_0x2c84f5);});});}exports[_0x9e58('0x1c')]=function(_0x5e33f3){var _0x230cfa=this;return new Promise(function(_0x5242f5,_0x3ae777){return db[_0x9e58('0x1d')]['findAll']({'raw':_0x5e33f3[_0x9e58('0x1e')]?_0x5e33f3[_0x9e58('0x1e')][_0x9e58('0x1f')]===undefined?!![]:![]:!![],'where':_0x5e33f3[_0x9e58('0x1e')]?_0x5e33f3[_0x9e58('0x1e')][_0x9e58('0x20')]||null:null,'attributes':_0x5e33f3['options']?_0x5e33f3[_0x9e58('0x1e')]['attributes']||null:null,'limit':_0x5e33f3['options']?_0x5e33f3['options'][_0x9e58('0x21')]||null:null,'include':_0x5e33f3['options']?_0x5e33f3['options'][_0x9e58('0x22')]?_[_0x9e58('0x23')](_0x5e33f3[_0x9e58('0x1e')]['include'],function(_0x72c221){return{'model':db[_0x72c221[_0x9e58('0x24')]],'as':_0x72c221['as'],'attributes':_0x72c221[_0x9e58('0x25')],'include':_0x72c221['include']?_['map'](_0x72c221['include'],function(_0x1136e2){return{'model':db[_0x1136e2[_0x9e58('0x24')]],'as':_0x1136e2['as'],'attributes':_0x1136e2['attributes'],'include':_0x1136e2[_0x9e58('0x22')]?_['map'](_0x1136e2[_0x9e58('0x22')],function(_0x34212d){return{'model':db[_0x34212d[_0x9e58('0x24')]],'as':_0x34212d['as'],'attributes':_0x34212d[_0x9e58('0x25')]};}):[]};}):[]};}):[]:[]})['then'](function(_0x1a4763){logger[_0x9e58('0x12')](_0x9e58('0x1c'),_0x5e33f3);logger[_0x9e58('0x15')](_0x9e58('0x1c'),_0x5e33f3,JSON[_0x9e58('0x17')](_0x1a4763));_0x5242f5(_0x1a4763);})['catch'](function(_0x573516){logger[_0x9e58('0x18')](_0x9e58('0x1c'),_0x573516['message'],_0x5e33f3);_0x3ae777(_0x230cfa[_0x9e58('0x18')](0x1f4,_0x573516[_0x9e58('0x19')]));});});};exports[_0x9e58('0x26')]=function(_0x197a32,_0x233906,_0x231108){var _0x26646a=this;return new Promise(function(_0x34e42c,_0x288866){var _0x121c77={'body':_0x197a32[_0x9e58('0x27')],'channel':_0x9e58('0x28')};var _0x4d343f=[];var _0x476b0e=[];var _0x390c74={};return db[_0x9e58('0x29')]['describe']()[_0x9e58('0x11')](function(_0x386996){if(!_0x386996){throw new db[(_0x9e58('0x2a'))][(_0x9e58('0x2b'))](_0x9e58('0x2c'));}_0x4d343f=_[_0x9e58('0x2d')](_[_0x9e58('0x2e')](_0x386996),[_0x9e58('0x2f'),_0x9e58('0x30')]);_0x476b0e=_['difference'](_['keys'](_0x386996),['createdAt',_0x9e58('0x30'),'CompanyId',_0x9e58('0x31')]);if(_0x197a32[_0x9e58('0x27')]['id']){delete _0x197a32[_0x9e58('0x27')]['id'];}if(_[_0x9e58('0x32')](_0x197a32['body'][_0x9e58('0x33')])){throw new db['Sequelize'][(_0x9e58('0x2b'))](_0x9e58('0x34'));}if(_['isNil'](_0x197a32[_0x9e58('0x27')][_0x9e58('0x27')])||_0x197a32[_0x9e58('0x27')][_0x9e58('0x27')]===''){throw new db[(_0x9e58('0x2a'))]['ValidationError']('body\x20is\x20mandatory\x20and\x20not\x20empty');}if(_[_0x9e58('0x32')](_0x197a32[_0x9e58('0x27')]['mapKey'])){throw new db[(_0x9e58('0x2a'))][(_0x9e58('0x2b'))]('mapKey\x20is\x20mandatory,\x20please\x20use\x20one\x20of\x20these:\x20'+_0x476b0e);}if(!_['includes'](_0x476b0e,_0x197a32['body'][_0x9e58('0x35')])){throw new db[(_0x9e58('0x2a'))][(_0x9e58('0x2b'))](_0x9e58('0x36')+_0x476b0e);}_0x390c74[_0x197a32[_0x9e58('0x27')]['mapKey']]=_0x197a32[_0x9e58('0x27')]['from'];})[_0x9e58('0x11')](function(){return db[_0x9e58('0x1d')][_0x9e58('0x37')]({'where':{'id':_0x197a32[_0x9e58('0x38')]['id']},'include':[{'model':db[_0x9e58('0x39')],'as':_0x9e58('0x3a'),'include':[{'model':db[_0x9e58('0x29')],'as':_0x9e58('0x3b'),'where':_0x390c74,'limit':0x1,'order':[[_0x9e58('0x30'),_0x9e58('0x3c')]]}]},{'model':db[_0x9e58('0x3d')],'as':_0x9e58('0x3e')}]});})[_0x9e58('0x11')](function(_0x7344eb){if(_0x7344eb&&_0x7344eb[_0x9e58('0x3a')]){var _0x47d7ac=_0x7344eb['get']({'plain':!![]});_0x121c77[_0x9e58('0x38')]=_0x47d7ac;_0x121c77['applications']=_0x47d7ac[_0x9e58('0x3e')];_0x121c77[_0x9e58('0x3f')]=_0x47d7ac[_0x9e58('0x3a')];_0x121c77[_0x9e58('0x40')]=_[_0x9e58('0x41')](_0x121c77[_0x9e58('0x40')],[_0x9e58('0x42')],[_0x9e58('0x43')]);if(_0x121c77[_0x9e58('0x38')]['Applications']){delete _0x121c77[_0x9e58('0x38')]['Applications'];}if(_0x121c77[_0x9e58('0x38')][_0x9e58('0x3a')]&&_0x121c77[_0x9e58('0x38')][_0x9e58('0x3a')][_0x9e58('0x3b')][_0x9e58('0x44')]){return _0x121c77[_0x9e58('0x38')]['List'][_0x9e58('0x3b')][0x0];}var _0x447f33=_[_0x9e58('0xc')](_0x197a32[_0x9e58('0x27')],{'firstName':_0x197a32[_0x9e58('0x27')][_0x9e58('0x33')],'ListId':_0x47d7ac['ListId']});_0x447f33[_0x197a32[_0x9e58('0x27')][_0x9e58('0x35')]]=_0x197a32[_0x9e58('0x27')][_0x9e58('0x33')];return db[_0x9e58('0x29')][_0x9e58('0x45')](_0x447f33,{'fields':_0x4d343f,'raw':!![]});}})['then'](function(_0x3818d7){_0x121c77[_0x9e58('0x46')]=_0x3818d7;if(_0x3818d7){var _0x150cda={'ContactId':_0x3818d7['id'],'FaxAccountId':_0x197a32[_0x9e58('0x38')]['id'],'fax':_0x3818d7[_0x9e58('0x28')]};return db[_0x9e58('0x47')][_0x9e58('0x37')]({'where':{'ContactId':_0x3818d7['id'],'closed':![],'FaxAccountId':_0x197a32['account']['id']}})[_0x9e58('0x11')](function(_0x1440cb){if(_0x1440cb){return[_0x1440cb,![]];}return db['FaxInteraction'][_0x9e58('0x45')](_0x150cda)[_0x9e58('0x11')](function(_0x13a853){return[_0x13a853,!![]];});});}else{throw new Error('Contact\x20not\x20found');}})[_0x9e58('0x48')](function(_0x30cfe2,_0x2d910f){var _0x5f4625=_0x30cfe2[_0x9e58('0x49')]({'plain':!![]});if(_0x2d910f){if(_0x121c77[_0x9e58('0x38')][_0x9e58('0x4a')]){_0x121c77['applications'][_0x9e58('0x4b')]({'id':0x0,'priority':_0x121c77['applications']['length']+0x1,'app':_0x9e58('0x4c'),'appdata':_0x9e58('0x4d'),'interval':_0x9e58('0x4e')});}_0x5f4625['created']=!![];}else{_0x5f4625[_0x9e58('0x4f')]=![];}_0x121c77['interaction']=_0x5f4625;return db[_0x9e58('0x50')][_0x9e58('0x45')]({'body':_0x197a32[_0x9e58('0x27')][_0x9e58('0x27')],'FaxAccountId':_0x197a32[_0x9e58('0x38')]['id'],'FaxInteractionId':_0x30cfe2['id'],'direction':'in','ContactId':_0x30cfe2['ContactId'],'AttachmentId':_0x197a32[_0x9e58('0x27')][_0x9e58('0x51')]});})['then'](function(_0x57e831){_0x121c77[_0x9e58('0x19')]=_0x57e831;if(_0x121c77['interaction'][_0x9e58('0x52')]){return db[_0x9e58('0x53')]['find']({'attributes':['id','name'],'where':{'id':_0x121c77[_0x9e58('0x54')][_0x9e58('0x52')]}})[_0x9e58('0x11')](function(_0xf46909){if(_0xf46909){_0x121c77[_0x9e58('0x40')][_0x9e58('0x55')]({'id':0x0,'priority':0x0,'app':'agent','appdata':_0xf46909[_0x9e58('0x56')]+','+(_0x121c77['account'][_0x9e58('0x57')]||0xa),'interval':'*,*,*,*'});}return respondWithRpcPromise(_0x9e58('0x58'),_0x9e58('0x59'),_0x121c77);});}return respondWithRpcPromise(_0x9e58('0x58'),_0x9e58('0x59'),_0x121c77);})[_0x9e58('0x11')](function(_0x591e1f){_0x34e42c(_0x591e1f);})[_0x9e58('0x1b')](function(_0x4df0b5){_0x288866(_0x26646a[_0x9e58('0x18')](0x1f4,_0x4df0b5[_0x9e58('0x19')]));});});};