ca7e5000d80dfe5885e2bb13dd7ef0a1f243d2a1
[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 _0xd573=['./faxAccount.socket','register','request','then','info','FaxAccount,\x20%s,\x20%s','debug','FaxAccount,\x20%s,\x20%s,\x20%s','request\x20sent','stringify','error','message','catch','GetFaxAccount','FaxAccount','options','raw','where','attributes','limit','map','include','model','NotifyFaxAccount','body','fax','describe','Sequelize','no\x20available\x20attributes','difference','keys','createdAt','updatedAt','CompanyId','ListId','isNil','from','ValidationError','from\x20is\x20mandatory','body\x20is\x20mandatory\x20and\x20not\x20empty','mapKey\x20is\x20mandatory,\x20please\x20use\x20one\x20of\x20these:\x20','mapKey','mapKey\x20invalid,\x20please\x20use\x20one\x20of\x20these:\x20','find','account','CmList','List','CmContact','Contacts','DESC','FaxApplication','Applications','get','applications','list','priority','asc','create','contact','FaxInteraction','Contact\x20not\x20found','autoclose','push','length','close','unmanaged','*,*,*,*','created','interaction','ContactId','AttachmentId','UserId','User','unshift','agent','name','startRouting','lodash','util','moment','randomstring','ioredis','../../mysqldb','rpc','../../config/environment','client','http','redis','defaults','socket.io-emitter'];(function(_0xa9af05,_0x359e4f){var _0x79d6f2=function(_0x13806c){while(--_0x13806c){_0xa9af05['push'](_0xa9af05['shift']());}};_0x79d6f2(++_0x359e4f);}(_0xd573,0x101));var _0x3d57=function(_0x46fb6a,_0x1d0e55){_0x46fb6a=_0x46fb6a-0x0;var _0x57a5ef=_0xd573[_0x46fb6a];return _0x57a5ef;};'use strict';var _=require(_0x3d57('0x0'));var util=require(_0x3d57('0x1'));var moment=require(_0x3d57('0x2'));var BPromise=require('bluebird');var rs=require(_0x3d57('0x3'));var fs=require('fs');var Redis=require(_0x3d57('0x4'));var db=require(_0x3d57('0x5'))['db'];var utils=require('../../config/utils');var logger=require('../../config/logger')(_0x3d57('0x6'));var config=require(_0x3d57('0x7'));var jayson=require('jayson/promise');var client=jayson[_0x3d57('0x8')][_0x3d57('0x9')]({'port':0x232c});config[_0x3d57('0xa')]=_[_0x3d57('0xb')](config[_0x3d57('0xa')],{'host':'localhost','port':0x18eb});var socket=require(_0x3d57('0xc'))(new Redis(config[_0x3d57('0xa')]));require(_0x3d57('0xd'))[_0x3d57('0xe')](socket);function respondWithRpcPromise(_0x1da995,_0x424937,_0xdd2076){return new BPromise(function(_0x5a606d,_0x36f591){return client[_0x3d57('0xf')](_0x1da995,_0xdd2076)[_0x3d57('0x10')](function(_0x3c51c6){logger[_0x3d57('0x11')](_0x3d57('0x12'),_0x424937,'request\x20sent');logger[_0x3d57('0x13')](_0x3d57('0x14'),_0x424937,_0x3d57('0x15'),JSON[_0x3d57('0x16')](_0x3c51c6));if(_0x3c51c6[_0x3d57('0x17')]){if(_0x3c51c6['error']['code']===0x1f4){logger[_0x3d57('0x17')](_0x3d57('0x12'),_0x424937,_0x3c51c6[_0x3d57('0x17')]['message']);return _0x36f591(_0x3c51c6[_0x3d57('0x17')][_0x3d57('0x18')]);}logger[_0x3d57('0x17')](_0x3d57('0x12'),_0x424937,_0x3c51c6[_0x3d57('0x17')][_0x3d57('0x18')]);return _0x5a606d(_0x3c51c6[_0x3d57('0x17')][_0x3d57('0x18')]);}else{logger[_0x3d57('0x11')](_0x3d57('0x12'),_0x424937,'request\x20sent');_0x5a606d(_0x3c51c6['result'][_0x3d57('0x18')]);}})[_0x3d57('0x19')](function(_0x152008){logger[_0x3d57('0x17')](_0x3d57('0x12'),_0x424937,_0x152008);_0x36f591(_0x152008);});});}exports[_0x3d57('0x1a')]=function(_0x404dae){var _0x27d60f=this;return new Promise(function(_0x48d6a7,_0x559cd4){return db[_0x3d57('0x1b')]['findAll']({'raw':_0x404dae[_0x3d57('0x1c')]?_0x404dae[_0x3d57('0x1c')][_0x3d57('0x1d')]===undefined?!![]:![]:!![],'where':_0x404dae['options']?_0x404dae['options'][_0x3d57('0x1e')]||null:null,'attributes':_0x404dae['options']?_0x404dae[_0x3d57('0x1c')][_0x3d57('0x1f')]||null:null,'limit':_0x404dae['options']?_0x404dae['options'][_0x3d57('0x20')]||null:null,'include':_0x404dae['options']?_0x404dae[_0x3d57('0x1c')]['include']?_[_0x3d57('0x21')](_0x404dae['options'][_0x3d57('0x22')],function(_0x308676){return{'model':db[_0x308676['model']],'as':_0x308676['as'],'attributes':_0x308676[_0x3d57('0x1f')],'include':_0x308676['include']?_['map'](_0x308676[_0x3d57('0x22')],function(_0x4aee1e){return{'model':db[_0x4aee1e['model']],'as':_0x4aee1e['as'],'attributes':_0x4aee1e[_0x3d57('0x1f')],'include':_0x4aee1e[_0x3d57('0x22')]?_[_0x3d57('0x21')](_0x4aee1e[_0x3d57('0x22')],function(_0x1c13cc){return{'model':db[_0x1c13cc[_0x3d57('0x23')]],'as':_0x1c13cc['as'],'attributes':_0x1c13cc['attributes']};}):[]};}):[]};}):[]:[]})['then'](function(_0x45cf47){logger[_0x3d57('0x11')](_0x3d57('0x1a'),_0x404dae);logger['debug'](_0x3d57('0x1a'),_0x404dae,JSON[_0x3d57('0x16')](_0x45cf47));_0x48d6a7(_0x45cf47);})[_0x3d57('0x19')](function(_0x35f3be){logger['error']('GetFaxAccount',_0x35f3be[_0x3d57('0x18')],_0x404dae);_0x559cd4(_0x27d60f[_0x3d57('0x17')](0x1f4,_0x35f3be[_0x3d57('0x18')]));});});};exports[_0x3d57('0x24')]=function(_0x3cf27f,_0x1ebbc8,_0x24142a){var _0xe98f8d=this;return new Promise(function(_0x5bba96,_0x57961a){var _0x1060f7={'body':_0x3cf27f[_0x3d57('0x25')],'channel':_0x3d57('0x26')};var _0x364328=[];var _0x1017d=[];var _0x3dd39d={};return db['CmContact'][_0x3d57('0x27')]()['then'](function(_0x2c152){if(!_0x2c152){throw new db[(_0x3d57('0x28'))]['ValidationError'](_0x3d57('0x29'));}_0x364328=_[_0x3d57('0x2a')](_[_0x3d57('0x2b')](_0x2c152),[_0x3d57('0x2c'),_0x3d57('0x2d')]);_0x1017d=_[_0x3d57('0x2a')](_[_0x3d57('0x2b')](_0x2c152),[_0x3d57('0x2c'),'updatedAt',_0x3d57('0x2e'),_0x3d57('0x2f')]);if(_0x3cf27f['body']['id']){delete _0x3cf27f[_0x3d57('0x25')]['id'];}if(_[_0x3d57('0x30')](_0x3cf27f[_0x3d57('0x25')][_0x3d57('0x31')])){throw new db['Sequelize'][(_0x3d57('0x32'))](_0x3d57('0x33'));}if(_[_0x3d57('0x30')](_0x3cf27f[_0x3d57('0x25')][_0x3d57('0x25')])||_0x3cf27f[_0x3d57('0x25')][_0x3d57('0x25')]===''){throw new db[(_0x3d57('0x28'))]['ValidationError'](_0x3d57('0x34'));}if(_[_0x3d57('0x30')](_0x3cf27f[_0x3d57('0x25')]['mapKey'])){throw new db[(_0x3d57('0x28'))][(_0x3d57('0x32'))](_0x3d57('0x35')+_0x1017d);}if(!_['includes'](_0x1017d,_0x3cf27f[_0x3d57('0x25')][_0x3d57('0x36')])){throw new db[(_0x3d57('0x28'))][(_0x3d57('0x32'))](_0x3d57('0x37')+_0x1017d);}_0x3dd39d[_0x3cf27f[_0x3d57('0x25')][_0x3d57('0x36')]]=_0x3cf27f[_0x3d57('0x25')][_0x3d57('0x31')];})[_0x3d57('0x10')](function(){return db[_0x3d57('0x1b')][_0x3d57('0x38')]({'where':{'id':_0x3cf27f[_0x3d57('0x39')]['id']},'include':[{'model':db[_0x3d57('0x3a')],'as':_0x3d57('0x3b'),'include':[{'model':db[_0x3d57('0x3c')],'as':_0x3d57('0x3d'),'where':_0x3dd39d,'limit':0x1,'order':[[_0x3d57('0x2d'),_0x3d57('0x3e')]]}]},{'model':db[_0x3d57('0x3f')],'as':_0x3d57('0x40')}]});})[_0x3d57('0x10')](function(_0x171f67){if(_0x171f67&&_0x171f67[_0x3d57('0x3b')]){var _0x272c11=_0x171f67[_0x3d57('0x41')]({'plain':!![]});_0x1060f7[_0x3d57('0x39')]=_0x272c11;_0x1060f7[_0x3d57('0x42')]=_0x272c11[_0x3d57('0x40')];_0x1060f7[_0x3d57('0x43')]=_0x272c11[_0x3d57('0x3b')];_0x1060f7[_0x3d57('0x42')]=_['orderBy'](_0x1060f7[_0x3d57('0x42')],[_0x3d57('0x44')],[_0x3d57('0x45')]);if(_0x1060f7[_0x3d57('0x39')][_0x3d57('0x40')]){delete _0x1060f7[_0x3d57('0x39')][_0x3d57('0x40')];}if(_0x1060f7[_0x3d57('0x39')][_0x3d57('0x3b')]&&_0x1060f7['account'][_0x3d57('0x3b')][_0x3d57('0x3d')]['length']){return _0x1060f7[_0x3d57('0x39')][_0x3d57('0x3b')][_0x3d57('0x3d')][0x0];}var _0x48246b=_[_0x3d57('0xb')](_0x3cf27f[_0x3d57('0x25')],{'firstName':_0x3cf27f[_0x3d57('0x25')][_0x3d57('0x31')],'ListId':_0x272c11['ListId']});_0x48246b[_0x3cf27f[_0x3d57('0x25')][_0x3d57('0x36')]]=_0x3cf27f[_0x3d57('0x25')][_0x3d57('0x31')];return db[_0x3d57('0x3c')][_0x3d57('0x46')](_0x48246b,{'fields':_0x364328,'raw':!![]});}})[_0x3d57('0x10')](function(_0x250ddc){_0x1060f7[_0x3d57('0x47')]=_0x250ddc;if(_0x250ddc){var _0x34f891={'ContactId':_0x250ddc['id'],'FaxAccountId':_0x3cf27f[_0x3d57('0x39')]['id'],'fax':_0x250ddc[_0x3d57('0x26')]};return db[_0x3d57('0x48')][_0x3d57('0x38')]({'where':{'ContactId':_0x250ddc['id'],'closed':![],'FaxAccountId':_0x3cf27f[_0x3d57('0x39')]['id']}})[_0x3d57('0x10')](function(_0x990e1c){if(_0x990e1c){return[_0x990e1c,![]];}return db[_0x3d57('0x48')][_0x3d57('0x46')](_0x34f891)[_0x3d57('0x10')](function(_0x59d514){return[_0x59d514,!![]];});});}else{throw new Error(_0x3d57('0x49'));}})['spread'](function(_0x3f6589,_0xde3a90){var _0x15769b=_0x3f6589[_0x3d57('0x41')]({'plain':!![]});if(_0xde3a90){if(_0x1060f7[_0x3d57('0x39')][_0x3d57('0x4a')]){_0x1060f7[_0x3d57('0x42')][_0x3d57('0x4b')]({'id':0x0,'priority':_0x1060f7[_0x3d57('0x42')][_0x3d57('0x4c')]+0x1,'app':_0x3d57('0x4d'),'appdata':_0x3d57('0x4e'),'interval':_0x3d57('0x4f')});}_0x15769b['created']=!![];}else{_0x15769b[_0x3d57('0x50')]=![];}_0x1060f7[_0x3d57('0x51')]=_0x15769b;return db['FaxMessage'][_0x3d57('0x46')]({'body':_0x3cf27f[_0x3d57('0x25')][_0x3d57('0x25')],'FaxAccountId':_0x3cf27f[_0x3d57('0x39')]['id'],'FaxInteractionId':_0x3f6589['id'],'direction':'in','ContactId':_0x3f6589[_0x3d57('0x52')],'AttachmentId':_0x3cf27f[_0x3d57('0x25')][_0x3d57('0x53')]});})[_0x3d57('0x10')](function(_0x3911cb){_0x1060f7[_0x3d57('0x18')]=_0x3911cb;if(_0x1060f7[_0x3d57('0x51')][_0x3d57('0x54')]){return db[_0x3d57('0x55')][_0x3d57('0x38')]({'attributes':['id','name'],'where':{'id':_0x1060f7['interaction'][_0x3d57('0x54')]}})['then'](function(_0x3c37b3){if(_0x3c37b3){_0x1060f7[_0x3d57('0x42')][_0x3d57('0x56')]({'id':0x0,'priority':0x0,'app':_0x3d57('0x57'),'appdata':_0x3c37b3[_0x3d57('0x58')]+','+(_0x1060f7[_0x3d57('0x39')]['waitForTheAssignedAgent']||0xa),'interval':_0x3d57('0x4f')});}return respondWithRpcPromise('Start',_0x3d57('0x59'),_0x1060f7);});}return respondWithRpcPromise('Start',_0x3d57('0x59'),_0x1060f7);})['then'](function(_0x3429b9){_0x5bba96(_0x3429b9);})[_0x3d57('0x19')](function(_0x5f4a6f){_0x57961a(_0xe98f8d[_0x3d57('0x17')](0x1f4,_0x5f4a6f[_0x3d57('0x18')]));});});};