637b08a897c44c4a5c4e828af33956accf2cdaeb
[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 _0xf177=['*,*,*,*','created','interaction','FaxMessage','ContactId','AttachmentId','UserId','User','name','agent','waitForTheAssignedAgent','Start','startRouting','util','moment','../../config/utils','../../config/logger','rpc','../../config/environment','jayson/promise','client','http','defaults','localhost','redis','./faxAccount.socket','register','request','FaxAccount,\x20%s,\x20%s','request\x20sent','debug','FaxAccount,\x20%s,\x20%s,\x20%s','stringify','error','code','message','info','result','catch','GetFaxAccount','findAll','options','raw','where','limit','include','map','model','attributes','then','NotifyFaxAccount','body','CmContact','describe','ValidationError','no\x20available\x20attributes','difference','createdAt','updatedAt','keys','CompanyId','ListId','from','Sequelize','from\x20is\x20mandatory','isNil','body\x20is\x20mandatory\x20and\x20not\x20empty','mapKey\x20is\x20mandatory,\x20please\x20use\x20one\x20of\x20these:\x20','includes','mapKey','mapKey\x20invalid,\x20please\x20use\x20one\x20of\x20these:\x20','FaxAccount','find','account','CmList','List','DESC','FaxApplication','Applications','get','applications','list','orderBy','priority','Contacts','length','fax','FaxInteraction','Contact\x20not\x20found','autoclose','push','close'];(function(_0x59ee6f,_0x450239){var _0x4c0979=function(_0x565e92){while(--_0x565e92){_0x59ee6f['push'](_0x59ee6f['shift']());}};_0x4c0979(++_0x450239);}(_0xf177,0x17d));var _0x7f17=function(_0x321bb2,_0x202794){_0x321bb2=_0x321bb2-0x0;var _0x9c12ed=_0xf177[_0x321bb2];return _0x9c12ed;};'use strict';var _=require('lodash');var util=require(_0x7f17('0x0'));var moment=require(_0x7f17('0x1'));var BPromise=require('bluebird');var rs=require('randomstring');var fs=require('fs');var Redis=require('ioredis');var db=require('../../mysqldb')['db'];var utils=require(_0x7f17('0x2'));var logger=require(_0x7f17('0x3'))(_0x7f17('0x4'));var config=require(_0x7f17('0x5'));var jayson=require(_0x7f17('0x6'));var client=jayson[_0x7f17('0x7')][_0x7f17('0x8')]({'port':0x232c});config['redis']=_[_0x7f17('0x9')](config['redis'],{'host':_0x7f17('0xa'),'port':0x18eb});var socket=require('socket.io-emitter')(new Redis(config[_0x7f17('0xb')]));require(_0x7f17('0xc'))[_0x7f17('0xd')](socket);function respondWithRpcPromise(_0x38c2c8,_0x2658da,_0x308ec2){return new BPromise(function(_0x4aa25f,_0x38dfa3){return client[_0x7f17('0xe')](_0x38c2c8,_0x308ec2)['then'](function(_0x3002f7){logger['info'](_0x7f17('0xf'),_0x2658da,_0x7f17('0x10'));logger[_0x7f17('0x11')](_0x7f17('0x12'),_0x2658da,_0x7f17('0x10'),JSON[_0x7f17('0x13')](_0x3002f7));if(_0x3002f7[_0x7f17('0x14')]){if(_0x3002f7[_0x7f17('0x14')][_0x7f17('0x15')]===0x1f4){logger[_0x7f17('0x14')](_0x7f17('0xf'),_0x2658da,_0x3002f7[_0x7f17('0x14')]['message']);return _0x38dfa3(_0x3002f7['error'][_0x7f17('0x16')]);}logger[_0x7f17('0x14')]('FaxAccount,\x20%s,\x20%s',_0x2658da,_0x3002f7[_0x7f17('0x14')][_0x7f17('0x16')]);return _0x4aa25f(_0x3002f7['error'][_0x7f17('0x16')]);}else{logger[_0x7f17('0x17')](_0x7f17('0xf'),_0x2658da,'request\x20sent');_0x4aa25f(_0x3002f7[_0x7f17('0x18')][_0x7f17('0x16')]);}})[_0x7f17('0x19')](function(_0xecce21){logger[_0x7f17('0x14')](_0x7f17('0xf'),_0x2658da,_0xecce21);_0x38dfa3(_0xecce21);});});}exports[_0x7f17('0x1a')]=function(_0x2ed8c6){var _0x128005=this;return new Promise(function(_0xdc93bc,_0x37c1e0){return db['FaxAccount'][_0x7f17('0x1b')]({'raw':_0x2ed8c6[_0x7f17('0x1c')]?_0x2ed8c6[_0x7f17('0x1c')][_0x7f17('0x1d')]===undefined?!![]:![]:!![],'where':_0x2ed8c6[_0x7f17('0x1c')]?_0x2ed8c6[_0x7f17('0x1c')][_0x7f17('0x1e')]||null:null,'attributes':_0x2ed8c6['options']?_0x2ed8c6['options']['attributes']||null:null,'limit':_0x2ed8c6[_0x7f17('0x1c')]?_0x2ed8c6[_0x7f17('0x1c')][_0x7f17('0x1f')]||null:null,'include':_0x2ed8c6['options']?_0x2ed8c6[_0x7f17('0x1c')][_0x7f17('0x20')]?_[_0x7f17('0x21')](_0x2ed8c6['options']['include'],function(_0x5c1b1e){return{'model':db[_0x5c1b1e['model']],'as':_0x5c1b1e['as'],'attributes':_0x5c1b1e['attributes'],'include':_0x5c1b1e[_0x7f17('0x20')]?_[_0x7f17('0x21')](_0x5c1b1e[_0x7f17('0x20')],function(_0x3f3a99){return{'model':db[_0x3f3a99[_0x7f17('0x22')]],'as':_0x3f3a99['as'],'attributes':_0x3f3a99['attributes'],'include':_0x3f3a99[_0x7f17('0x20')]?_[_0x7f17('0x21')](_0x3f3a99[_0x7f17('0x20')],function(_0x1c9bed){return{'model':db[_0x1c9bed[_0x7f17('0x22')]],'as':_0x1c9bed['as'],'attributes':_0x1c9bed[_0x7f17('0x23')]};}):[]};}):[]};}):[]:[]})[_0x7f17('0x24')](function(_0x2af25e){logger[_0x7f17('0x17')]('GetFaxAccount',_0x2ed8c6);logger[_0x7f17('0x11')]('GetFaxAccount',_0x2ed8c6,JSON['stringify'](_0x2af25e));_0xdc93bc(_0x2af25e);})[_0x7f17('0x19')](function(_0x3f298b){logger[_0x7f17('0x14')](_0x7f17('0x1a'),_0x3f298b[_0x7f17('0x16')],_0x2ed8c6);_0x37c1e0(_0x128005[_0x7f17('0x14')](0x1f4,_0x3f298b[_0x7f17('0x16')]));});});};exports[_0x7f17('0x25')]=function(_0x50dda1,_0x655b9,_0x42f109){var _0x5d64c4=this;return new Promise(function(_0x1f07b4,_0x5322c8){var _0x37bfdb={'body':_0x50dda1[_0x7f17('0x26')],'channel':'fax'};var _0x26818c=[];var _0x2ad82f=[];var _0x3781a1={};return db[_0x7f17('0x27')][_0x7f17('0x28')]()[_0x7f17('0x24')](function(_0x533908){if(!_0x533908){throw new db['Sequelize'][(_0x7f17('0x29'))](_0x7f17('0x2a'));}_0x26818c=_[_0x7f17('0x2b')](_['keys'](_0x533908),[_0x7f17('0x2c'),_0x7f17('0x2d')]);_0x2ad82f=_[_0x7f17('0x2b')](_[_0x7f17('0x2e')](_0x533908),['createdAt',_0x7f17('0x2d'),_0x7f17('0x2f'),_0x7f17('0x30')]);if(_0x50dda1[_0x7f17('0x26')]['id']){delete _0x50dda1[_0x7f17('0x26')]['id'];}if(_['isNil'](_0x50dda1[_0x7f17('0x26')][_0x7f17('0x31')])){throw new db[(_0x7f17('0x32'))][(_0x7f17('0x29'))](_0x7f17('0x33'));}if(_[_0x7f17('0x34')](_0x50dda1[_0x7f17('0x26')][_0x7f17('0x26')])||_0x50dda1[_0x7f17('0x26')][_0x7f17('0x26')]===''){throw new db[(_0x7f17('0x32'))][(_0x7f17('0x29'))](_0x7f17('0x35'));}if(_[_0x7f17('0x34')](_0x50dda1['body']['mapKey'])){throw new db[(_0x7f17('0x32'))][(_0x7f17('0x29'))](_0x7f17('0x36')+_0x2ad82f);}if(!_[_0x7f17('0x37')](_0x2ad82f,_0x50dda1['body'][_0x7f17('0x38')])){throw new db['Sequelize'][(_0x7f17('0x29'))](_0x7f17('0x39')+_0x2ad82f);}_0x3781a1[_0x50dda1[_0x7f17('0x26')][_0x7f17('0x38')]]=_0x50dda1[_0x7f17('0x26')][_0x7f17('0x31')];})[_0x7f17('0x24')](function(){return db[_0x7f17('0x3a')][_0x7f17('0x3b')]({'where':{'id':_0x50dda1[_0x7f17('0x3c')]['id']},'include':[{'model':db[_0x7f17('0x3d')],'as':_0x7f17('0x3e'),'include':[{'model':db['CmContact'],'as':'Contacts','where':_0x3781a1,'limit':0x1,'order':[[_0x7f17('0x2d'),_0x7f17('0x3f')]]}]},{'model':db[_0x7f17('0x40')],'as':_0x7f17('0x41')}]});})['then'](function(_0x23f052){if(_0x23f052&&_0x23f052['List']){var _0x421370=_0x23f052[_0x7f17('0x42')]({'plain':!![]});_0x37bfdb['account']=_0x421370;_0x37bfdb[_0x7f17('0x43')]=_0x421370[_0x7f17('0x41')];_0x37bfdb[_0x7f17('0x44')]=_0x421370['List'];_0x37bfdb[_0x7f17('0x43')]=_[_0x7f17('0x45')](_0x37bfdb[_0x7f17('0x43')],[_0x7f17('0x46')],['asc']);if(_0x37bfdb[_0x7f17('0x3c')]['Applications']){delete _0x37bfdb[_0x7f17('0x3c')][_0x7f17('0x41')];}if(_0x37bfdb['account'][_0x7f17('0x3e')]&&_0x37bfdb[_0x7f17('0x3c')][_0x7f17('0x3e')][_0x7f17('0x47')][_0x7f17('0x48')]){return _0x37bfdb[_0x7f17('0x3c')][_0x7f17('0x3e')]['Contacts'][0x0];}var _0x1655a7=_['defaults'](_0x50dda1[_0x7f17('0x26')],{'firstName':_0x50dda1[_0x7f17('0x26')]['from'],'ListId':_0x421370[_0x7f17('0x30')]});_0x1655a7[_0x50dda1[_0x7f17('0x26')][_0x7f17('0x38')]]=_0x50dda1[_0x7f17('0x26')][_0x7f17('0x31')];return db[_0x7f17('0x27')]['create'](_0x1655a7,{'fields':_0x26818c,'raw':!![]});}})['then'](function(_0x2a9390){_0x37bfdb['contact']=_0x2a9390;if(_0x2a9390){var _0x25548e={'ContactId':_0x2a9390['id'],'FaxAccountId':_0x50dda1['account']['id'],'fax':_0x2a9390[_0x7f17('0x49')]};return db[_0x7f17('0x4a')][_0x7f17('0x3b')]({'where':{'ContactId':_0x2a9390['id'],'closed':![],'FaxAccountId':_0x50dda1[_0x7f17('0x3c')]['id']}})[_0x7f17('0x24')](function(_0x4d63a6){if(_0x4d63a6){return[_0x4d63a6,![]];}return db['FaxInteraction']['create'](_0x25548e)['then'](function(_0x133fa1){return[_0x133fa1,!![]];});});}else{throw new Error(_0x7f17('0x4b'));}})['spread'](function(_0x367c50,_0x32997f){var _0x55b523=_0x367c50[_0x7f17('0x42')]({'plain':!![]});if(_0x32997f){if(_0x37bfdb[_0x7f17('0x3c')][_0x7f17('0x4c')]){_0x37bfdb[_0x7f17('0x43')][_0x7f17('0x4d')]({'id':0x0,'priority':_0x37bfdb[_0x7f17('0x43')][_0x7f17('0x48')]+0x1,'app':_0x7f17('0x4e'),'appdata':'unmanaged','interval':_0x7f17('0x4f')});}_0x55b523[_0x7f17('0x50')]=!![];}else{_0x55b523['created']=![];}_0x37bfdb[_0x7f17('0x51')]=_0x55b523;return db[_0x7f17('0x52')]['create']({'body':_0x50dda1['body'][_0x7f17('0x26')],'FaxAccountId':_0x50dda1[_0x7f17('0x3c')]['id'],'FaxInteractionId':_0x367c50['id'],'direction':'in','ContactId':_0x367c50[_0x7f17('0x53')],'AttachmentId':_0x50dda1[_0x7f17('0x26')][_0x7f17('0x54')]});})['then'](function(_0x30ab4a){_0x37bfdb[_0x7f17('0x16')]=_0x30ab4a;if(_0x37bfdb[_0x7f17('0x51')][_0x7f17('0x55')]){return db[_0x7f17('0x56')]['find']({'attributes':['id',_0x7f17('0x57')],'where':{'id':_0x37bfdb[_0x7f17('0x51')][_0x7f17('0x55')]}})['then'](function(_0x536baa){if(_0x536baa){_0x37bfdb['applications']['unshift']({'id':0x0,'priority':0x0,'app':_0x7f17('0x58'),'appdata':_0x536baa[_0x7f17('0x57')]+','+(_0x37bfdb[_0x7f17('0x3c')][_0x7f17('0x59')]||0xa),'interval':_0x7f17('0x4f')});}return respondWithRpcPromise(_0x7f17('0x5a'),'startRouting',_0x37bfdb);});}return respondWithRpcPromise(_0x7f17('0x5a'),_0x7f17('0x5b'),_0x37bfdb);})[_0x7f17('0x24')](function(_0x103219){_0x1f07b4(_0x103219);})[_0x7f17('0x19')](function(_0x3cb559){_0x5322c8(_0x5d64c4['error'](0x1f4,_0x3cb559[_0x7f17('0x16')]));});});};