170d0d38ff7c7710bcb0542135be3b3edf20fd3f
[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 _0xf8c5=['debug','catch','NotifyFaxAccount','body','fax','CmContact','describe','Sequelize','ValidationError','no\x20available\x20attributes','createdAt','updatedAt','keys','CompanyId','from','from\x20is\x20mandatory','isNil','body\x20is\x20mandatory\x20and\x20not\x20empty','mapKey','mapKey\x20is\x20mandatory,\x20please\x20use\x20one\x20of\x20these:\x20','mapKey\x20invalid,\x20please\x20use\x20one\x20of\x20these:\x20','find','CmList','List','Contacts','DESC','get','account','applications','list','orderBy','priority','Applications','length','ListId','create','FaxInteraction','Contact\x20not\x20found','spread','autoclose','push','close','unmanaged','*,*,*,*','interaction','FaxMessage','UserId','User','name','unshift','agent','waitForTheAssignedAgent','Start','startRouting','lodash','moment','randomstring','ioredis','../../mysqldb','../../config/utils','../../config/logger','../../config/environment','client','defaults','redis','socket.io-emitter','./faxAccount.socket','register','request','then','info','FaxAccount,\x20%s,\x20%s','FaxAccount,\x20%s,\x20%s,\x20%s','request\x20sent','error','code','message','result','GetFaxAccount','FaxAccount','findAll','options','attributes','limit','include','map','model'];(function(_0x5af010,_0x192266){var _0x46af95=function(_0x171cc4){while(--_0x171cc4){_0x5af010['push'](_0x5af010['shift']());}};_0x46af95(++_0x192266);}(_0xf8c5,0xe4));var _0x5f8c=function(_0x3ff085,_0x27c92e){_0x3ff085=_0x3ff085-0x0;var _0x2b68c3=_0xf8c5[_0x3ff085];return _0x2b68c3;};'use strict';var _=require(_0x5f8c('0x0'));var util=require('util');var moment=require(_0x5f8c('0x1'));var BPromise=require('bluebird');var rs=require(_0x5f8c('0x2'));var fs=require('fs');var Redis=require(_0x5f8c('0x3'));var db=require(_0x5f8c('0x4'))['db'];var utils=require(_0x5f8c('0x5'));var logger=require(_0x5f8c('0x6'))('rpc');var config=require(_0x5f8c('0x7'));var jayson=require('jayson/promise');var client=jayson[_0x5f8c('0x8')]['http']({'port':0x232c});config['redis']=_[_0x5f8c('0x9')](config[_0x5f8c('0xa')],{'host':'localhost','port':0x18eb});var socket=require(_0x5f8c('0xb'))(new Redis(config[_0x5f8c('0xa')]));require(_0x5f8c('0xc'))[_0x5f8c('0xd')](socket);function respondWithRpcPromise(_0x410d3b,_0x4ea883,_0x3c2b1d){return new BPromise(function(_0x133601,_0x4c5f26){return client[_0x5f8c('0xe')](_0x410d3b,_0x3c2b1d)[_0x5f8c('0xf')](function(_0x58e8f6){logger[_0x5f8c('0x10')](_0x5f8c('0x11'),_0x4ea883,'request\x20sent');logger['debug'](_0x5f8c('0x12'),_0x4ea883,_0x5f8c('0x13'),JSON['stringify'](_0x58e8f6));if(_0x58e8f6['error']){if(_0x58e8f6[_0x5f8c('0x14')][_0x5f8c('0x15')]===0x1f4){logger[_0x5f8c('0x14')](_0x5f8c('0x11'),_0x4ea883,_0x58e8f6[_0x5f8c('0x14')]['message']);return _0x4c5f26(_0x58e8f6[_0x5f8c('0x14')]['message']);}logger[_0x5f8c('0x14')]('FaxAccount,\x20%s,\x20%s',_0x4ea883,_0x58e8f6[_0x5f8c('0x14')]['message']);return _0x133601(_0x58e8f6[_0x5f8c('0x14')][_0x5f8c('0x16')]);}else{logger[_0x5f8c('0x10')](_0x5f8c('0x11'),_0x4ea883,_0x5f8c('0x13'));_0x133601(_0x58e8f6[_0x5f8c('0x17')][_0x5f8c('0x16')]);}})['catch'](function(_0x22f390){logger[_0x5f8c('0x14')](_0x5f8c('0x11'),_0x4ea883,_0x22f390);_0x4c5f26(_0x22f390);});});}exports[_0x5f8c('0x18')]=function(_0x5d2e91){var _0x4979d4=this;return new Promise(function(_0x4d754e,_0x58e44b){return db[_0x5f8c('0x19')][_0x5f8c('0x1a')]({'raw':_0x5d2e91[_0x5f8c('0x1b')]?_0x5d2e91[_0x5f8c('0x1b')]['raw']===undefined?!![]:![]:!![],'where':_0x5d2e91[_0x5f8c('0x1b')]?_0x5d2e91[_0x5f8c('0x1b')]['where']||null:null,'attributes':_0x5d2e91['options']?_0x5d2e91['options'][_0x5f8c('0x1c')]||null:null,'limit':_0x5d2e91[_0x5f8c('0x1b')]?_0x5d2e91[_0x5f8c('0x1b')][_0x5f8c('0x1d')]||null:null,'include':_0x5d2e91['options']?_0x5d2e91[_0x5f8c('0x1b')][_0x5f8c('0x1e')]?_[_0x5f8c('0x1f')](_0x5d2e91[_0x5f8c('0x1b')][_0x5f8c('0x1e')],function(_0x4d2583){return{'model':db[_0x4d2583['model']],'as':_0x4d2583['as'],'attributes':_0x4d2583[_0x5f8c('0x1c')],'include':_0x4d2583[_0x5f8c('0x1e')]?_[_0x5f8c('0x1f')](_0x4d2583[_0x5f8c('0x1e')],function(_0x1d150c){return{'model':db[_0x1d150c[_0x5f8c('0x20')]],'as':_0x1d150c['as'],'attributes':_0x1d150c[_0x5f8c('0x1c')],'include':_0x1d150c['include']?_['map'](_0x1d150c[_0x5f8c('0x1e')],function(_0x4aedc7){return{'model':db[_0x4aedc7['model']],'as':_0x4aedc7['as'],'attributes':_0x4aedc7[_0x5f8c('0x1c')]};}):[]};}):[]};}):[]:[]})[_0x5f8c('0xf')](function(_0xe3cbb5){logger[_0x5f8c('0x10')](_0x5f8c('0x18'),_0x5d2e91);logger[_0x5f8c('0x21')]('GetFaxAccount',_0x5d2e91,JSON['stringify'](_0xe3cbb5));_0x4d754e(_0xe3cbb5);})[_0x5f8c('0x22')](function(_0x1d2b2b){logger[_0x5f8c('0x14')](_0x5f8c('0x18'),_0x1d2b2b['message'],_0x5d2e91);_0x58e44b(_0x4979d4['error'](0x1f4,_0x1d2b2b[_0x5f8c('0x16')]));});});};exports[_0x5f8c('0x23')]=function(_0x3c0bbd,_0x32920e,_0x576187){var _0x347b83=this;return new Promise(function(_0x3f0884,_0x419062){var _0x498868={'body':_0x3c0bbd[_0x5f8c('0x24')],'channel':_0x5f8c('0x25')};var _0x3893f4=[];var _0x3ebd5b=[];var _0x8b4c4c={};return db[_0x5f8c('0x26')][_0x5f8c('0x27')]()[_0x5f8c('0xf')](function(_0x46a18e){if(!_0x46a18e){throw new db[(_0x5f8c('0x28'))][(_0x5f8c('0x29'))](_0x5f8c('0x2a'));}_0x3893f4=_['difference'](_['keys'](_0x46a18e),[_0x5f8c('0x2b'),_0x5f8c('0x2c')]);_0x3ebd5b=_['difference'](_[_0x5f8c('0x2d')](_0x46a18e),[_0x5f8c('0x2b'),_0x5f8c('0x2c'),_0x5f8c('0x2e'),'ListId']);if(_0x3c0bbd[_0x5f8c('0x24')]['id']){delete _0x3c0bbd[_0x5f8c('0x24')]['id'];}if(_['isNil'](_0x3c0bbd[_0x5f8c('0x24')][_0x5f8c('0x2f')])){throw new db[(_0x5f8c('0x28'))][(_0x5f8c('0x29'))](_0x5f8c('0x30'));}if(_[_0x5f8c('0x31')](_0x3c0bbd[_0x5f8c('0x24')][_0x5f8c('0x24')])||_0x3c0bbd[_0x5f8c('0x24')][_0x5f8c('0x24')]===''){throw new db[(_0x5f8c('0x28'))]['ValidationError'](_0x5f8c('0x32'));}if(_[_0x5f8c('0x31')](_0x3c0bbd[_0x5f8c('0x24')][_0x5f8c('0x33')])){throw new db[(_0x5f8c('0x28'))]['ValidationError'](_0x5f8c('0x34')+_0x3ebd5b);}if(!_['includes'](_0x3ebd5b,_0x3c0bbd[_0x5f8c('0x24')][_0x5f8c('0x33')])){throw new db[(_0x5f8c('0x28'))][(_0x5f8c('0x29'))](_0x5f8c('0x35')+_0x3ebd5b);}_0x8b4c4c[_0x3c0bbd['body'][_0x5f8c('0x33')]]=_0x3c0bbd[_0x5f8c('0x24')]['from'];})[_0x5f8c('0xf')](function(){return db['FaxAccount'][_0x5f8c('0x36')]({'where':{'id':_0x3c0bbd['account']['id']},'include':[{'model':db[_0x5f8c('0x37')],'as':_0x5f8c('0x38'),'include':[{'model':db[_0x5f8c('0x26')],'as':_0x5f8c('0x39'),'where':_0x8b4c4c,'limit':0x1,'order':[[_0x5f8c('0x2c'),_0x5f8c('0x3a')]]}]},{'model':db['FaxApplication'],'as':'Applications'}]});})[_0x5f8c('0xf')](function(_0x3bd17a){if(_0x3bd17a&&_0x3bd17a['List']){var _0x447413=_0x3bd17a[_0x5f8c('0x3b')]({'plain':!![]});_0x498868[_0x5f8c('0x3c')]=_0x447413;_0x498868[_0x5f8c('0x3d')]=_0x447413['Applications'];_0x498868[_0x5f8c('0x3e')]=_0x447413['List'];_0x498868[_0x5f8c('0x3d')]=_[_0x5f8c('0x3f')](_0x498868['applications'],[_0x5f8c('0x40')],['asc']);if(_0x498868[_0x5f8c('0x3c')][_0x5f8c('0x41')]){delete _0x498868[_0x5f8c('0x3c')][_0x5f8c('0x41')];}if(_0x498868['account'][_0x5f8c('0x38')]&&_0x498868[_0x5f8c('0x3c')][_0x5f8c('0x38')][_0x5f8c('0x39')][_0x5f8c('0x42')]){return _0x498868[_0x5f8c('0x3c')][_0x5f8c('0x38')][_0x5f8c('0x39')][0x0];}var _0x1eb754=_[_0x5f8c('0x9')](_0x3c0bbd[_0x5f8c('0x24')],{'firstName':_0x3c0bbd[_0x5f8c('0x24')][_0x5f8c('0x2f')],'ListId':_0x447413[_0x5f8c('0x43')]});_0x1eb754[_0x3c0bbd[_0x5f8c('0x24')][_0x5f8c('0x33')]]=_0x3c0bbd[_0x5f8c('0x24')][_0x5f8c('0x2f')];return db['CmContact'][_0x5f8c('0x44')](_0x1eb754,{'fields':_0x3893f4,'raw':!![]});}})[_0x5f8c('0xf')](function(_0x27dee6){_0x498868['contact']=_0x27dee6;if(_0x27dee6){var _0x9559a5={'ContactId':_0x27dee6['id'],'FaxAccountId':_0x3c0bbd[_0x5f8c('0x3c')]['id'],'fax':_0x27dee6[_0x5f8c('0x25')]};return db['FaxInteraction'][_0x5f8c('0x36')]({'where':{'ContactId':_0x27dee6['id'],'closed':![],'FaxAccountId':_0x3c0bbd[_0x5f8c('0x3c')]['id']}})[_0x5f8c('0xf')](function(_0x12fcde){if(_0x12fcde){return[_0x12fcde,![]];}return db[_0x5f8c('0x45')][_0x5f8c('0x44')](_0x9559a5)['then'](function(_0x2499e2){return[_0x2499e2,!![]];});});}else{throw new Error(_0x5f8c('0x46'));}})[_0x5f8c('0x47')](function(_0x1007fa,_0x20021f){var _0x3b4dbe=_0x1007fa[_0x5f8c('0x3b')]({'plain':!![]});if(_0x20021f){if(_0x498868[_0x5f8c('0x3c')][_0x5f8c('0x48')]){_0x498868[_0x5f8c('0x3d')][_0x5f8c('0x49')]({'id':0x0,'priority':_0x498868[_0x5f8c('0x3d')][_0x5f8c('0x42')]+0x1,'app':_0x5f8c('0x4a'),'appdata':_0x5f8c('0x4b'),'interval':_0x5f8c('0x4c')});}_0x3b4dbe['created']=!![];}else{_0x3b4dbe['created']=![];}_0x498868[_0x5f8c('0x4d')]=_0x3b4dbe;return db[_0x5f8c('0x4e')][_0x5f8c('0x44')]({'body':_0x3c0bbd[_0x5f8c('0x24')][_0x5f8c('0x24')],'FaxAccountId':_0x3c0bbd[_0x5f8c('0x3c')]['id'],'FaxInteractionId':_0x1007fa['id'],'direction':'in','ContactId':_0x1007fa['ContactId'],'AttachmentId':_0x3c0bbd[_0x5f8c('0x24')]['AttachmentId']});})[_0x5f8c('0xf')](function(_0x42db5f){_0x498868[_0x5f8c('0x16')]=_0x42db5f;if(_0x498868[_0x5f8c('0x4d')][_0x5f8c('0x4f')]){return db[_0x5f8c('0x50')][_0x5f8c('0x36')]({'attributes':['id',_0x5f8c('0x51')],'where':{'id':_0x498868[_0x5f8c('0x4d')]['UserId']}})['then'](function(_0x5ebffd){if(_0x5ebffd){_0x498868[_0x5f8c('0x3d')][_0x5f8c('0x52')]({'id':0x0,'priority':0x0,'app':_0x5f8c('0x53'),'appdata':_0x5ebffd[_0x5f8c('0x51')]+','+(_0x498868[_0x5f8c('0x3c')][_0x5f8c('0x54')]||0xa),'interval':_0x5f8c('0x4c')});}return respondWithRpcPromise(_0x5f8c('0x55'),'startRouting',_0x498868);});}return respondWithRpcPromise('Start',_0x5f8c('0x56'),_0x498868);})[_0x5f8c('0xf')](function(_0x2f675f){_0x3f0884(_0x2f675f);})['catch'](function(_0x134517){_0x419062(_0x347b83[_0x5f8c('0x14')](0x1f4,_0x134517['message']));});});};