624074b68431582a0afbfbdccfe175b5feabece8
[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 _0xed25=['updatedAt','CompanyId','ListId','from','from\x20is\x20mandatory','isNil','mapKey','includes','mapKey\x20invalid,\x20please\x20use\x20one\x20of\x20these:\x20','FaxAccount','find','CmList','List','Contacts','DESC','FaxApplication','Applications','account','applications','list','orderBy','priority','asc','length','defaults','create','contact','FaxInteraction','Contact\x20not\x20found','get','autoclose','push','close','*,*,*,*','created','interaction','UserId','User','name','unshift','waitForTheAssignedAgent','startRouting','Start','util','moment','bluebird','randomstring','../../mysqldb','../../config/utils','../../config/logger','rpc','../../config/environment','redis','localhost','socket.io-emitter','register','request','then','FaxAccount,\x20%s,\x20%s','request\x20sent','debug','error','code','message','info','result','catch','GetFaxAccount','findAll','options','raw','where','limit','include','map','model','attributes','stringify','NotifyFaxAccount','body','fax','CmContact','describe','Sequelize','ValidationError','no\x20available\x20attributes','difference','keys','createdAt'];(function(_0x310990,_0x245984){var _0x648534=function(_0xd320e5){while(--_0xd320e5){_0x310990['push'](_0x310990['shift']());}};_0x648534(++_0x245984);}(_0xed25,0x84));var _0x5ed2=function(_0x955747,_0xd1ab29){_0x955747=_0x955747-0x0;var _0x3ff6d5=_0xed25[_0x955747];return _0x3ff6d5;};'use strict';var _=require('lodash');var util=require(_0x5ed2('0x0'));var moment=require(_0x5ed2('0x1'));var BPromise=require(_0x5ed2('0x2'));var rs=require(_0x5ed2('0x3'));var fs=require('fs');var Redis=require('ioredis');var db=require(_0x5ed2('0x4'))['db'];var utils=require(_0x5ed2('0x5'));var logger=require(_0x5ed2('0x6'))(_0x5ed2('0x7'));var config=require(_0x5ed2('0x8'));var jayson=require('jayson/promise');var client=jayson['client']['http']({'port':0x232c});config[_0x5ed2('0x9')]=_['defaults'](config['redis'],{'host':_0x5ed2('0xa'),'port':0x18eb});var socket=require(_0x5ed2('0xb'))(new Redis(config[_0x5ed2('0x9')]));require('./faxAccount.socket')[_0x5ed2('0xc')](socket);function respondWithRpcPromise(_0xf6797e,_0xf2d522,_0x5eb11b){return new BPromise(function(_0x19f36d,_0x5ca7e8){return client[_0x5ed2('0xd')](_0xf6797e,_0x5eb11b)[_0x5ed2('0xe')](function(_0x2d512a){logger['info'](_0x5ed2('0xf'),_0xf2d522,_0x5ed2('0x10'));logger[_0x5ed2('0x11')]('FaxAccount,\x20%s,\x20%s,\x20%s',_0xf2d522,'request\x20sent',JSON['stringify'](_0x2d512a));if(_0x2d512a['error']){if(_0x2d512a[_0x5ed2('0x12')][_0x5ed2('0x13')]===0x1f4){logger[_0x5ed2('0x12')](_0x5ed2('0xf'),_0xf2d522,_0x2d512a['error']['message']);return _0x5ca7e8(_0x2d512a['error']['message']);}logger[_0x5ed2('0x12')](_0x5ed2('0xf'),_0xf2d522,_0x2d512a[_0x5ed2('0x12')][_0x5ed2('0x14')]);return _0x19f36d(_0x2d512a[_0x5ed2('0x12')]['message']);}else{logger[_0x5ed2('0x15')](_0x5ed2('0xf'),_0xf2d522,'request\x20sent');_0x19f36d(_0x2d512a[_0x5ed2('0x16')][_0x5ed2('0x14')]);}})[_0x5ed2('0x17')](function(_0x9f6b55){logger[_0x5ed2('0x12')](_0x5ed2('0xf'),_0xf2d522,_0x9f6b55);_0x5ca7e8(_0x9f6b55);});});}exports[_0x5ed2('0x18')]=function(_0xab2c9e){var _0x376573=this;return new Promise(function(_0x551b2b,_0x114ce3){return db['FaxAccount'][_0x5ed2('0x19')]({'raw':_0xab2c9e[_0x5ed2('0x1a')]?_0xab2c9e[_0x5ed2('0x1a')][_0x5ed2('0x1b')]===undefined?!![]:![]:!![],'where':_0xab2c9e[_0x5ed2('0x1a')]?_0xab2c9e[_0x5ed2('0x1a')][_0x5ed2('0x1c')]||null:null,'attributes':_0xab2c9e[_0x5ed2('0x1a')]?_0xab2c9e['options']['attributes']||null:null,'limit':_0xab2c9e[_0x5ed2('0x1a')]?_0xab2c9e[_0x5ed2('0x1a')][_0x5ed2('0x1d')]||null:null,'include':_0xab2c9e[_0x5ed2('0x1a')]?_0xab2c9e[_0x5ed2('0x1a')][_0x5ed2('0x1e')]?_[_0x5ed2('0x1f')](_0xab2c9e[_0x5ed2('0x1a')][_0x5ed2('0x1e')],function(_0x1868bf){return{'model':db[_0x1868bf[_0x5ed2('0x20')]],'as':_0x1868bf['as'],'attributes':_0x1868bf[_0x5ed2('0x21')],'include':_0x1868bf[_0x5ed2('0x1e')]?_[_0x5ed2('0x1f')](_0x1868bf['include'],function(_0x1ff1a9){return{'model':db[_0x1ff1a9['model']],'as':_0x1ff1a9['as'],'attributes':_0x1ff1a9['attributes'],'include':_0x1ff1a9[_0x5ed2('0x1e')]?_[_0x5ed2('0x1f')](_0x1ff1a9[_0x5ed2('0x1e')],function(_0x1189c2){return{'model':db[_0x1189c2[_0x5ed2('0x20')]],'as':_0x1189c2['as'],'attributes':_0x1189c2[_0x5ed2('0x21')]};}):[]};}):[]};}):[]:[]})[_0x5ed2('0xe')](function(_0x29ce25){logger[_0x5ed2('0x15')](_0x5ed2('0x18'),_0xab2c9e);logger['debug'](_0x5ed2('0x18'),_0xab2c9e,JSON[_0x5ed2('0x22')](_0x29ce25));_0x551b2b(_0x29ce25);})[_0x5ed2('0x17')](function(_0x874fee){logger['error'](_0x5ed2('0x18'),_0x874fee['message'],_0xab2c9e);_0x114ce3(_0x376573[_0x5ed2('0x12')](0x1f4,_0x874fee['message']));});});};exports[_0x5ed2('0x23')]=function(_0x40ef6c,_0x4a3b63,_0x2c7bd9){var _0x4060f4=this;return new Promise(function(_0x1c5344,_0x5985d3){var _0x1250b6={'body':_0x40ef6c[_0x5ed2('0x24')],'channel':_0x5ed2('0x25')};var _0x15ab7a=[];var _0x56c093=[];var _0x282f4d={};return db[_0x5ed2('0x26')][_0x5ed2('0x27')]()[_0x5ed2('0xe')](function(_0x7ad46d){if(!_0x7ad46d){throw new db[(_0x5ed2('0x28'))][(_0x5ed2('0x29'))](_0x5ed2('0x2a'));}_0x15ab7a=_[_0x5ed2('0x2b')](_[_0x5ed2('0x2c')](_0x7ad46d),[_0x5ed2('0x2d'),_0x5ed2('0x2e')]);_0x56c093=_[_0x5ed2('0x2b')](_[_0x5ed2('0x2c')](_0x7ad46d),[_0x5ed2('0x2d'),_0x5ed2('0x2e'),_0x5ed2('0x2f'),_0x5ed2('0x30')]);if(_0x40ef6c['body']['id']){delete _0x40ef6c[_0x5ed2('0x24')]['id'];}if(_['isNil'](_0x40ef6c[_0x5ed2('0x24')][_0x5ed2('0x31')])){throw new db['Sequelize']['ValidationError'](_0x5ed2('0x32'));}if(_['isNil'](_0x40ef6c[_0x5ed2('0x24')][_0x5ed2('0x24')])||_0x40ef6c[_0x5ed2('0x24')]['body']===''){throw new db[(_0x5ed2('0x28'))][(_0x5ed2('0x29'))]('body\x20is\x20mandatory\x20and\x20not\x20empty');}if(_[_0x5ed2('0x33')](_0x40ef6c['body'][_0x5ed2('0x34')])){throw new db[(_0x5ed2('0x28'))][(_0x5ed2('0x29'))]('mapKey\x20is\x20mandatory,\x20please\x20use\x20one\x20of\x20these:\x20'+_0x56c093);}if(!_[_0x5ed2('0x35')](_0x56c093,_0x40ef6c[_0x5ed2('0x24')][_0x5ed2('0x34')])){throw new db[(_0x5ed2('0x28'))]['ValidationError'](_0x5ed2('0x36')+_0x56c093);}_0x282f4d[_0x40ef6c[_0x5ed2('0x24')][_0x5ed2('0x34')]]=_0x40ef6c[_0x5ed2('0x24')][_0x5ed2('0x31')];})[_0x5ed2('0xe')](function(){return db[_0x5ed2('0x37')][_0x5ed2('0x38')]({'where':{'id':_0x40ef6c['account']['id']},'include':[{'model':db[_0x5ed2('0x39')],'as':_0x5ed2('0x3a'),'include':[{'model':db[_0x5ed2('0x26')],'as':_0x5ed2('0x3b'),'where':_0x282f4d,'limit':0x1,'order':[[_0x5ed2('0x2e'),_0x5ed2('0x3c')]]}]},{'model':db[_0x5ed2('0x3d')],'as':_0x5ed2('0x3e')}]});})[_0x5ed2('0xe')](function(_0x507776){if(_0x507776&&_0x507776[_0x5ed2('0x3a')]){var _0x247f3c=_0x507776['get']({'plain':!![]});_0x1250b6[_0x5ed2('0x3f')]=_0x247f3c;_0x1250b6[_0x5ed2('0x40')]=_0x247f3c['Applications'];_0x1250b6[_0x5ed2('0x41')]=_0x247f3c[_0x5ed2('0x3a')];_0x1250b6[_0x5ed2('0x40')]=_[_0x5ed2('0x42')](_0x1250b6[_0x5ed2('0x40')],[_0x5ed2('0x43')],[_0x5ed2('0x44')]);if(_0x1250b6[_0x5ed2('0x3f')][_0x5ed2('0x3e')]){delete _0x1250b6['account']['Applications'];}if(_0x1250b6[_0x5ed2('0x3f')]['List']&&_0x1250b6[_0x5ed2('0x3f')][_0x5ed2('0x3a')][_0x5ed2('0x3b')][_0x5ed2('0x45')]){return _0x1250b6['account']['List'][_0x5ed2('0x3b')][0x0];}var _0x1c0a19=_[_0x5ed2('0x46')](_0x40ef6c['body'],{'firstName':_0x40ef6c['body'][_0x5ed2('0x31')],'ListId':_0x247f3c[_0x5ed2('0x30')]});_0x1c0a19[_0x40ef6c[_0x5ed2('0x24')][_0x5ed2('0x34')]]=_0x40ef6c[_0x5ed2('0x24')]['from'];return db['CmContact'][_0x5ed2('0x47')](_0x1c0a19,{'fields':_0x15ab7a,'raw':!![]});}})[_0x5ed2('0xe')](function(_0x28278e){_0x1250b6[_0x5ed2('0x48')]=_0x28278e;if(_0x28278e){var _0x582779={'ContactId':_0x28278e['id'],'FaxAccountId':_0x40ef6c[_0x5ed2('0x3f')]['id'],'fax':_0x28278e[_0x5ed2('0x25')]};return db[_0x5ed2('0x49')][_0x5ed2('0x38')]({'where':{'ContactId':_0x28278e['id'],'closed':![],'FaxAccountId':_0x40ef6c[_0x5ed2('0x3f')]['id']}})['then'](function(_0x3a6f49){if(_0x3a6f49){return[_0x3a6f49,![]];}return db['FaxInteraction'][_0x5ed2('0x47')](_0x582779)[_0x5ed2('0xe')](function(_0x4a19d5){return[_0x4a19d5,!![]];});});}else{throw new Error(_0x5ed2('0x4a'));}})['spread'](function(_0x39ca4c,_0x24d761){var _0x8cad8d=_0x39ca4c[_0x5ed2('0x4b')]({'plain':!![]});if(_0x24d761){if(_0x1250b6[_0x5ed2('0x3f')][_0x5ed2('0x4c')]){_0x1250b6['applications'][_0x5ed2('0x4d')]({'id':0x0,'priority':_0x1250b6['applications']['length']+0x1,'app':_0x5ed2('0x4e'),'appdata':'unmanaged','interval':_0x5ed2('0x4f')});}_0x8cad8d[_0x5ed2('0x50')]=!![];}else{_0x8cad8d[_0x5ed2('0x50')]=![];}_0x1250b6[_0x5ed2('0x51')]=_0x8cad8d;return db['FaxMessage'][_0x5ed2('0x47')]({'body':_0x40ef6c[_0x5ed2('0x24')][_0x5ed2('0x24')],'FaxAccountId':_0x40ef6c[_0x5ed2('0x3f')]['id'],'FaxInteractionId':_0x39ca4c['id'],'direction':'in','ContactId':_0x39ca4c['ContactId'],'AttachmentId':_0x40ef6c[_0x5ed2('0x24')]['AttachmentId']});})[_0x5ed2('0xe')](function(_0x4702ab){_0x1250b6[_0x5ed2('0x14')]=_0x4702ab;if(_0x1250b6['interaction'][_0x5ed2('0x52')]){return db[_0x5ed2('0x53')][_0x5ed2('0x38')]({'attributes':['id',_0x5ed2('0x54')],'where':{'id':_0x1250b6[_0x5ed2('0x51')][_0x5ed2('0x52')]}})[_0x5ed2('0xe')](function(_0x24820b){if(_0x24820b){_0x1250b6[_0x5ed2('0x40')][_0x5ed2('0x55')]({'id':0x0,'priority':0x0,'app':'agent','appdata':_0x24820b[_0x5ed2('0x54')]+','+(_0x1250b6[_0x5ed2('0x3f')][_0x5ed2('0x56')]||0xa),'interval':_0x5ed2('0x4f')});}return respondWithRpcPromise('Start',_0x5ed2('0x57'),_0x1250b6);});}return respondWithRpcPromise(_0x5ed2('0x58'),'startRouting',_0x1250b6);})['then'](function(_0x2a74fe){_0x1c5344(_0x2a74fe);})[_0x5ed2('0x17')](function(_0x49d930){_0x5985d3(_0x4060f4[_0x5ed2('0x12')](0x1f4,_0x49d930[_0x5ed2('0x14')]));});});};