52dc20af70c61eabf68d9de9d9882cf7f67ad6f8
[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 _0x6223=['ContactId','AttachmentId','UserId','User','name','unshift','Start','startRouting','lodash','util','moment','bluebird','randomstring','ioredis','../../mysqldb','../../config/utils','../../config/logger','rpc','../../config/environment','jayson/promise','client','http','redis','defaults','socket.io-emitter','./faxAccount.socket','register','request','then','FaxAccount,\x20%s,\x20%s','debug','FaxAccount,\x20%s,\x20%s,\x20%s','stringify','error','message','info','request\x20sent','result','catch','FaxAccount','findAll','options','raw','attributes','limit','include','map','model','GetFaxAccount','NotifyFaxAccount','body','fax','CmContact','describe','Sequelize','ValidationError','no\x20available\x20attributes','difference','updatedAt','keys','createdAt','CompanyId','ListId','isNil','body\x20is\x20mandatory\x20and\x20not\x20empty','mapKey','includes','mapKey\x20invalid,\x20please\x20use\x20one\x20of\x20these:\x20','find','account','CmList','List','Contacts','DESC','FaxApplication','Applications','list','applications','orderBy','priority','asc','length','from','create','contact','FaxInteraction','spread','get','autoclose','push','close','unmanaged','created','interaction','FaxMessage'];(function(_0x3e44fa,_0x75ed2a){var _0x2a0aba=function(_0x1db6a7){while(--_0x1db6a7){_0x3e44fa['push'](_0x3e44fa['shift']());}};_0x2a0aba(++_0x75ed2a);}(_0x6223,0x1e3));var _0x3622=function(_0x5b27da,_0x4a6532){_0x5b27da=_0x5b27da-0x0;var _0x3254f4=_0x6223[_0x5b27da];return _0x3254f4;};'use strict';var _=require(_0x3622('0x0'));var util=require(_0x3622('0x1'));var moment=require(_0x3622('0x2'));var BPromise=require(_0x3622('0x3'));var rs=require(_0x3622('0x4'));var fs=require('fs');var Redis=require(_0x3622('0x5'));var db=require(_0x3622('0x6'))['db'];var utils=require(_0x3622('0x7'));var logger=require(_0x3622('0x8'))(_0x3622('0x9'));var config=require(_0x3622('0xa'));var jayson=require(_0x3622('0xb'));var client=jayson[_0x3622('0xc')][_0x3622('0xd')]({'port':0x232c});config[_0x3622('0xe')]=_[_0x3622('0xf')](config[_0x3622('0xe')],{'host':'localhost','port':0x18eb});var socket=require(_0x3622('0x10'))(new Redis(config[_0x3622('0xe')]));require(_0x3622('0x11'))[_0x3622('0x12')](socket);function respondWithRpcPromise(_0x4374d7,_0x1b7d9d,_0x52be7f){return new BPromise(function(_0x47c301,_0x562377){return client[_0x3622('0x13')](_0x4374d7,_0x52be7f)[_0x3622('0x14')](function(_0x271427){logger['info'](_0x3622('0x15'),_0x1b7d9d,'request\x20sent');logger[_0x3622('0x16')](_0x3622('0x17'),_0x1b7d9d,'request\x20sent',JSON[_0x3622('0x18')](_0x271427));if(_0x271427[_0x3622('0x19')]){if(_0x271427[_0x3622('0x19')]['code']===0x1f4){logger['error'](_0x3622('0x15'),_0x1b7d9d,_0x271427[_0x3622('0x19')]['message']);return _0x562377(_0x271427[_0x3622('0x19')][_0x3622('0x1a')]);}logger[_0x3622('0x19')](_0x3622('0x15'),_0x1b7d9d,_0x271427['error']['message']);return _0x47c301(_0x271427[_0x3622('0x19')][_0x3622('0x1a')]);}else{logger[_0x3622('0x1b')]('FaxAccount,\x20%s,\x20%s',_0x1b7d9d,_0x3622('0x1c'));_0x47c301(_0x271427[_0x3622('0x1d')][_0x3622('0x1a')]);}})[_0x3622('0x1e')](function(_0x344261){logger[_0x3622('0x19')](_0x3622('0x15'),_0x1b7d9d,_0x344261);_0x562377(_0x344261);});});}exports['GetFaxAccount']=function(_0x4dbbba){var _0x5adb80=this;return new Promise(function(_0x15f0ac,_0x29b715){return db[_0x3622('0x1f')][_0x3622('0x20')]({'raw':_0x4dbbba['options']?_0x4dbbba[_0x3622('0x21')][_0x3622('0x22')]===undefined?!![]:![]:!![],'where':_0x4dbbba[_0x3622('0x21')]?_0x4dbbba['options']['where']||null:null,'attributes':_0x4dbbba[_0x3622('0x21')]?_0x4dbbba[_0x3622('0x21')][_0x3622('0x23')]||null:null,'limit':_0x4dbbba['options']?_0x4dbbba['options'][_0x3622('0x24')]||null:null,'include':_0x4dbbba['options']?_0x4dbbba[_0x3622('0x21')][_0x3622('0x25')]?_[_0x3622('0x26')](_0x4dbbba[_0x3622('0x21')][_0x3622('0x25')],function(_0x54c5af){return{'model':db[_0x54c5af[_0x3622('0x27')]],'as':_0x54c5af['as'],'attributes':_0x54c5af['attributes'],'include':_0x54c5af[_0x3622('0x25')]?_[_0x3622('0x26')](_0x54c5af[_0x3622('0x25')],function(_0x516dfc){return{'model':db[_0x516dfc[_0x3622('0x27')]],'as':_0x516dfc['as'],'attributes':_0x516dfc[_0x3622('0x23')],'include':_0x516dfc[_0x3622('0x25')]?_[_0x3622('0x26')](_0x516dfc['include'],function(_0x31c986){return{'model':db[_0x31c986[_0x3622('0x27')]],'as':_0x31c986['as'],'attributes':_0x31c986['attributes']};}):[]};}):[]};}):[]:[]})[_0x3622('0x14')](function(_0x2e29cc){logger[_0x3622('0x1b')](_0x3622('0x28'),_0x4dbbba);logger[_0x3622('0x16')](_0x3622('0x28'),_0x4dbbba,JSON[_0x3622('0x18')](_0x2e29cc));_0x15f0ac(_0x2e29cc);})[_0x3622('0x1e')](function(_0x4406e5){logger['error'](_0x3622('0x28'),_0x4406e5['message'],_0x4dbbba);_0x29b715(_0x5adb80['error'](0x1f4,_0x4406e5[_0x3622('0x1a')]));});});};exports[_0x3622('0x29')]=function(_0x37d757,_0x3c5a9d,_0x1ac7ac){var _0x1ebdbb=this;return new Promise(function(_0x5abae5,_0x31799d){var _0x528a0e={'body':_0x37d757[_0x3622('0x2a')],'channel':_0x3622('0x2b')};var _0x38e413=[];var _0x572f8e=[];var _0x475ad6={};return db[_0x3622('0x2c')][_0x3622('0x2d')]()[_0x3622('0x14')](function(_0x1ab659){if(!_0x1ab659){throw new db[(_0x3622('0x2e'))][(_0x3622('0x2f'))](_0x3622('0x30'));}_0x38e413=_[_0x3622('0x31')](_['keys'](_0x1ab659),['createdAt',_0x3622('0x32')]);_0x572f8e=_['difference'](_[_0x3622('0x33')](_0x1ab659),[_0x3622('0x34'),_0x3622('0x32'),_0x3622('0x35'),_0x3622('0x36')]);if(_0x37d757['body']['id']){delete _0x37d757[_0x3622('0x2a')]['id'];}if(_['isNil'](_0x37d757[_0x3622('0x2a')]['from'])){throw new db[(_0x3622('0x2e'))][(_0x3622('0x2f'))]('from\x20is\x20mandatory');}if(_[_0x3622('0x37')](_0x37d757[_0x3622('0x2a')]['body'])||_0x37d757[_0x3622('0x2a')][_0x3622('0x2a')]===''){throw new db['Sequelize'][(_0x3622('0x2f'))](_0x3622('0x38'));}if(_[_0x3622('0x37')](_0x37d757[_0x3622('0x2a')][_0x3622('0x39')])){throw new db[(_0x3622('0x2e'))]['ValidationError']('mapKey\x20is\x20mandatory,\x20please\x20use\x20one\x20of\x20these:\x20'+_0x572f8e);}if(!_[_0x3622('0x3a')](_0x572f8e,_0x37d757[_0x3622('0x2a')][_0x3622('0x39')])){throw new db[(_0x3622('0x2e'))][(_0x3622('0x2f'))](_0x3622('0x3b')+_0x572f8e);}_0x475ad6[_0x37d757[_0x3622('0x2a')]['mapKey']]=_0x37d757[_0x3622('0x2a')]['from'];})['then'](function(){return db['FaxAccount'][_0x3622('0x3c')]({'where':{'id':_0x37d757[_0x3622('0x3d')]['id']},'include':[{'model':db[_0x3622('0x3e')],'as':_0x3622('0x3f'),'include':[{'model':db['CmContact'],'as':_0x3622('0x40'),'where':_0x475ad6,'limit':0x1,'order':[[_0x3622('0x32'),_0x3622('0x41')]]}]},{'model':db[_0x3622('0x42')],'as':_0x3622('0x43')}]});})[_0x3622('0x14')](function(_0x12344b){if(_0x12344b&&_0x12344b[_0x3622('0x3f')]){var _0x21cf95=_0x12344b['get']({'plain':!![]});_0x528a0e[_0x3622('0x3d')]=_0x21cf95;_0x528a0e['applications']=_0x21cf95['Applications'];_0x528a0e[_0x3622('0x44')]=_0x21cf95[_0x3622('0x3f')];_0x528a0e[_0x3622('0x45')]=_[_0x3622('0x46')](_0x528a0e[_0x3622('0x45')],[_0x3622('0x47')],[_0x3622('0x48')]);if(_0x528a0e[_0x3622('0x3d')][_0x3622('0x43')]){delete _0x528a0e['account'][_0x3622('0x43')];}if(_0x528a0e[_0x3622('0x3d')][_0x3622('0x3f')]&&_0x528a0e[_0x3622('0x3d')][_0x3622('0x3f')][_0x3622('0x40')][_0x3622('0x49')]){return _0x528a0e['account'][_0x3622('0x3f')][_0x3622('0x40')][0x0];}var _0x4107f2=_[_0x3622('0xf')](_0x37d757[_0x3622('0x2a')],{'firstName':_0x37d757[_0x3622('0x2a')][_0x3622('0x4a')],'ListId':_0x21cf95[_0x3622('0x36')]});_0x4107f2[_0x37d757[_0x3622('0x2a')]['mapKey']]=_0x37d757[_0x3622('0x2a')][_0x3622('0x4a')];return db[_0x3622('0x2c')][_0x3622('0x4b')](_0x4107f2,{'fields':_0x38e413,'raw':!![]});}})['then'](function(_0xf35d93){_0x528a0e[_0x3622('0x4c')]=_0xf35d93;if(_0xf35d93){var _0x49d1f6={'ContactId':_0xf35d93['id'],'FaxAccountId':_0x37d757[_0x3622('0x3d')]['id'],'fax':_0xf35d93[_0x3622('0x2b')]};return db[_0x3622('0x4d')][_0x3622('0x3c')]({'where':{'ContactId':_0xf35d93['id'],'closed':![],'FaxAccountId':_0x37d757[_0x3622('0x3d')]['id']}})[_0x3622('0x14')](function(_0x3b27fc){if(_0x3b27fc){return[_0x3b27fc,![]];}return db['FaxInteraction']['create'](_0x49d1f6)[_0x3622('0x14')](function(_0x5b1467){return[_0x5b1467,!![]];});});}else{throw new Error('Contact\x20not\x20found');}})[_0x3622('0x4e')](function(_0x55049f,_0x47fe9c){var _0x19df11=_0x55049f[_0x3622('0x4f')]({'plain':!![]});if(_0x47fe9c){if(_0x528a0e[_0x3622('0x3d')][_0x3622('0x50')]){_0x528a0e[_0x3622('0x45')][_0x3622('0x51')]({'id':0x0,'priority':_0x528a0e['applications'][_0x3622('0x49')]+0x1,'app':_0x3622('0x52'),'appdata':_0x3622('0x53'),'interval':'*,*,*,*'});}_0x19df11[_0x3622('0x54')]=!![];}else{_0x19df11[_0x3622('0x54')]=![];}_0x528a0e[_0x3622('0x55')]=_0x19df11;return db[_0x3622('0x56')][_0x3622('0x4b')]({'body':_0x37d757[_0x3622('0x2a')][_0x3622('0x2a')],'FaxAccountId':_0x37d757[_0x3622('0x3d')]['id'],'FaxInteractionId':_0x55049f['id'],'direction':'in','ContactId':_0x55049f[_0x3622('0x57')],'AttachmentId':_0x37d757['body'][_0x3622('0x58')]});})[_0x3622('0x14')](function(_0x438439){_0x528a0e['message']=_0x438439;if(_0x528a0e[_0x3622('0x55')][_0x3622('0x59')]){return db[_0x3622('0x5a')][_0x3622('0x3c')]({'attributes':['id',_0x3622('0x5b')],'where':{'id':_0x528a0e[_0x3622('0x55')][_0x3622('0x59')]}})['then'](function(_0x44e961){if(_0x44e961){_0x528a0e[_0x3622('0x45')][_0x3622('0x5c')]({'id':0x0,'priority':0x0,'app':'agent','appdata':_0x44e961[_0x3622('0x5b')]+','+(_0x528a0e[_0x3622('0x3d')]['waitForTheAssignedAgent']||0xa),'interval':'*,*,*,*'});}return respondWithRpcPromise(_0x3622('0x5d'),_0x3622('0x5e'),_0x528a0e);});}return respondWithRpcPromise('Start',_0x3622('0x5e'),_0x528a0e);})[_0x3622('0x14')](function(_0xea9325){_0x5abae5(_0xea9325);})[_0x3622('0x1e')](function(_0x1f0fd5){_0x31799d(_0x1ebdbb[_0x3622('0x19')](0x1f4,_0x1f0fd5[_0x3622('0x1a')]));});});};