545f633020911def33d8c340805596f5bb18fe5e
[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 _0x04ec=['model','include','NotifyFaxAccount','fax','CmContact','Sequelize','no\x20available\x20attributes','difference','createdAt','updatedAt','keys','CompanyId','ListId','body','isNil','from','ValidationError','from\x20is\x20mandatory','body\x20is\x20mandatory\x20and\x20not\x20empty','mapKey','includes','FaxAccount','account','CmList','Contacts','DESC','List','get','applications','list','orderBy','Applications','length','create','FaxInteraction','find','spread','autoclose','push','close','unmanaged','*,*,*,*','created','interaction','FaxMessage','AttachmentId','UserId','User','name','agent','waitForTheAssignedAgent','Start','startRouting','lodash','util','moment','bluebird','randomstring','../../config/logger','../../config/environment','jayson/promise','http','redis','defaults','localhost','socket.io-emitter','./faxAccount.socket','register','request','then','info','request\x20sent','debug','FaxAccount,\x20%s,\x20%s,\x20%s','stringify','error','FaxAccount,\x20%s,\x20%s','message','result','catch','GetFaxAccount','findAll','options','raw','attributes','map'];(function(_0x2aecb2,_0x343312){var _0x3ebb80=function(_0x19fab3){while(--_0x19fab3){_0x2aecb2['push'](_0x2aecb2['shift']());}};_0x3ebb80(++_0x343312);}(_0x04ec,0x18d));var _0xc04e=function(_0x58418a,_0x3d9f06){_0x58418a=_0x58418a-0x0;var _0x2716bf=_0x04ec[_0x58418a];return _0x2716bf;};'use strict';var _=require(_0xc04e('0x0'));var util=require(_0xc04e('0x1'));var moment=require(_0xc04e('0x2'));var BPromise=require(_0xc04e('0x3'));var rs=require(_0xc04e('0x4'));var fs=require('fs');var Redis=require('ioredis');var db=require('../../mysqldb')['db'];var utils=require('../../config/utils');var logger=require(_0xc04e('0x5'))('rpc');var config=require(_0xc04e('0x6'));var jayson=require(_0xc04e('0x7'));var client=jayson['client'][_0xc04e('0x8')]({'port':0x232c});config[_0xc04e('0x9')]=_[_0xc04e('0xa')](config[_0xc04e('0x9')],{'host':_0xc04e('0xb'),'port':0x18eb});var socket=require(_0xc04e('0xc'))(new Redis(config[_0xc04e('0x9')]));require(_0xc04e('0xd'))[_0xc04e('0xe')](socket);function respondWithRpcPromise(_0x85e62c,_0x1682a3,_0x4c02b3){return new BPromise(function(_0x128cb1,_0x11bc6d){return client[_0xc04e('0xf')](_0x85e62c,_0x4c02b3)[_0xc04e('0x10')](function(_0x133741){logger[_0xc04e('0x11')]('FaxAccount,\x20%s,\x20%s',_0x1682a3,_0xc04e('0x12'));logger[_0xc04e('0x13')](_0xc04e('0x14'),_0x1682a3,_0xc04e('0x12'),JSON[_0xc04e('0x15')](_0x133741));if(_0x133741[_0xc04e('0x16')]){if(_0x133741[_0xc04e('0x16')]['code']===0x1f4){logger[_0xc04e('0x16')](_0xc04e('0x17'),_0x1682a3,_0x133741[_0xc04e('0x16')]['message']);return _0x11bc6d(_0x133741[_0xc04e('0x16')][_0xc04e('0x18')]);}logger[_0xc04e('0x16')]('FaxAccount,\x20%s,\x20%s',_0x1682a3,_0x133741[_0xc04e('0x16')][_0xc04e('0x18')]);return _0x128cb1(_0x133741[_0xc04e('0x16')][_0xc04e('0x18')]);}else{logger['info'](_0xc04e('0x17'),_0x1682a3,'request\x20sent');_0x128cb1(_0x133741[_0xc04e('0x19')][_0xc04e('0x18')]);}})[_0xc04e('0x1a')](function(_0x396035){logger[_0xc04e('0x16')](_0xc04e('0x17'),_0x1682a3,_0x396035);_0x11bc6d(_0x396035);});});}exports[_0xc04e('0x1b')]=function(_0x21bd4f){var _0xf819b=this;return new Promise(function(_0x535b4d,_0x17301b){return db['FaxAccount'][_0xc04e('0x1c')]({'raw':_0x21bd4f['options']?_0x21bd4f[_0xc04e('0x1d')][_0xc04e('0x1e')]===undefined?!![]:![]:!![],'where':_0x21bd4f[_0xc04e('0x1d')]?_0x21bd4f['options']['where']||null:null,'attributes':_0x21bd4f['options']?_0x21bd4f['options'][_0xc04e('0x1f')]||null:null,'limit':_0x21bd4f[_0xc04e('0x1d')]?_0x21bd4f[_0xc04e('0x1d')]['limit']||null:null,'include':_0x21bd4f[_0xc04e('0x1d')]?_0x21bd4f['options']['include']?_[_0xc04e('0x20')](_0x21bd4f['options']['include'],function(_0xa7c883){return{'model':db[_0xa7c883[_0xc04e('0x21')]],'as':_0xa7c883['as'],'attributes':_0xa7c883[_0xc04e('0x1f')],'include':_0xa7c883[_0xc04e('0x22')]?_['map'](_0xa7c883['include'],function(_0x4b45ab){return{'model':db[_0x4b45ab['model']],'as':_0x4b45ab['as'],'attributes':_0x4b45ab[_0xc04e('0x1f')],'include':_0x4b45ab['include']?_[_0xc04e('0x20')](_0x4b45ab[_0xc04e('0x22')],function(_0x1de3c4){return{'model':db[_0x1de3c4['model']],'as':_0x1de3c4['as'],'attributes':_0x1de3c4['attributes']};}):[]};}):[]};}):[]:[]})[_0xc04e('0x10')](function(_0x47e059){logger[_0xc04e('0x11')](_0xc04e('0x1b'),_0x21bd4f);logger[_0xc04e('0x13')](_0xc04e('0x1b'),_0x21bd4f,JSON['stringify'](_0x47e059));_0x535b4d(_0x47e059);})['catch'](function(_0x232490){logger[_0xc04e('0x16')](_0xc04e('0x1b'),_0x232490[_0xc04e('0x18')],_0x21bd4f);_0x17301b(_0xf819b['error'](0x1f4,_0x232490[_0xc04e('0x18')]));});});};exports[_0xc04e('0x23')]=function(_0x4fe3c4,_0x2b3aa2,_0x14df10){var _0x48cdbb=this;return new Promise(function(_0x218c51,_0x5a22f9){var _0x1532df={'body':_0x4fe3c4['body'],'channel':_0xc04e('0x24')};var _0x3ee4bf=[];var _0xf67533=[];var _0x4e8f54={};return db[_0xc04e('0x25')]['describe']()[_0xc04e('0x10')](function(_0x3693b4){if(!_0x3693b4){throw new db[(_0xc04e('0x26'))]['ValidationError'](_0xc04e('0x27'));}_0x3ee4bf=_[_0xc04e('0x28')](_['keys'](_0x3693b4),[_0xc04e('0x29'),_0xc04e('0x2a')]);_0xf67533=_[_0xc04e('0x28')](_[_0xc04e('0x2b')](_0x3693b4),[_0xc04e('0x29'),_0xc04e('0x2a'),_0xc04e('0x2c'),_0xc04e('0x2d')]);if(_0x4fe3c4[_0xc04e('0x2e')]['id']){delete _0x4fe3c4['body']['id'];}if(_[_0xc04e('0x2f')](_0x4fe3c4['body'][_0xc04e('0x30')])){throw new db[(_0xc04e('0x26'))][(_0xc04e('0x31'))](_0xc04e('0x32'));}if(_['isNil'](_0x4fe3c4[_0xc04e('0x2e')]['body'])||_0x4fe3c4[_0xc04e('0x2e')][_0xc04e('0x2e')]===''){throw new db[(_0xc04e('0x26'))]['ValidationError'](_0xc04e('0x33'));}if(_[_0xc04e('0x2f')](_0x4fe3c4[_0xc04e('0x2e')][_0xc04e('0x34')])){throw new db[(_0xc04e('0x26'))][(_0xc04e('0x31'))]('mapKey\x20is\x20mandatory,\x20please\x20use\x20one\x20of\x20these:\x20'+_0xf67533);}if(!_[_0xc04e('0x35')](_0xf67533,_0x4fe3c4[_0xc04e('0x2e')][_0xc04e('0x34')])){throw new db[(_0xc04e('0x26'))]['ValidationError']('mapKey\x20invalid,\x20please\x20use\x20one\x20of\x20these:\x20'+_0xf67533);}_0x4e8f54[_0x4fe3c4[_0xc04e('0x2e')][_0xc04e('0x34')]]=_0x4fe3c4[_0xc04e('0x2e')][_0xc04e('0x30')];})[_0xc04e('0x10')](function(){return db[_0xc04e('0x36')]['find']({'where':{'id':_0x4fe3c4[_0xc04e('0x37')]['id']},'include':[{'model':db[_0xc04e('0x38')],'as':'List','include':[{'model':db[_0xc04e('0x25')],'as':_0xc04e('0x39'),'where':_0x4e8f54,'limit':0x1,'order':[[_0xc04e('0x2a'),_0xc04e('0x3a')]]}]},{'model':db['FaxApplication'],'as':'Applications'}]});})[_0xc04e('0x10')](function(_0x5b7c9a){if(_0x5b7c9a&&_0x5b7c9a[_0xc04e('0x3b')]){var _0x50abe2=_0x5b7c9a[_0xc04e('0x3c')]({'plain':!![]});_0x1532df[_0xc04e('0x37')]=_0x50abe2;_0x1532df[_0xc04e('0x3d')]=_0x50abe2['Applications'];_0x1532df[_0xc04e('0x3e')]=_0x50abe2[_0xc04e('0x3b')];_0x1532df[_0xc04e('0x3d')]=_[_0xc04e('0x3f')](_0x1532df[_0xc04e('0x3d')],['priority'],['asc']);if(_0x1532df[_0xc04e('0x37')]['Applications']){delete _0x1532df[_0xc04e('0x37')][_0xc04e('0x40')];}if(_0x1532df[_0xc04e('0x37')]['List']&&_0x1532df[_0xc04e('0x37')]['List'][_0xc04e('0x39')][_0xc04e('0x41')]){return _0x1532df[_0xc04e('0x37')][_0xc04e('0x3b')][_0xc04e('0x39')][0x0];}var _0x3b227c=_[_0xc04e('0xa')](_0x4fe3c4['body'],{'firstName':_0x4fe3c4[_0xc04e('0x2e')]['from'],'ListId':_0x50abe2[_0xc04e('0x2d')]});_0x3b227c[_0x4fe3c4[_0xc04e('0x2e')][_0xc04e('0x34')]]=_0x4fe3c4[_0xc04e('0x2e')][_0xc04e('0x30')];return db['CmContact'][_0xc04e('0x42')](_0x3b227c,{'fields':_0x3ee4bf,'raw':!![]});}})['then'](function(_0x29a120){_0x1532df['contact']=_0x29a120;if(_0x29a120){var _0x3266de={'ContactId':_0x29a120['id'],'FaxAccountId':_0x4fe3c4[_0xc04e('0x37')]['id'],'fax':_0x29a120[_0xc04e('0x24')]};return db[_0xc04e('0x43')][_0xc04e('0x44')]({'where':{'ContactId':_0x29a120['id'],'closed':![],'FaxAccountId':_0x4fe3c4['account']['id']}})[_0xc04e('0x10')](function(_0x1fc72e){if(_0x1fc72e){return[_0x1fc72e,![]];}return db[_0xc04e('0x43')][_0xc04e('0x42')](_0x3266de)['then'](function(_0x3975de){return[_0x3975de,!![]];});});}else{throw new Error('Contact\x20not\x20found');}})[_0xc04e('0x45')](function(_0x20d823,_0x4bd462){var _0x3a791b=_0x20d823[_0xc04e('0x3c')]({'plain':!![]});if(_0x4bd462){if(_0x1532df[_0xc04e('0x37')][_0xc04e('0x46')]){_0x1532df[_0xc04e('0x3d')][_0xc04e('0x47')]({'id':0x0,'priority':_0x1532df[_0xc04e('0x3d')][_0xc04e('0x41')]+0x1,'app':_0xc04e('0x48'),'appdata':_0xc04e('0x49'),'interval':_0xc04e('0x4a')});}_0x3a791b[_0xc04e('0x4b')]=!![];}else{_0x3a791b[_0xc04e('0x4b')]=![];}_0x1532df[_0xc04e('0x4c')]=_0x3a791b;return db[_0xc04e('0x4d')][_0xc04e('0x42')]({'body':_0x4fe3c4[_0xc04e('0x2e')]['body'],'FaxAccountId':_0x4fe3c4[_0xc04e('0x37')]['id'],'FaxInteractionId':_0x20d823['id'],'direction':'in','ContactId':_0x20d823['ContactId'],'AttachmentId':_0x4fe3c4[_0xc04e('0x2e')][_0xc04e('0x4e')]});})[_0xc04e('0x10')](function(_0x4c4303){_0x1532df[_0xc04e('0x18')]=_0x4c4303;if(_0x1532df[_0xc04e('0x4c')][_0xc04e('0x4f')]){return db[_0xc04e('0x50')]['find']({'attributes':['id',_0xc04e('0x51')],'where':{'id':_0x1532df[_0xc04e('0x4c')]['UserId']}})[_0xc04e('0x10')](function(_0x4f6a06){if(_0x4f6a06){_0x1532df[_0xc04e('0x3d')]['unshift']({'id':0x0,'priority':0x0,'app':_0xc04e('0x52'),'appdata':_0x4f6a06[_0xc04e('0x51')]+','+(_0x1532df['account'][_0xc04e('0x53')]||0xa),'interval':'*,*,*,*'});}return respondWithRpcPromise(_0xc04e('0x54'),_0xc04e('0x55'),_0x1532df);});}return respondWithRpcPromise('Start',_0xc04e('0x55'),_0x1532df);})[_0xc04e('0x10')](function(_0x247c6f){_0x218c51(_0x247c6f);})[_0xc04e('0x1a')](function(_0x307203){_0x5a22f9(_0x48cdbb[_0xc04e('0x16')](0x1f4,_0x307203[_0xc04e('0x18')]));});});};