1e42df952242ead95f6c206cc0d2263ad0a720ce
[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 _0x7051=['error','code','FaxAccount,\x20%s,\x20%s','message','info','catch','GetFaxAccount','findAll','options','raw','where','attributes','limit','include','map','model','NotifyFaxAccount','fax','CmContact','describe','Sequelize','ValidationError','difference','keys','createdAt','updatedAt','CompanyId','ListId','body','isNil','from','from\x20is\x20mandatory','body\x20is\x20mandatory\x20and\x20not\x20empty','mapKey','mapKey\x20is\x20mandatory,\x20please\x20use\x20one\x20of\x20these:\x20','includes','mapKey\x20invalid,\x20please\x20use\x20one\x20of\x20these:\x20','FaxAccount','find','account','Contacts','DESC','FaxApplication','Applications','List','get','list','applications','orderBy','create','contact','FaxInteraction','Contact\x20not\x20found','spread','push','length','close','unmanaged','*,*,*,*','created','interaction','FaxMessage','ContactId','UserId','User','name','unshift','agent','waitForTheAssignedAgent','Start','lodash','moment','bluebird','randomstring','ioredis','../../mysqldb','../../config/utils','rpc','../../config/environment','client','redis','defaults','localhost','socket.io-emitter','./faxAccount.socket','register','then','debug','FaxAccount,\x20%s,\x20%s,\x20%s','request\x20sent','stringify'];(function(_0x1627cd,_0x2a9058){var _0x3d7971=function(_0x15d6a8){while(--_0x15d6a8){_0x1627cd['push'](_0x1627cd['shift']());}};_0x3d7971(++_0x2a9058);}(_0x7051,0x157));var _0x1705=function(_0x4a8bad,_0x4bfb2f){_0x4a8bad=_0x4a8bad-0x0;var _0x30cf32=_0x7051[_0x4a8bad];return _0x30cf32;};'use strict';var _=require(_0x1705('0x0'));var util=require('util');var moment=require(_0x1705('0x1'));var BPromise=require(_0x1705('0x2'));var rs=require(_0x1705('0x3'));var fs=require('fs');var Redis=require(_0x1705('0x4'));var db=require(_0x1705('0x5'))['db'];var utils=require(_0x1705('0x6'));var logger=require('../../config/logger')(_0x1705('0x7'));var config=require(_0x1705('0x8'));var jayson=require('jayson/promise');var client=jayson[_0x1705('0x9')]['http']({'port':0x232c});config[_0x1705('0xa')]=_[_0x1705('0xb')](config[_0x1705('0xa')],{'host':_0x1705('0xc'),'port':0x18eb});var socket=require(_0x1705('0xd'))(new Redis(config[_0x1705('0xa')]));require(_0x1705('0xe'))[_0x1705('0xf')](socket);function respondWithRpcPromise(_0x172f30,_0x53e72d,_0x14c295){return new BPromise(function(_0x2ac75b,_0x34f228){return client['request'](_0x172f30,_0x14c295)[_0x1705('0x10')](function(_0xa46eb5){logger['info']('FaxAccount,\x20%s,\x20%s',_0x53e72d,'request\x20sent');logger[_0x1705('0x11')](_0x1705('0x12'),_0x53e72d,_0x1705('0x13'),JSON[_0x1705('0x14')](_0xa46eb5));if(_0xa46eb5['error']){if(_0xa46eb5[_0x1705('0x15')][_0x1705('0x16')]===0x1f4){logger['error'](_0x1705('0x17'),_0x53e72d,_0xa46eb5['error'][_0x1705('0x18')]);return _0x34f228(_0xa46eb5['error'][_0x1705('0x18')]);}logger['error'](_0x1705('0x17'),_0x53e72d,_0xa46eb5[_0x1705('0x15')]['message']);return _0x2ac75b(_0xa46eb5[_0x1705('0x15')][_0x1705('0x18')]);}else{logger[_0x1705('0x19')](_0x1705('0x17'),_0x53e72d,_0x1705('0x13'));_0x2ac75b(_0xa46eb5['result'][_0x1705('0x18')]);}})[_0x1705('0x1a')](function(_0x552c00){logger['error']('FaxAccount,\x20%s,\x20%s',_0x53e72d,_0x552c00);_0x34f228(_0x552c00);});});}exports[_0x1705('0x1b')]=function(_0x49c700){var _0x8b67ed=this;return new Promise(function(_0x253f00,_0x5486dd){return db['FaxAccount'][_0x1705('0x1c')]({'raw':_0x49c700[_0x1705('0x1d')]?_0x49c700[_0x1705('0x1d')][_0x1705('0x1e')]===undefined?!![]:![]:!![],'where':_0x49c700[_0x1705('0x1d')]?_0x49c700[_0x1705('0x1d')][_0x1705('0x1f')]||null:null,'attributes':_0x49c700[_0x1705('0x1d')]?_0x49c700[_0x1705('0x1d')][_0x1705('0x20')]||null:null,'limit':_0x49c700[_0x1705('0x1d')]?_0x49c700['options'][_0x1705('0x21')]||null:null,'include':_0x49c700['options']?_0x49c700[_0x1705('0x1d')][_0x1705('0x22')]?_['map'](_0x49c700[_0x1705('0x1d')][_0x1705('0x22')],function(_0x276ddc){return{'model':db[_0x276ddc['model']],'as':_0x276ddc['as'],'attributes':_0x276ddc[_0x1705('0x20')],'include':_0x276ddc[_0x1705('0x22')]?_[_0x1705('0x23')](_0x276ddc[_0x1705('0x22')],function(_0x516fc9){return{'model':db[_0x516fc9['model']],'as':_0x516fc9['as'],'attributes':_0x516fc9[_0x1705('0x20')],'include':_0x516fc9[_0x1705('0x22')]?_[_0x1705('0x23')](_0x516fc9['include'],function(_0x5ec967){return{'model':db[_0x5ec967[_0x1705('0x24')]],'as':_0x5ec967['as'],'attributes':_0x5ec967[_0x1705('0x20')]};}):[]};}):[]};}):[]:[]})[_0x1705('0x10')](function(_0x399673){logger[_0x1705('0x19')](_0x1705('0x1b'),_0x49c700);logger[_0x1705('0x11')](_0x1705('0x1b'),_0x49c700,JSON[_0x1705('0x14')](_0x399673));_0x253f00(_0x399673);})[_0x1705('0x1a')](function(_0x152270){logger[_0x1705('0x15')](_0x1705('0x1b'),_0x152270[_0x1705('0x18')],_0x49c700);_0x5486dd(_0x8b67ed[_0x1705('0x15')](0x1f4,_0x152270[_0x1705('0x18')]));});});};exports[_0x1705('0x25')]=function(_0x1e8423,_0x5d64d0,_0x541040){var _0x248b30=this;return new Promise(function(_0x5339d0,_0x333e99){var _0x140aca={'body':_0x1e8423['body'],'channel':_0x1705('0x26')};var _0x15f62b=[];var _0x81cbe=[];var _0x50fb31={};return db[_0x1705('0x27')][_0x1705('0x28')]()[_0x1705('0x10')](function(_0x134a81){if(!_0x134a81){throw new db[(_0x1705('0x29'))][(_0x1705('0x2a'))]('no\x20available\x20attributes');}_0x15f62b=_[_0x1705('0x2b')](_[_0x1705('0x2c')](_0x134a81),[_0x1705('0x2d'),_0x1705('0x2e')]);_0x81cbe=_['difference'](_[_0x1705('0x2c')](_0x134a81),[_0x1705('0x2d'),'updatedAt',_0x1705('0x2f'),_0x1705('0x30')]);if(_0x1e8423['body']['id']){delete _0x1e8423[_0x1705('0x31')]['id'];}if(_[_0x1705('0x32')](_0x1e8423[_0x1705('0x31')][_0x1705('0x33')])){throw new db['Sequelize'][(_0x1705('0x2a'))](_0x1705('0x34'));}if(_['isNil'](_0x1e8423[_0x1705('0x31')]['body'])||_0x1e8423[_0x1705('0x31')][_0x1705('0x31')]===''){throw new db['Sequelize'][(_0x1705('0x2a'))](_0x1705('0x35'));}if(_[_0x1705('0x32')](_0x1e8423[_0x1705('0x31')][_0x1705('0x36')])){throw new db['Sequelize'][(_0x1705('0x2a'))](_0x1705('0x37')+_0x81cbe);}if(!_[_0x1705('0x38')](_0x81cbe,_0x1e8423[_0x1705('0x31')]['mapKey'])){throw new db[(_0x1705('0x29'))][(_0x1705('0x2a'))](_0x1705('0x39')+_0x81cbe);}_0x50fb31[_0x1e8423[_0x1705('0x31')][_0x1705('0x36')]]=_0x1e8423['body']['from'];})[_0x1705('0x10')](function(){return db[_0x1705('0x3a')][_0x1705('0x3b')]({'where':{'id':_0x1e8423[_0x1705('0x3c')]['id']},'include':[{'model':db['CmList'],'as':'List','include':[{'model':db['CmContact'],'as':_0x1705('0x3d'),'where':_0x50fb31,'limit':0x1,'order':[[_0x1705('0x2e'),_0x1705('0x3e')]]}]},{'model':db[_0x1705('0x3f')],'as':_0x1705('0x40')}]});})[_0x1705('0x10')](function(_0x19d760){if(_0x19d760&&_0x19d760[_0x1705('0x41')]){var _0x3d3d8f=_0x19d760[_0x1705('0x42')]({'plain':!![]});_0x140aca[_0x1705('0x3c')]=_0x3d3d8f;_0x140aca['applications']=_0x3d3d8f[_0x1705('0x40')];_0x140aca[_0x1705('0x43')]=_0x3d3d8f['List'];_0x140aca[_0x1705('0x44')]=_[_0x1705('0x45')](_0x140aca[_0x1705('0x44')],['priority'],['asc']);if(_0x140aca[_0x1705('0x3c')][_0x1705('0x40')]){delete _0x140aca[_0x1705('0x3c')]['Applications'];}if(_0x140aca['account'][_0x1705('0x41')]&&_0x140aca['account']['List'][_0x1705('0x3d')]['length']){return _0x140aca[_0x1705('0x3c')][_0x1705('0x41')][_0x1705('0x3d')][0x0];}var _0x194793=_['defaults'](_0x1e8423['body'],{'firstName':_0x1e8423[_0x1705('0x31')][_0x1705('0x33')],'ListId':_0x3d3d8f['ListId']});_0x194793[_0x1e8423[_0x1705('0x31')]['mapKey']]=_0x1e8423['body'][_0x1705('0x33')];return db[_0x1705('0x27')][_0x1705('0x46')](_0x194793,{'fields':_0x15f62b,'raw':!![]});}})[_0x1705('0x10')](function(_0x513cbd){_0x140aca[_0x1705('0x47')]=_0x513cbd;if(_0x513cbd){var _0x451a48={'ContactId':_0x513cbd['id'],'FaxAccountId':_0x1e8423['account']['id'],'fax':_0x513cbd[_0x1705('0x26')]};return db[_0x1705('0x48')]['find']({'where':{'ContactId':_0x513cbd['id'],'closed':![],'FaxAccountId':_0x1e8423[_0x1705('0x3c')]['id']}})['then'](function(_0x21e250){if(_0x21e250){return[_0x21e250,![]];}return db[_0x1705('0x48')][_0x1705('0x46')](_0x451a48)[_0x1705('0x10')](function(_0x39479d){return[_0x39479d,!![]];});});}else{throw new Error(_0x1705('0x49'));}})[_0x1705('0x4a')](function(_0x15dd3c,_0x650947){var _0x1d7437=_0x15dd3c[_0x1705('0x42')]({'plain':!![]});if(_0x650947){if(_0x140aca[_0x1705('0x3c')]['autoclose']){_0x140aca[_0x1705('0x44')][_0x1705('0x4b')]({'id':0x0,'priority':_0x140aca[_0x1705('0x44')][_0x1705('0x4c')]+0x1,'app':_0x1705('0x4d'),'appdata':_0x1705('0x4e'),'interval':_0x1705('0x4f')});}_0x1d7437[_0x1705('0x50')]=!![];}else{_0x1d7437['created']=![];}_0x140aca[_0x1705('0x51')]=_0x1d7437;return db[_0x1705('0x52')][_0x1705('0x46')]({'body':_0x1e8423['body'][_0x1705('0x31')],'FaxAccountId':_0x1e8423[_0x1705('0x3c')]['id'],'FaxInteractionId':_0x15dd3c['id'],'direction':'in','ContactId':_0x15dd3c[_0x1705('0x53')],'AttachmentId':_0x1e8423[_0x1705('0x31')]['AttachmentId']});})['then'](function(_0x413d86){_0x140aca[_0x1705('0x18')]=_0x413d86;if(_0x140aca[_0x1705('0x51')][_0x1705('0x54')]){return db[_0x1705('0x55')][_0x1705('0x3b')]({'attributes':['id',_0x1705('0x56')],'where':{'id':_0x140aca[_0x1705('0x51')][_0x1705('0x54')]}})['then'](function(_0x2a58da){if(_0x2a58da){_0x140aca['applications'][_0x1705('0x57')]({'id':0x0,'priority':0x0,'app':_0x1705('0x58'),'appdata':_0x2a58da[_0x1705('0x56')]+','+(_0x140aca[_0x1705('0x3c')][_0x1705('0x59')]||0xa),'interval':_0x1705('0x4f')});}return respondWithRpcPromise(_0x1705('0x5a'),'startRouting',_0x140aca);});}return respondWithRpcPromise(_0x1705('0x5a'),'startRouting',_0x140aca);})[_0x1705('0x10')](function(_0x348ac8){_0x5339d0(_0x348ac8);})['catch'](function(_0x53ef08){_0x333e99(_0x248b30[_0x1705('0x15')](0x1f4,_0x53ef08[_0x1705('0x18')]));});});};