19ad425bd3c5e0aba5c64c27e77794b993beabee
[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 _0xd37b=['FaxAccount,\x20%s,\x20%s,\x20%s','error','code','message','result','catch','FaxAccount','findAll','options','raw','where','limit','include','attributes','map','model','debug','stringify','GetFaxAccount','NotifyFaxAccount','body','CmContact','describe','Sequelize','ValidationError','no\x20available\x20attributes','difference','keys','createdAt','updatedAt','CompanyId','from','from\x20is\x20mandatory','isNil','mapKey','mapKey\x20is\x20mandatory,\x20please\x20use\x20one\x20of\x20these:\x20','includes','mapKey\x20invalid,\x20please\x20use\x20one\x20of\x20these:\x20','find','account','CmList','List','Contacts','DESC','FaxApplication','Applications','applications','list','orderBy','asc','length','create','fax','FaxInteraction','spread','get','autoclose','push','unmanaged','created','interaction','FaxMessage','ContactId','AttachmentId','UserId','User','name','unshift','agent','waitForTheAssignedAgent','*,*,*,*','Start','startRouting','lodash','util','moment','bluebird','randomstring','../../mysqldb','../../config/utils','../../config/logger','rpc','../../config/environment','jayson/promise','client','redis','defaults','localhost','socket.io-emitter','register','request','then','info','FaxAccount,\x20%s,\x20%s','request\x20sent'];(function(_0xc72a72,_0xfaaf35){var _0x20f9a9=function(_0x341491){while(--_0x341491){_0xc72a72['push'](_0xc72a72['shift']());}};_0x20f9a9(++_0xfaaf35);}(_0xd37b,0x1c5));var _0xbd37=function(_0x49b4b1,_0x15a0cf){_0x49b4b1=_0x49b4b1-0x0;var _0x515b41=_0xd37b[_0x49b4b1];return _0x515b41;};'use strict';var _=require(_0xbd37('0x0'));var util=require(_0xbd37('0x1'));var moment=require(_0xbd37('0x2'));var BPromise=require(_0xbd37('0x3'));var rs=require(_0xbd37('0x4'));var fs=require('fs');var Redis=require('ioredis');var db=require(_0xbd37('0x5'))['db'];var utils=require(_0xbd37('0x6'));var logger=require(_0xbd37('0x7'))(_0xbd37('0x8'));var config=require(_0xbd37('0x9'));var jayson=require(_0xbd37('0xa'));var client=jayson[_0xbd37('0xb')]['http']({'port':0x232c});config[_0xbd37('0xc')]=_[_0xbd37('0xd')](config[_0xbd37('0xc')],{'host':_0xbd37('0xe'),'port':0x18eb});var socket=require(_0xbd37('0xf'))(new Redis(config[_0xbd37('0xc')]));require('./faxAccount.socket')[_0xbd37('0x10')](socket);function respondWithRpcPromise(_0x4f0e67,_0x5e6937,_0x564c6a){return new BPromise(function(_0x941152,_0x4bb931){return client[_0xbd37('0x11')](_0x4f0e67,_0x564c6a)[_0xbd37('0x12')](function(_0x286966){logger[_0xbd37('0x13')](_0xbd37('0x14'),_0x5e6937,_0xbd37('0x15'));logger['debug'](_0xbd37('0x16'),_0x5e6937,_0xbd37('0x15'),JSON['stringify'](_0x286966));if(_0x286966[_0xbd37('0x17')]){if(_0x286966['error'][_0xbd37('0x18')]===0x1f4){logger['error']('FaxAccount,\x20%s,\x20%s',_0x5e6937,_0x286966[_0xbd37('0x17')][_0xbd37('0x19')]);return _0x4bb931(_0x286966[_0xbd37('0x17')][_0xbd37('0x19')]);}logger[_0xbd37('0x17')](_0xbd37('0x14'),_0x5e6937,_0x286966[_0xbd37('0x17')][_0xbd37('0x19')]);return _0x941152(_0x286966[_0xbd37('0x17')][_0xbd37('0x19')]);}else{logger[_0xbd37('0x13')](_0xbd37('0x14'),_0x5e6937,_0xbd37('0x15'));_0x941152(_0x286966[_0xbd37('0x1a')]['message']);}})[_0xbd37('0x1b')](function(_0x4ba56a){logger[_0xbd37('0x17')](_0xbd37('0x14'),_0x5e6937,_0x4ba56a);_0x4bb931(_0x4ba56a);});});}exports['GetFaxAccount']=function(_0x54bb5e){var _0x23ae31=this;return new Promise(function(_0x1d1e6e,_0x141668){return db[_0xbd37('0x1c')][_0xbd37('0x1d')]({'raw':_0x54bb5e[_0xbd37('0x1e')]?_0x54bb5e[_0xbd37('0x1e')][_0xbd37('0x1f')]===undefined?!![]:![]:!![],'where':_0x54bb5e[_0xbd37('0x1e')]?_0x54bb5e[_0xbd37('0x1e')][_0xbd37('0x20')]||null:null,'attributes':_0x54bb5e[_0xbd37('0x1e')]?_0x54bb5e['options']['attributes']||null:null,'limit':_0x54bb5e[_0xbd37('0x1e')]?_0x54bb5e[_0xbd37('0x1e')][_0xbd37('0x21')]||null:null,'include':_0x54bb5e[_0xbd37('0x1e')]?_0x54bb5e[_0xbd37('0x1e')][_0xbd37('0x22')]?_['map'](_0x54bb5e['options']['include'],function(_0x5e6c33){return{'model':db[_0x5e6c33['model']],'as':_0x5e6c33['as'],'attributes':_0x5e6c33[_0xbd37('0x23')],'include':_0x5e6c33[_0xbd37('0x22')]?_[_0xbd37('0x24')](_0x5e6c33[_0xbd37('0x22')],function(_0x5ab44d){return{'model':db[_0x5ab44d[_0xbd37('0x25')]],'as':_0x5ab44d['as'],'attributes':_0x5ab44d['attributes'],'include':_0x5ab44d[_0xbd37('0x22')]?_['map'](_0x5ab44d[_0xbd37('0x22')],function(_0x26fe1a){return{'model':db[_0x26fe1a[_0xbd37('0x25')]],'as':_0x26fe1a['as'],'attributes':_0x26fe1a[_0xbd37('0x23')]};}):[]};}):[]};}):[]:[]})[_0xbd37('0x12')](function(_0x1a69a3){logger[_0xbd37('0x13')]('GetFaxAccount',_0x54bb5e);logger[_0xbd37('0x26')]('GetFaxAccount',_0x54bb5e,JSON[_0xbd37('0x27')](_0x1a69a3));_0x1d1e6e(_0x1a69a3);})[_0xbd37('0x1b')](function(_0x1693cb){logger['error'](_0xbd37('0x28'),_0x1693cb['message'],_0x54bb5e);_0x141668(_0x23ae31[_0xbd37('0x17')](0x1f4,_0x1693cb[_0xbd37('0x19')]));});});};exports[_0xbd37('0x29')]=function(_0x14dd76,_0x5e589e,_0x2f75f1){var _0x6bacaf=this;return new Promise(function(_0x17c1be,_0x231336){var _0x322abb={'body':_0x14dd76[_0xbd37('0x2a')],'channel':'fax'};var _0x3cc6f3=[];var _0x7edd24=[];var _0x113619={};return db[_0xbd37('0x2b')][_0xbd37('0x2c')]()[_0xbd37('0x12')](function(_0x555172){if(!_0x555172){throw new db[(_0xbd37('0x2d'))][(_0xbd37('0x2e'))](_0xbd37('0x2f'));}_0x3cc6f3=_[_0xbd37('0x30')](_[_0xbd37('0x31')](_0x555172),[_0xbd37('0x32'),_0xbd37('0x33')]);_0x7edd24=_['difference'](_['keys'](_0x555172),[_0xbd37('0x32'),_0xbd37('0x33'),_0xbd37('0x34'),'ListId']);if(_0x14dd76[_0xbd37('0x2a')]['id']){delete _0x14dd76[_0xbd37('0x2a')]['id'];}if(_['isNil'](_0x14dd76['body'][_0xbd37('0x35')])){throw new db[(_0xbd37('0x2d'))][(_0xbd37('0x2e'))](_0xbd37('0x36'));}if(_[_0xbd37('0x37')](_0x14dd76[_0xbd37('0x2a')][_0xbd37('0x2a')])||_0x14dd76[_0xbd37('0x2a')][_0xbd37('0x2a')]===''){throw new db[(_0xbd37('0x2d'))]['ValidationError']('body\x20is\x20mandatory\x20and\x20not\x20empty');}if(_[_0xbd37('0x37')](_0x14dd76[_0xbd37('0x2a')][_0xbd37('0x38')])){throw new db[(_0xbd37('0x2d'))]['ValidationError'](_0xbd37('0x39')+_0x7edd24);}if(!_[_0xbd37('0x3a')](_0x7edd24,_0x14dd76[_0xbd37('0x2a')][_0xbd37('0x38')])){throw new db[(_0xbd37('0x2d'))][(_0xbd37('0x2e'))](_0xbd37('0x3b')+_0x7edd24);}_0x113619[_0x14dd76[_0xbd37('0x2a')][_0xbd37('0x38')]]=_0x14dd76[_0xbd37('0x2a')][_0xbd37('0x35')];})[_0xbd37('0x12')](function(){return db[_0xbd37('0x1c')][_0xbd37('0x3c')]({'where':{'id':_0x14dd76[_0xbd37('0x3d')]['id']},'include':[{'model':db[_0xbd37('0x3e')],'as':_0xbd37('0x3f'),'include':[{'model':db[_0xbd37('0x2b')],'as':_0xbd37('0x40'),'where':_0x113619,'limit':0x1,'order':[[_0xbd37('0x33'),_0xbd37('0x41')]]}]},{'model':db[_0xbd37('0x42')],'as':_0xbd37('0x43')}]});})[_0xbd37('0x12')](function(_0x3145f7){if(_0x3145f7&&_0x3145f7['List']){var _0x2d7f8b=_0x3145f7['get']({'plain':!![]});_0x322abb['account']=_0x2d7f8b;_0x322abb[_0xbd37('0x44')]=_0x2d7f8b['Applications'];_0x322abb[_0xbd37('0x45')]=_0x2d7f8b[_0xbd37('0x3f')];_0x322abb[_0xbd37('0x44')]=_[_0xbd37('0x46')](_0x322abb['applications'],['priority'],[_0xbd37('0x47')]);if(_0x322abb[_0xbd37('0x3d')][_0xbd37('0x43')]){delete _0x322abb[_0xbd37('0x3d')][_0xbd37('0x43')];}if(_0x322abb[_0xbd37('0x3d')][_0xbd37('0x3f')]&&_0x322abb[_0xbd37('0x3d')]['List'][_0xbd37('0x40')][_0xbd37('0x48')]){return _0x322abb['account'][_0xbd37('0x3f')][_0xbd37('0x40')][0x0];}var _0x2f2ee2=_[_0xbd37('0xd')](_0x14dd76[_0xbd37('0x2a')],{'firstName':_0x14dd76['body']['from'],'ListId':_0x2d7f8b['ListId']});_0x2f2ee2[_0x14dd76[_0xbd37('0x2a')][_0xbd37('0x38')]]=_0x14dd76['body'][_0xbd37('0x35')];return db[_0xbd37('0x2b')][_0xbd37('0x49')](_0x2f2ee2,{'fields':_0x3cc6f3,'raw':!![]});}})[_0xbd37('0x12')](function(_0x36bbf7){_0x322abb['contact']=_0x36bbf7;if(_0x36bbf7){var _0x32e000={'ContactId':_0x36bbf7['id'],'FaxAccountId':_0x14dd76[_0xbd37('0x3d')]['id'],'fax':_0x36bbf7[_0xbd37('0x4a')]};return db['FaxInteraction'][_0xbd37('0x3c')]({'where':{'ContactId':_0x36bbf7['id'],'closed':![],'FaxAccountId':_0x14dd76[_0xbd37('0x3d')]['id']}})[_0xbd37('0x12')](function(_0x232881){if(_0x232881){return[_0x232881,![]];}return db[_0xbd37('0x4b')]['create'](_0x32e000)['then'](function(_0x2aa23d){return[_0x2aa23d,!![]];});});}else{throw new Error('Contact\x20not\x20found');}})[_0xbd37('0x4c')](function(_0x4f7929,_0x1990e6){var _0x1ca400=_0x4f7929[_0xbd37('0x4d')]({'plain':!![]});if(_0x1990e6){if(_0x322abb['account'][_0xbd37('0x4e')]){_0x322abb[_0xbd37('0x44')][_0xbd37('0x4f')]({'id':0x0,'priority':_0x322abb[_0xbd37('0x44')][_0xbd37('0x48')]+0x1,'app':'close','appdata':_0xbd37('0x50'),'interval':'*,*,*,*'});}_0x1ca400[_0xbd37('0x51')]=!![];}else{_0x1ca400[_0xbd37('0x51')]=![];}_0x322abb[_0xbd37('0x52')]=_0x1ca400;return db[_0xbd37('0x53')]['create']({'body':_0x14dd76[_0xbd37('0x2a')][_0xbd37('0x2a')],'FaxAccountId':_0x14dd76[_0xbd37('0x3d')]['id'],'FaxInteractionId':_0x4f7929['id'],'direction':'in','ContactId':_0x4f7929[_0xbd37('0x54')],'AttachmentId':_0x14dd76[_0xbd37('0x2a')][_0xbd37('0x55')]});})['then'](function(_0x18b4fe){_0x322abb[_0xbd37('0x19')]=_0x18b4fe;if(_0x322abb[_0xbd37('0x52')][_0xbd37('0x56')]){return db[_0xbd37('0x57')][_0xbd37('0x3c')]({'attributes':['id',_0xbd37('0x58')],'where':{'id':_0x322abb[_0xbd37('0x52')]['UserId']}})[_0xbd37('0x12')](function(_0x421936){if(_0x421936){_0x322abb[_0xbd37('0x44')][_0xbd37('0x59')]({'id':0x0,'priority':0x0,'app':_0xbd37('0x5a'),'appdata':_0x421936[_0xbd37('0x58')]+','+(_0x322abb[_0xbd37('0x3d')][_0xbd37('0x5b')]||0xa),'interval':_0xbd37('0x5c')});}return respondWithRpcPromise(_0xbd37('0x5d'),_0xbd37('0x5e'),_0x322abb);});}return respondWithRpcPromise(_0xbd37('0x5d'),_0xbd37('0x5e'),_0x322abb);})[_0xbd37('0x12')](function(_0x2aceea){_0x17c1be(_0x2aceea);})[_0xbd37('0x1b')](function(_0x51ece9){_0x231336(_0x6bacaf[_0xbd37('0x17')](0x1f4,_0x51ece9[_0xbd37('0x19')]));});});};