Built motion from commit (unavailable).|2.5.21
[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 _0xbc25=['includes','mapKey\x20invalid,\x20please\x20use\x20one\x20of\x20these:\x20','account','CmList','List','DESC','FaxApplication','get','applications','Applications','orderBy','priority','asc','Contacts','from','ListId','create','contact','fax','find','FaxInteraction','Contact\x20not\x20found','autoclose','length','unmanaged','*,*,*,*','created','interaction','FaxMessage','AttachmentId','message','User','name','UserId','unshift','agent','waitForTheAssignedAgent','startRouting','Start','util','moment','bluebird','randomstring','../../mysqldb','rpc','../../config/environment','jayson/promise','redis','defaults','localhost','socket.io-emitter','register','request','then','info','request\x20sent','debug','FaxAccount,\x20%s,\x20%s,\x20%s','code','error','FaxAccount,\x20%s,\x20%s','result','catch','GetFaxAccount','FaxAccount','findAll','options','where','attributes','limit','include','map','model','stringify','NotifyFaxAccount','body','CmContact','describe','difference','keys','createdAt','updatedAt','CompanyId','isNil','Sequelize','ValidationError','from\x20is\x20mandatory','body\x20is\x20mandatory\x20and\x20not\x20empty','mapKey','mapKey\x20is\x20mandatory,\x20please\x20use\x20one\x20of\x20these:\x20'];(function(_0x3c4dad,_0x25ffd5){var _0x1a4f49=function(_0x6fe6c){while(--_0x6fe6c){_0x3c4dad['push'](_0x3c4dad['shift']());}};_0x1a4f49(++_0x25ffd5);}(_0xbc25,0x81));var _0x5bc2=function(_0x4db0e3,_0x45b7a8){_0x4db0e3=_0x4db0e3-0x0;var _0x4b607b=_0xbc25[_0x4db0e3];return _0x4b607b;};'use strict';var _=require('lodash');var util=require(_0x5bc2('0x0'));var moment=require(_0x5bc2('0x1'));var BPromise=require(_0x5bc2('0x2'));var rs=require(_0x5bc2('0x3'));var fs=require('fs');var Redis=require('ioredis');var db=require(_0x5bc2('0x4'))['db'];var utils=require('../../config/utils');var logger=require('../../config/logger')(_0x5bc2('0x5'));var config=require(_0x5bc2('0x6'));var jayson=require(_0x5bc2('0x7'));var client=jayson['client']['http']({'port':0x232c});config[_0x5bc2('0x8')]=_[_0x5bc2('0x9')](config['redis'],{'host':_0x5bc2('0xa'),'port':0x18eb});var socket=require(_0x5bc2('0xb'))(new Redis(config['redis']));require('./faxAccount.socket')[_0x5bc2('0xc')](socket);function respondWithRpcPromise(_0x37059a,_0x181f1f,_0x44e9ce){return new BPromise(function(_0xa74e80,_0x3a158d){return client[_0x5bc2('0xd')](_0x37059a,_0x44e9ce)[_0x5bc2('0xe')](function(_0x606b64){logger[_0x5bc2('0xf')]('FaxAccount,\x20%s,\x20%s',_0x181f1f,_0x5bc2('0x10'));logger[_0x5bc2('0x11')](_0x5bc2('0x12'),_0x181f1f,_0x5bc2('0x10'),JSON['stringify'](_0x606b64));if(_0x606b64['error']){if(_0x606b64['error'][_0x5bc2('0x13')]===0x1f4){logger[_0x5bc2('0x14')](_0x5bc2('0x15'),_0x181f1f,_0x606b64[_0x5bc2('0x14')]['message']);return _0x3a158d(_0x606b64[_0x5bc2('0x14')]['message']);}logger[_0x5bc2('0x14')](_0x5bc2('0x15'),_0x181f1f,_0x606b64[_0x5bc2('0x14')]['message']);return _0xa74e80(_0x606b64[_0x5bc2('0x14')]['message']);}else{logger[_0x5bc2('0xf')]('FaxAccount,\x20%s,\x20%s',_0x181f1f,_0x5bc2('0x10'));_0xa74e80(_0x606b64[_0x5bc2('0x16')]['message']);}})[_0x5bc2('0x17')](function(_0x3edd04){logger[_0x5bc2('0x14')]('FaxAccount,\x20%s,\x20%s',_0x181f1f,_0x3edd04);_0x3a158d(_0x3edd04);});});}exports[_0x5bc2('0x18')]=function(_0x5108c7){var _0x2971cd=this;return new Promise(function(_0x3388c4,_0x3e95eb){return db[_0x5bc2('0x19')][_0x5bc2('0x1a')]({'raw':_0x5108c7['options']?_0x5108c7['options']['raw']===undefined?!![]:![]:!![],'where':_0x5108c7[_0x5bc2('0x1b')]?_0x5108c7[_0x5bc2('0x1b')][_0x5bc2('0x1c')]||null:null,'attributes':_0x5108c7[_0x5bc2('0x1b')]?_0x5108c7[_0x5bc2('0x1b')][_0x5bc2('0x1d')]||null:null,'limit':_0x5108c7[_0x5bc2('0x1b')]?_0x5108c7[_0x5bc2('0x1b')][_0x5bc2('0x1e')]||null:null,'include':_0x5108c7[_0x5bc2('0x1b')]?_0x5108c7['options'][_0x5bc2('0x1f')]?_[_0x5bc2('0x20')](_0x5108c7[_0x5bc2('0x1b')][_0x5bc2('0x1f')],function(_0xcea7c){return{'model':db[_0xcea7c[_0x5bc2('0x21')]],'as':_0xcea7c['as'],'attributes':_0xcea7c[_0x5bc2('0x1d')],'include':_0xcea7c[_0x5bc2('0x1f')]?_[_0x5bc2('0x20')](_0xcea7c['include'],function(_0x871cbf){return{'model':db[_0x871cbf[_0x5bc2('0x21')]],'as':_0x871cbf['as'],'attributes':_0x871cbf['attributes'],'include':_0x871cbf[_0x5bc2('0x1f')]?_[_0x5bc2('0x20')](_0x871cbf['include'],function(_0x5df7fe){return{'model':db[_0x5df7fe[_0x5bc2('0x21')]],'as':_0x5df7fe['as'],'attributes':_0x5df7fe[_0x5bc2('0x1d')]};}):[]};}):[]};}):[]:[]})[_0x5bc2('0xe')](function(_0x4f1127){logger[_0x5bc2('0xf')]('GetFaxAccount',_0x5108c7);logger[_0x5bc2('0x11')](_0x5bc2('0x18'),_0x5108c7,JSON[_0x5bc2('0x22')](_0x4f1127));_0x3388c4(_0x4f1127);})[_0x5bc2('0x17')](function(_0x4ca22d){logger[_0x5bc2('0x14')](_0x5bc2('0x18'),_0x4ca22d['message'],_0x5108c7);_0x3e95eb(_0x2971cd['error'](0x1f4,_0x4ca22d['message']));});});};exports[_0x5bc2('0x23')]=function(_0x517317,_0x48707c,_0x1405bc){var _0x308895=this;return new Promise(function(_0x4f0eb3,_0x36bb95){var _0x417df2={'body':_0x517317[_0x5bc2('0x24')],'channel':'fax'};var _0x23d6db=[];var _0x39e0f6=[];var _0x49e13c={};return db[_0x5bc2('0x25')][_0x5bc2('0x26')]()['then'](function(_0x2583ba){if(!_0x2583ba){throw new db['Sequelize']['ValidationError']('no\x20available\x20attributes');}_0x23d6db=_[_0x5bc2('0x27')](_[_0x5bc2('0x28')](_0x2583ba),[_0x5bc2('0x29'),_0x5bc2('0x2a')]);_0x39e0f6=_[_0x5bc2('0x27')](_['keys'](_0x2583ba),['createdAt',_0x5bc2('0x2a'),_0x5bc2('0x2b'),'ListId']);if(_0x517317[_0x5bc2('0x24')]['id']){delete _0x517317[_0x5bc2('0x24')]['id'];}if(_[_0x5bc2('0x2c')](_0x517317[_0x5bc2('0x24')]['from'])){throw new db[(_0x5bc2('0x2d'))][(_0x5bc2('0x2e'))](_0x5bc2('0x2f'));}if(_[_0x5bc2('0x2c')](_0x517317[_0x5bc2('0x24')]['body'])||_0x517317[_0x5bc2('0x24')][_0x5bc2('0x24')]===''){throw new db[(_0x5bc2('0x2d'))][(_0x5bc2('0x2e'))](_0x5bc2('0x30'));}if(_[_0x5bc2('0x2c')](_0x517317[_0x5bc2('0x24')][_0x5bc2('0x31')])){throw new db[(_0x5bc2('0x2d'))][(_0x5bc2('0x2e'))](_0x5bc2('0x32')+_0x39e0f6);}if(!_[_0x5bc2('0x33')](_0x39e0f6,_0x517317['body'][_0x5bc2('0x31')])){throw new db[(_0x5bc2('0x2d'))][(_0x5bc2('0x2e'))](_0x5bc2('0x34')+_0x39e0f6);}_0x49e13c[_0x517317['body'][_0x5bc2('0x31')]]=_0x517317[_0x5bc2('0x24')]['from'];})['then'](function(){return db[_0x5bc2('0x19')]['find']({'where':{'id':_0x517317[_0x5bc2('0x35')]['id']},'include':[{'model':db[_0x5bc2('0x36')],'as':_0x5bc2('0x37'),'include':[{'model':db[_0x5bc2('0x25')],'as':'Contacts','where':_0x49e13c,'limit':0x1,'order':[[_0x5bc2('0x2a'),_0x5bc2('0x38')]]}]},{'model':db[_0x5bc2('0x39')],'as':'Applications'}]});})[_0x5bc2('0xe')](function(_0x18b39c){if(_0x18b39c&&_0x18b39c[_0x5bc2('0x37')]){var _0x1109a4=_0x18b39c[_0x5bc2('0x3a')]({'plain':!![]});_0x417df2['account']=_0x1109a4;_0x417df2[_0x5bc2('0x3b')]=_0x1109a4[_0x5bc2('0x3c')];_0x417df2['list']=_0x1109a4[_0x5bc2('0x37')];_0x417df2[_0x5bc2('0x3b')]=_[_0x5bc2('0x3d')](_0x417df2['applications'],[_0x5bc2('0x3e')],[_0x5bc2('0x3f')]);if(_0x417df2[_0x5bc2('0x35')]['Applications']){delete _0x417df2[_0x5bc2('0x35')]['Applications'];}if(_0x417df2[_0x5bc2('0x35')][_0x5bc2('0x37')]&&_0x417df2[_0x5bc2('0x35')][_0x5bc2('0x37')][_0x5bc2('0x40')]['length']){return _0x417df2[_0x5bc2('0x35')]['List'][_0x5bc2('0x40')][0x0];}var _0x10eea0=_[_0x5bc2('0x9')](_0x517317[_0x5bc2('0x24')],{'firstName':_0x517317[_0x5bc2('0x24')][_0x5bc2('0x41')],'ListId':_0x1109a4[_0x5bc2('0x42')]});_0x10eea0[_0x517317[_0x5bc2('0x24')]['mapKey']]=_0x517317[_0x5bc2('0x24')][_0x5bc2('0x41')];return db[_0x5bc2('0x25')][_0x5bc2('0x43')](_0x10eea0,{'fields':_0x23d6db,'raw':!![]});}})[_0x5bc2('0xe')](function(_0xe67358){_0x417df2[_0x5bc2('0x44')]=_0xe67358;if(_0xe67358){var _0x43961e={'ContactId':_0xe67358['id'],'FaxAccountId':_0x517317[_0x5bc2('0x35')]['id'],'fax':_0xe67358[_0x5bc2('0x45')]};return db['FaxInteraction'][_0x5bc2('0x46')]({'where':{'ContactId':_0xe67358['id'],'closed':![],'FaxAccountId':_0x517317[_0x5bc2('0x35')]['id']}})[_0x5bc2('0xe')](function(_0xa1ba4d){if(_0xa1ba4d){return[_0xa1ba4d,![]];}return db[_0x5bc2('0x47')][_0x5bc2('0x43')](_0x43961e)[_0x5bc2('0xe')](function(_0xc4b2db){return[_0xc4b2db,!![]];});});}else{throw new Error(_0x5bc2('0x48'));}})['spread'](function(_0x5e3290,_0x551795){var _0x2c7538=_0x5e3290[_0x5bc2('0x3a')]({'plain':!![]});if(_0x551795){if(_0x417df2[_0x5bc2('0x35')][_0x5bc2('0x49')]){_0x417df2[_0x5bc2('0x3b')]['push']({'id':0x0,'priority':_0x417df2['applications'][_0x5bc2('0x4a')]+0x1,'app':'close','appdata':_0x5bc2('0x4b'),'interval':_0x5bc2('0x4c')});}_0x2c7538[_0x5bc2('0x4d')]=!![];}else{_0x2c7538[_0x5bc2('0x4d')]=![];}_0x417df2[_0x5bc2('0x4e')]=_0x2c7538;return db[_0x5bc2('0x4f')][_0x5bc2('0x43')]({'body':_0x517317['body'][_0x5bc2('0x24')],'FaxAccountId':_0x517317[_0x5bc2('0x35')]['id'],'FaxInteractionId':_0x5e3290['id'],'direction':'in','ContactId':_0x5e3290['ContactId'],'AttachmentId':_0x517317[_0x5bc2('0x24')][_0x5bc2('0x50')]});})[_0x5bc2('0xe')](function(_0x11b09b){_0x417df2[_0x5bc2('0x51')]=_0x11b09b;if(_0x417df2[_0x5bc2('0x4e')]['UserId']){return db[_0x5bc2('0x52')]['find']({'attributes':['id',_0x5bc2('0x53')],'where':{'id':_0x417df2[_0x5bc2('0x4e')][_0x5bc2('0x54')]}})['then'](function(_0x556fb4){if(_0x556fb4){_0x417df2['applications'][_0x5bc2('0x55')]({'id':0x0,'priority':0x0,'app':_0x5bc2('0x56'),'appdata':_0x556fb4['name']+','+(_0x417df2[_0x5bc2('0x35')][_0x5bc2('0x57')]||0xa),'interval':'*,*,*,*'});}return respondWithRpcPromise('Start',_0x5bc2('0x58'),_0x417df2);});}return respondWithRpcPromise(_0x5bc2('0x59'),_0x5bc2('0x58'),_0x417df2);})[_0x5bc2('0xe')](function(_0x5c64ae){_0x4f0eb3(_0x5c64ae);})[_0x5bc2('0x17')](function(_0x11cc2c){_0x36bb95(_0x308895[_0x5bc2('0x14')](0x1f4,_0x11cc2c[_0x5bc2('0x51')]));});});};