07efdebada379971e9208877c6e4c73afa758f7f
[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 _0x3121=['result','catch','FaxAccount','options','attributes','include','map','model','GetFaxAccount','stringify','NotifyFaxAccount','body','fax','CmContact','describe','Sequelize','ValidationError','no\x20available\x20attributes','difference','keys','updatedAt','createdAt','from','from\x20is\x20mandatory','isNil','mapKey\x20is\x20mandatory,\x20please\x20use\x20one\x20of\x20these:\x20','mapKey','mapKey\x20invalid,\x20please\x20use\x20one\x20of\x20these:\x20','find','account','CmList','List','Contacts','DESC','FaxApplication','Applications','get','applications','list','orderBy','priority','asc','length','defaults','ListId','create','contact','FaxInteraction','spread','autoclose','push','unmanaged','*,*,*,*','FaxMessage','AttachmentId','interaction','UserId','User','unshift','agent','name','waitForTheAssignedAgent','Start','lodash','util','moment','bluebird','ioredis','../../mysqldb','../../config/utils','../../config/logger','jayson/promise','client','redis','socket.io-emitter','register','request','then','info','request\x20sent','debug','FaxAccount,\x20%s,\x20%s,\x20%s','error','code','message','FaxAccount,\x20%s,\x20%s'];(function(_0x29e3b6,_0x40b0b4){var _0x55d4b0=function(_0x55c58e){while(--_0x55c58e){_0x29e3b6['push'](_0x29e3b6['shift']());}};_0x55d4b0(++_0x40b0b4);}(_0x3121,0x1ed));var _0x1312=function(_0x894521,_0x4dab5b){_0x894521=_0x894521-0x0;var _0x19e236=_0x3121[_0x894521];return _0x19e236;};'use strict';var _=require(_0x1312('0x0'));var util=require(_0x1312('0x1'));var moment=require(_0x1312('0x2'));var BPromise=require(_0x1312('0x3'));var rs=require('randomstring');var fs=require('fs');var Redis=require(_0x1312('0x4'));var db=require(_0x1312('0x5'))['db'];var utils=require(_0x1312('0x6'));var logger=require(_0x1312('0x7'))('rpc');var config=require('../../config/environment');var jayson=require(_0x1312('0x8'));var client=jayson[_0x1312('0x9')]['http']({'port':0x232c});config[_0x1312('0xa')]=_['defaults'](config[_0x1312('0xa')],{'host':'localhost','port':0x18eb});var socket=require(_0x1312('0xb'))(new Redis(config['redis']));require('./faxAccount.socket')[_0x1312('0xc')](socket);function respondWithRpcPromise(_0xe668a8,_0x399692,_0x522d91){return new BPromise(function(_0x24f259,_0x366cf6){return client[_0x1312('0xd')](_0xe668a8,_0x522d91)[_0x1312('0xe')](function(_0x82c88a){logger[_0x1312('0xf')]('FaxAccount,\x20%s,\x20%s',_0x399692,_0x1312('0x10'));logger[_0x1312('0x11')](_0x1312('0x12'),_0x399692,_0x1312('0x10'),JSON['stringify'](_0x82c88a));if(_0x82c88a[_0x1312('0x13')]){if(_0x82c88a[_0x1312('0x13')][_0x1312('0x14')]===0x1f4){logger['error']('FaxAccount,\x20%s,\x20%s',_0x399692,_0x82c88a[_0x1312('0x13')][_0x1312('0x15')]);return _0x366cf6(_0x82c88a[_0x1312('0x13')][_0x1312('0x15')]);}logger[_0x1312('0x13')](_0x1312('0x16'),_0x399692,_0x82c88a[_0x1312('0x13')]['message']);return _0x24f259(_0x82c88a['error'][_0x1312('0x15')]);}else{logger[_0x1312('0xf')](_0x1312('0x16'),_0x399692,'request\x20sent');_0x24f259(_0x82c88a[_0x1312('0x17')]['message']);}})[_0x1312('0x18')](function(_0x43fab6){logger[_0x1312('0x13')](_0x1312('0x16'),_0x399692,_0x43fab6);_0x366cf6(_0x43fab6);});});}exports['GetFaxAccount']=function(_0xd7f982){var _0x1c857b=this;return new Promise(function(_0x1c83c8,_0x12a712){return db[_0x1312('0x19')]['findAll']({'raw':_0xd7f982[_0x1312('0x1a')]?_0xd7f982[_0x1312('0x1a')]['raw']===undefined?!![]:![]:!![],'where':_0xd7f982[_0x1312('0x1a')]?_0xd7f982['options']['where']||null:null,'attributes':_0xd7f982[_0x1312('0x1a')]?_0xd7f982[_0x1312('0x1a')][_0x1312('0x1b')]||null:null,'limit':_0xd7f982[_0x1312('0x1a')]?_0xd7f982[_0x1312('0x1a')]['limit']||null:null,'include':_0xd7f982[_0x1312('0x1a')]?_0xd7f982[_0x1312('0x1a')][_0x1312('0x1c')]?_[_0x1312('0x1d')](_0xd7f982[_0x1312('0x1a')][_0x1312('0x1c')],function(_0x46af54){return{'model':db[_0x46af54[_0x1312('0x1e')]],'as':_0x46af54['as'],'attributes':_0x46af54[_0x1312('0x1b')],'include':_0x46af54['include']?_['map'](_0x46af54['include'],function(_0x16f1fa){return{'model':db[_0x16f1fa['model']],'as':_0x16f1fa['as'],'attributes':_0x16f1fa['attributes'],'include':_0x16f1fa[_0x1312('0x1c')]?_[_0x1312('0x1d')](_0x16f1fa[_0x1312('0x1c')],function(_0x143608){return{'model':db[_0x143608[_0x1312('0x1e')]],'as':_0x143608['as'],'attributes':_0x143608[_0x1312('0x1b')]};}):[]};}):[]};}):[]:[]})[_0x1312('0xe')](function(_0x125bfa){logger[_0x1312('0xf')](_0x1312('0x1f'),_0xd7f982);logger[_0x1312('0x11')](_0x1312('0x1f'),_0xd7f982,JSON[_0x1312('0x20')](_0x125bfa));_0x1c83c8(_0x125bfa);})[_0x1312('0x18')](function(_0x3aed4b){logger['error']('GetFaxAccount',_0x3aed4b[_0x1312('0x15')],_0xd7f982);_0x12a712(_0x1c857b['error'](0x1f4,_0x3aed4b[_0x1312('0x15')]));});});};exports[_0x1312('0x21')]=function(_0x3230f9,_0x5dc0cf,_0x4a5b52){var _0x4a0d3c=this;return new Promise(function(_0x254f25,_0x464485){var _0x2dc54a={'body':_0x3230f9[_0x1312('0x22')],'channel':_0x1312('0x23')};var _0x225ffa=[];var _0x4d3da0=[];var _0x3a4a92={};return db[_0x1312('0x24')][_0x1312('0x25')]()['then'](function(_0x290b44){if(!_0x290b44){throw new db[(_0x1312('0x26'))][(_0x1312('0x27'))](_0x1312('0x28'));}_0x225ffa=_[_0x1312('0x29')](_[_0x1312('0x2a')](_0x290b44),['createdAt',_0x1312('0x2b')]);_0x4d3da0=_[_0x1312('0x29')](_[_0x1312('0x2a')](_0x290b44),[_0x1312('0x2c'),_0x1312('0x2b'),'CompanyId','ListId']);if(_0x3230f9['body']['id']){delete _0x3230f9[_0x1312('0x22')]['id'];}if(_['isNil'](_0x3230f9['body'][_0x1312('0x2d')])){throw new db['Sequelize'][(_0x1312('0x27'))](_0x1312('0x2e'));}if(_[_0x1312('0x2f')](_0x3230f9['body']['body'])||_0x3230f9[_0x1312('0x22')]['body']===''){throw new db['Sequelize'][(_0x1312('0x27'))]('body\x20is\x20mandatory\x20and\x20not\x20empty');}if(_[_0x1312('0x2f')](_0x3230f9['body']['mapKey'])){throw new db[(_0x1312('0x26'))][(_0x1312('0x27'))](_0x1312('0x30')+_0x4d3da0);}if(!_['includes'](_0x4d3da0,_0x3230f9[_0x1312('0x22')][_0x1312('0x31')])){throw new db[(_0x1312('0x26'))]['ValidationError'](_0x1312('0x32')+_0x4d3da0);}_0x3a4a92[_0x3230f9[_0x1312('0x22')]['mapKey']]=_0x3230f9['body'][_0x1312('0x2d')];})[_0x1312('0xe')](function(){return db[_0x1312('0x19')][_0x1312('0x33')]({'where':{'id':_0x3230f9[_0x1312('0x34')]['id']},'include':[{'model':db[_0x1312('0x35')],'as':_0x1312('0x36'),'include':[{'model':db[_0x1312('0x24')],'as':_0x1312('0x37'),'where':_0x3a4a92,'limit':0x1,'order':[['updatedAt',_0x1312('0x38')]]}]},{'model':db[_0x1312('0x39')],'as':_0x1312('0x3a')}]});})[_0x1312('0xe')](function(_0x582bd2){if(_0x582bd2&&_0x582bd2[_0x1312('0x36')]){var _0x34295f=_0x582bd2[_0x1312('0x3b')]({'plain':!![]});_0x2dc54a[_0x1312('0x34')]=_0x34295f;_0x2dc54a[_0x1312('0x3c')]=_0x34295f[_0x1312('0x3a')];_0x2dc54a[_0x1312('0x3d')]=_0x34295f['List'];_0x2dc54a[_0x1312('0x3c')]=_[_0x1312('0x3e')](_0x2dc54a[_0x1312('0x3c')],[_0x1312('0x3f')],[_0x1312('0x40')]);if(_0x2dc54a['account'][_0x1312('0x3a')]){delete _0x2dc54a['account'][_0x1312('0x3a')];}if(_0x2dc54a[_0x1312('0x34')][_0x1312('0x36')]&&_0x2dc54a['account'][_0x1312('0x36')][_0x1312('0x37')][_0x1312('0x41')]){return _0x2dc54a[_0x1312('0x34')][_0x1312('0x36')][_0x1312('0x37')][0x0];}var _0x5b6040=_[_0x1312('0x42')](_0x3230f9[_0x1312('0x22')],{'firstName':_0x3230f9[_0x1312('0x22')][_0x1312('0x2d')],'ListId':_0x34295f[_0x1312('0x43')]});_0x5b6040[_0x3230f9[_0x1312('0x22')][_0x1312('0x31')]]=_0x3230f9[_0x1312('0x22')]['from'];return db['CmContact'][_0x1312('0x44')](_0x5b6040,{'fields':_0x225ffa,'raw':!![]});}})['then'](function(_0x516b50){_0x2dc54a[_0x1312('0x45')]=_0x516b50;if(_0x516b50){var _0x57822a={'ContactId':_0x516b50['id'],'FaxAccountId':_0x3230f9[_0x1312('0x34')]['id'],'fax':_0x516b50[_0x1312('0x23')]};return db['FaxInteraction'][_0x1312('0x33')]({'where':{'ContactId':_0x516b50['id'],'closed':![],'FaxAccountId':_0x3230f9['account']['id']}})['then'](function(_0x130ab1){if(_0x130ab1){return[_0x130ab1,![]];}return db[_0x1312('0x46')][_0x1312('0x44')](_0x57822a)[_0x1312('0xe')](function(_0x5b9455){return[_0x5b9455,!![]];});});}else{throw new Error('Contact\x20not\x20found');}})[_0x1312('0x47')](function(_0x5766dc,_0x55fa3f){var _0x1591ca=_0x5766dc[_0x1312('0x3b')]({'plain':!![]});if(_0x55fa3f){if(_0x2dc54a[_0x1312('0x34')][_0x1312('0x48')]){_0x2dc54a[_0x1312('0x3c')][_0x1312('0x49')]({'id':0x0,'priority':_0x2dc54a[_0x1312('0x3c')][_0x1312('0x41')]+0x1,'app':'close','appdata':_0x1312('0x4a'),'interval':_0x1312('0x4b')});}_0x1591ca['created']=!![];}else{_0x1591ca['created']=![];}_0x2dc54a['interaction']=_0x1591ca;return db[_0x1312('0x4c')][_0x1312('0x44')]({'body':_0x3230f9[_0x1312('0x22')][_0x1312('0x22')],'FaxAccountId':_0x3230f9['account']['id'],'FaxInteractionId':_0x5766dc['id'],'direction':'in','ContactId':_0x5766dc['ContactId'],'AttachmentId':_0x3230f9[_0x1312('0x22')][_0x1312('0x4d')]});})[_0x1312('0xe')](function(_0x2ecb47){_0x2dc54a[_0x1312('0x15')]=_0x2ecb47;if(_0x2dc54a[_0x1312('0x4e')][_0x1312('0x4f')]){return db[_0x1312('0x50')][_0x1312('0x33')]({'attributes':['id','name'],'where':{'id':_0x2dc54a[_0x1312('0x4e')][_0x1312('0x4f')]}})[_0x1312('0xe')](function(_0x27ab6c){if(_0x27ab6c){_0x2dc54a[_0x1312('0x3c')][_0x1312('0x51')]({'id':0x0,'priority':0x0,'app':_0x1312('0x52'),'appdata':_0x27ab6c[_0x1312('0x53')]+','+(_0x2dc54a[_0x1312('0x34')][_0x1312('0x54')]||0xa),'interval':'*,*,*,*'});}return respondWithRpcPromise(_0x1312('0x55'),'startRouting',_0x2dc54a);});}return respondWithRpcPromise('Start','startRouting',_0x2dc54a);})[_0x1312('0xe')](function(_0x4a9e9e){_0x254f25(_0x4a9e9e);})[_0x1312('0x18')](function(_0x580da1){_0x464485(_0x4a0d3c['error'](0x1f4,_0x580da1[_0x1312('0x15')]));});});};