8415888140c2f2a05d3b9edd00449dadbb347d68
[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 _0xc615=['agent','waitForTheAssignedAgent','*,*,*,*','startRouting','Start','lodash','moment','bluebird','ioredis','../../mysqldb','../../config/utils','../../config/logger','rpc','../../config/environment','client','http','redis','defaults','localhost','./faxAccount.socket','register','request','then','FaxAccount,\x20%s,\x20%s','FaxAccount,\x20%s,\x20%s,\x20%s','stringify','error','code','message','request\x20sent','result','catch','FaxAccount','findAll','options','raw','where','attributes','map','include','model','info','GetFaxAccount','debug','body','fax','ValidationError','no\x20available\x20attributes','difference','keys','createdAt','CompanyId','ListId','isNil','from\x20is\x20mandatory','Sequelize','body\x20is\x20mandatory\x20and\x20not\x20empty','mapKey','mapKey\x20is\x20mandatory,\x20please\x20use\x20one\x20of\x20these:\x20','mapKey\x20invalid,\x20please\x20use\x20one\x20of\x20these:\x20','from','find','account','CmList','CmContact','updatedAt','FaxApplication','Applications','get','applications','list','List','orderBy','priority','asc','Contacts','length','create','contact','FaxInteraction','Contact\x20not\x20found','unmanaged','created','FaxMessage','ContactId','AttachmentId','interaction','name','UserId','unshift'];(function(_0x53ccf2,_0x13cb67){var _0x5a2964=function(_0x3b0514){while(--_0x3b0514){_0x53ccf2['push'](_0x53ccf2['shift']());}};_0x5a2964(++_0x13cb67);}(_0xc615,0x16d));var _0x5c61=function(_0x445fbc,_0x1a17f9){_0x445fbc=_0x445fbc-0x0;var _0x5762a9=_0xc615[_0x445fbc];return _0x5762a9;};'use strict';var _=require(_0x5c61('0x0'));var util=require('util');var moment=require(_0x5c61('0x1'));var BPromise=require(_0x5c61('0x2'));var rs=require('randomstring');var fs=require('fs');var Redis=require(_0x5c61('0x3'));var db=require(_0x5c61('0x4'))['db'];var utils=require(_0x5c61('0x5'));var logger=require(_0x5c61('0x6'))(_0x5c61('0x7'));var config=require(_0x5c61('0x8'));var jayson=require('jayson/promise');var client=jayson[_0x5c61('0x9')][_0x5c61('0xa')]({'port':0x232c});config[_0x5c61('0xb')]=_[_0x5c61('0xc')](config['redis'],{'host':_0x5c61('0xd'),'port':0x18eb});var socket=require('socket.io-emitter')(new Redis(config[_0x5c61('0xb')]));require(_0x5c61('0xe'))[_0x5c61('0xf')](socket);function respondWithRpcPromise(_0x5f2396,_0x511ec7,_0x41f4fb){return new BPromise(function(_0x2f6521,_0x21e925){return client[_0x5c61('0x10')](_0x5f2396,_0x41f4fb)[_0x5c61('0x11')](function(_0x50bf71){logger['info'](_0x5c61('0x12'),_0x511ec7,'request\x20sent');logger['debug'](_0x5c61('0x13'),_0x511ec7,'request\x20sent',JSON[_0x5c61('0x14')](_0x50bf71));if(_0x50bf71[_0x5c61('0x15')]){if(_0x50bf71[_0x5c61('0x15')][_0x5c61('0x16')]===0x1f4){logger[_0x5c61('0x15')]('FaxAccount,\x20%s,\x20%s',_0x511ec7,_0x50bf71['error'][_0x5c61('0x17')]);return _0x21e925(_0x50bf71[_0x5c61('0x15')][_0x5c61('0x17')]);}logger[_0x5c61('0x15')]('FaxAccount,\x20%s,\x20%s',_0x511ec7,_0x50bf71[_0x5c61('0x15')][_0x5c61('0x17')]);return _0x2f6521(_0x50bf71[_0x5c61('0x15')][_0x5c61('0x17')]);}else{logger['info'](_0x5c61('0x12'),_0x511ec7,_0x5c61('0x18'));_0x2f6521(_0x50bf71[_0x5c61('0x19')][_0x5c61('0x17')]);}})[_0x5c61('0x1a')](function(_0x5d69a7){logger[_0x5c61('0x15')](_0x5c61('0x12'),_0x511ec7,_0x5d69a7);_0x21e925(_0x5d69a7);});});}exports['GetFaxAccount']=function(_0x3dc593){var _0x58968f=this;return new Promise(function(_0x17f192,_0x4c26e1){return db[_0x5c61('0x1b')][_0x5c61('0x1c')]({'raw':_0x3dc593[_0x5c61('0x1d')]?_0x3dc593[_0x5c61('0x1d')][_0x5c61('0x1e')]===undefined?!![]:![]:!![],'where':_0x3dc593['options']?_0x3dc593[_0x5c61('0x1d')][_0x5c61('0x1f')]||null:null,'attributes':_0x3dc593[_0x5c61('0x1d')]?_0x3dc593[_0x5c61('0x1d')][_0x5c61('0x20')]||null:null,'limit':_0x3dc593['options']?_0x3dc593['options']['limit']||null:null,'include':_0x3dc593[_0x5c61('0x1d')]?_0x3dc593[_0x5c61('0x1d')]['include']?_[_0x5c61('0x21')](_0x3dc593['options'][_0x5c61('0x22')],function(_0x1b6842){return{'model':db[_0x1b6842['model']],'as':_0x1b6842['as'],'attributes':_0x1b6842[_0x5c61('0x20')],'include':_0x1b6842[_0x5c61('0x22')]?_[_0x5c61('0x21')](_0x1b6842['include'],function(_0x5798ac){return{'model':db[_0x5798ac[_0x5c61('0x23')]],'as':_0x5798ac['as'],'attributes':_0x5798ac[_0x5c61('0x20')],'include':_0x5798ac['include']?_[_0x5c61('0x21')](_0x5798ac[_0x5c61('0x22')],function(_0x35b2c6){return{'model':db[_0x35b2c6[_0x5c61('0x23')]],'as':_0x35b2c6['as'],'attributes':_0x35b2c6['attributes']};}):[]};}):[]};}):[]:[]})[_0x5c61('0x11')](function(_0x35161e){logger[_0x5c61('0x24')](_0x5c61('0x25'),_0x3dc593);logger[_0x5c61('0x26')]('GetFaxAccount',_0x3dc593,JSON['stringify'](_0x35161e));_0x17f192(_0x35161e);})[_0x5c61('0x1a')](function(_0x351950){logger[_0x5c61('0x15')](_0x5c61('0x25'),_0x351950[_0x5c61('0x17')],_0x3dc593);_0x4c26e1(_0x58968f[_0x5c61('0x15')](0x1f4,_0x351950[_0x5c61('0x17')]));});});};exports['NotifyFaxAccount']=function(_0x5ab3a5,_0x4ceb15,_0x5dae5e){var _0x30d7da=this;return new Promise(function(_0x26e8ab,_0x7844b0){var _0xba5d18={'body':_0x5ab3a5[_0x5c61('0x27')],'channel':_0x5c61('0x28')};var _0x64eb8f=[];var _0x4962d7=[];var _0x344d4f={};return db['CmContact']['describe']()[_0x5c61('0x11')](function(_0x54f049){if(!_0x54f049){throw new db['Sequelize'][(_0x5c61('0x29'))](_0x5c61('0x2a'));}_0x64eb8f=_[_0x5c61('0x2b')](_[_0x5c61('0x2c')](_0x54f049),['createdAt','updatedAt']);_0x4962d7=_[_0x5c61('0x2b')](_['keys'](_0x54f049),[_0x5c61('0x2d'),'updatedAt',_0x5c61('0x2e'),_0x5c61('0x2f')]);if(_0x5ab3a5[_0x5c61('0x27')]['id']){delete _0x5ab3a5[_0x5c61('0x27')]['id'];}if(_[_0x5c61('0x30')](_0x5ab3a5['body']['from'])){throw new db['Sequelize'][(_0x5c61('0x29'))](_0x5c61('0x31'));}if(_[_0x5c61('0x30')](_0x5ab3a5[_0x5c61('0x27')]['body'])||_0x5ab3a5['body'][_0x5c61('0x27')]===''){throw new db[(_0x5c61('0x32'))]['ValidationError'](_0x5c61('0x33'));}if(_[_0x5c61('0x30')](_0x5ab3a5[_0x5c61('0x27')][_0x5c61('0x34')])){throw new db[(_0x5c61('0x32'))][(_0x5c61('0x29'))](_0x5c61('0x35')+_0x4962d7);}if(!_['includes'](_0x4962d7,_0x5ab3a5['body'][_0x5c61('0x34')])){throw new db[(_0x5c61('0x32'))][(_0x5c61('0x29'))](_0x5c61('0x36')+_0x4962d7);}_0x344d4f[_0x5ab3a5[_0x5c61('0x27')][_0x5c61('0x34')]]=_0x5ab3a5['body'][_0x5c61('0x37')];})[_0x5c61('0x11')](function(){return db[_0x5c61('0x1b')][_0x5c61('0x38')]({'where':{'id':_0x5ab3a5[_0x5c61('0x39')]['id']},'include':[{'model':db[_0x5c61('0x3a')],'as':'List','include':[{'model':db[_0x5c61('0x3b')],'as':'Contacts','where':_0x344d4f,'limit':0x1,'order':[[_0x5c61('0x3c'),'DESC']]}]},{'model':db[_0x5c61('0x3d')],'as':_0x5c61('0x3e')}]});})[_0x5c61('0x11')](function(_0x57094a){if(_0x57094a&&_0x57094a['List']){var _0x23d3af=_0x57094a[_0x5c61('0x3f')]({'plain':!![]});_0xba5d18[_0x5c61('0x39')]=_0x23d3af;_0xba5d18[_0x5c61('0x40')]=_0x23d3af[_0x5c61('0x3e')];_0xba5d18[_0x5c61('0x41')]=_0x23d3af[_0x5c61('0x42')];_0xba5d18[_0x5c61('0x40')]=_[_0x5c61('0x43')](_0xba5d18[_0x5c61('0x40')],[_0x5c61('0x44')],[_0x5c61('0x45')]);if(_0xba5d18['account'][_0x5c61('0x3e')]){delete _0xba5d18[_0x5c61('0x39')][_0x5c61('0x3e')];}if(_0xba5d18['account'][_0x5c61('0x42')]&&_0xba5d18[_0x5c61('0x39')][_0x5c61('0x42')][_0x5c61('0x46')][_0x5c61('0x47')]){return _0xba5d18[_0x5c61('0x39')][_0x5c61('0x42')]['Contacts'][0x0];}var _0x1874c2=_[_0x5c61('0xc')](_0x5ab3a5[_0x5c61('0x27')],{'firstName':_0x5ab3a5[_0x5c61('0x27')][_0x5c61('0x37')],'ListId':_0x23d3af['ListId']});_0x1874c2[_0x5ab3a5[_0x5c61('0x27')][_0x5c61('0x34')]]=_0x5ab3a5['body'][_0x5c61('0x37')];return db[_0x5c61('0x3b')][_0x5c61('0x48')](_0x1874c2,{'fields':_0x64eb8f,'raw':!![]});}})[_0x5c61('0x11')](function(_0x5966e1){_0xba5d18[_0x5c61('0x49')]=_0x5966e1;if(_0x5966e1){var _0x2ff4b9={'ContactId':_0x5966e1['id'],'FaxAccountId':_0x5ab3a5['account']['id'],'fax':_0x5966e1[_0x5c61('0x28')]};return db[_0x5c61('0x4a')][_0x5c61('0x38')]({'where':{'ContactId':_0x5966e1['id'],'closed':![],'FaxAccountId':_0x5ab3a5[_0x5c61('0x39')]['id']}})[_0x5c61('0x11')](function(_0x3bf77f){if(_0x3bf77f){return[_0x3bf77f,![]];}return db[_0x5c61('0x4a')][_0x5c61('0x48')](_0x2ff4b9)[_0x5c61('0x11')](function(_0x5b798b){return[_0x5b798b,!![]];});});}else{throw new Error(_0x5c61('0x4b'));}})['spread'](function(_0x3722ab,_0x23f90f){var _0x150ace=_0x3722ab[_0x5c61('0x3f')]({'plain':!![]});if(_0x23f90f){if(_0xba5d18['account']['autoclose']){_0xba5d18[_0x5c61('0x40')]['push']({'id':0x0,'priority':_0xba5d18[_0x5c61('0x40')][_0x5c61('0x47')]+0x1,'app':'close','appdata':_0x5c61('0x4c'),'interval':'*,*,*,*'});}_0x150ace[_0x5c61('0x4d')]=!![];}else{_0x150ace[_0x5c61('0x4d')]=![];}_0xba5d18['interaction']=_0x150ace;return db[_0x5c61('0x4e')]['create']({'body':_0x5ab3a5[_0x5c61('0x27')][_0x5c61('0x27')],'FaxAccountId':_0x5ab3a5[_0x5c61('0x39')]['id'],'FaxInteractionId':_0x3722ab['id'],'direction':'in','ContactId':_0x3722ab[_0x5c61('0x4f')],'AttachmentId':_0x5ab3a5['body'][_0x5c61('0x50')]});})[_0x5c61('0x11')](function(_0x580ea1){_0xba5d18['message']=_0x580ea1;if(_0xba5d18[_0x5c61('0x51')]['UserId']){return db['User'][_0x5c61('0x38')]({'attributes':['id',_0x5c61('0x52')],'where':{'id':_0xba5d18[_0x5c61('0x51')][_0x5c61('0x53')]}})[_0x5c61('0x11')](function(_0xba8b46){if(_0xba8b46){_0xba5d18['applications'][_0x5c61('0x54')]({'id':0x0,'priority':0x0,'app':_0x5c61('0x55'),'appdata':_0xba8b46['name']+','+(_0xba5d18[_0x5c61('0x39')][_0x5c61('0x56')]||0xa),'interval':_0x5c61('0x57')});}return respondWithRpcPromise('Start',_0x5c61('0x58'),_0xba5d18);});}return respondWithRpcPromise(_0x5c61('0x59'),_0x5c61('0x58'),_0xba5d18);})['then'](function(_0x4acaeb){_0x26e8ab(_0x4acaeb);})['catch'](function(_0x2f8b66){_0x7844b0(_0x30d7da['error'](0x1f4,_0x2f8b66[_0x5c61('0x17')]));});});};