Built motion from commit 85328c08.|2.5.50
[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 _0xccc0=['createdAt','updatedAt','CompanyId','isNil','from\x20is\x20mandatory','body\x20is\x20mandatory\x20and\x20not\x20empty','mapKey','mapKey\x20is\x20mandatory,\x20please\x20use\x20one\x20of\x20these:\x20','from','find','account','Contacts','DESC','FaxApplication','Applications','List','get','applications','list','orderBy','priority','asc','ListId','create','FaxInteraction','Contact\x20not\x20found','spread','autoclose','push','close','unmanaged','*,*,*,*','created','ContactId','AttachmentId','User','name','unshift','agent','waitForTheAssignedAgent','startRouting','Start','lodash','util','moment','ioredis','../../mysqldb','../../config/utils','../../config/logger','rpc','../../config/environment','jayson/promise','client','http','defaults','redis','localhost','socket.io-emitter','./faxAccount.socket','register','then','FaxAccount,\x20%s,\x20%s','request\x20sent','debug','FaxAccount,\x20%s,\x20%s,\x20%s','stringify','error','code','message','result','catch','FaxAccount','findAll','options','where','limit','include','map','model','attributes','GetFaxAccount','NotifyFaxAccount','body','fax','CmContact','describe','Sequelize','ValidationError','difference','keys'];(function(_0x5445c7,_0x588725){var _0x244494=function(_0x4ebd3d){while(--_0x4ebd3d){_0x5445c7['push'](_0x5445c7['shift']());}};_0x244494(++_0x588725);}(_0xccc0,0x1ec));var _0x0ccc=function(_0x2fe5ff,_0x44310c){_0x2fe5ff=_0x2fe5ff-0x0;var _0x3b1cb7=_0xccc0[_0x2fe5ff];return _0x3b1cb7;};'use strict';var _=require(_0x0ccc('0x0'));var util=require(_0x0ccc('0x1'));var moment=require(_0x0ccc('0x2'));var BPromise=require('bluebird');var rs=require('randomstring');var fs=require('fs');var Redis=require(_0x0ccc('0x3'));var db=require(_0x0ccc('0x4'))['db'];var utils=require(_0x0ccc('0x5'));var logger=require(_0x0ccc('0x6'))(_0x0ccc('0x7'));var config=require(_0x0ccc('0x8'));var jayson=require(_0x0ccc('0x9'));var client=jayson[_0x0ccc('0xa')][_0x0ccc('0xb')]({'port':0x232c});config['redis']=_[_0x0ccc('0xc')](config[_0x0ccc('0xd')],{'host':_0x0ccc('0xe'),'port':0x18eb});var socket=require(_0x0ccc('0xf'))(new Redis(config[_0x0ccc('0xd')]));require(_0x0ccc('0x10'))[_0x0ccc('0x11')](socket);function respondWithRpcPromise(_0x1379e1,_0x59e6ba,_0x115c51){return new BPromise(function(_0x59d8e3,_0x176e29){return client['request'](_0x1379e1,_0x115c51)[_0x0ccc('0x12')](function(_0x735be9){logger['info'](_0x0ccc('0x13'),_0x59e6ba,_0x0ccc('0x14'));logger[_0x0ccc('0x15')](_0x0ccc('0x16'),_0x59e6ba,_0x0ccc('0x14'),JSON[_0x0ccc('0x17')](_0x735be9));if(_0x735be9[_0x0ccc('0x18')]){if(_0x735be9[_0x0ccc('0x18')][_0x0ccc('0x19')]===0x1f4){logger['error'](_0x0ccc('0x13'),_0x59e6ba,_0x735be9[_0x0ccc('0x18')][_0x0ccc('0x1a')]);return _0x176e29(_0x735be9[_0x0ccc('0x18')][_0x0ccc('0x1a')]);}logger[_0x0ccc('0x18')](_0x0ccc('0x13'),_0x59e6ba,_0x735be9[_0x0ccc('0x18')]['message']);return _0x59d8e3(_0x735be9[_0x0ccc('0x18')][_0x0ccc('0x1a')]);}else{logger['info'](_0x0ccc('0x13'),_0x59e6ba,'request\x20sent');_0x59d8e3(_0x735be9[_0x0ccc('0x1b')]['message']);}})[_0x0ccc('0x1c')](function(_0x113d29){logger[_0x0ccc('0x18')](_0x0ccc('0x13'),_0x59e6ba,_0x113d29);_0x176e29(_0x113d29);});});}exports['GetFaxAccount']=function(_0x5c9832){var _0x58376d=this;return new Promise(function(_0x19adc0,_0x2fce43){return db[_0x0ccc('0x1d')][_0x0ccc('0x1e')]({'raw':_0x5c9832[_0x0ccc('0x1f')]?_0x5c9832[_0x0ccc('0x1f')]['raw']===undefined?!![]:![]:!![],'where':_0x5c9832['options']?_0x5c9832[_0x0ccc('0x1f')][_0x0ccc('0x20')]||null:null,'attributes':_0x5c9832[_0x0ccc('0x1f')]?_0x5c9832[_0x0ccc('0x1f')]['attributes']||null:null,'limit':_0x5c9832['options']?_0x5c9832[_0x0ccc('0x1f')][_0x0ccc('0x21')]||null:null,'include':_0x5c9832[_0x0ccc('0x1f')]?_0x5c9832['options'][_0x0ccc('0x22')]?_[_0x0ccc('0x23')](_0x5c9832[_0x0ccc('0x1f')][_0x0ccc('0x22')],function(_0xfda225){return{'model':db[_0xfda225[_0x0ccc('0x24')]],'as':_0xfda225['as'],'attributes':_0xfda225[_0x0ccc('0x25')],'include':_0xfda225[_0x0ccc('0x22')]?_[_0x0ccc('0x23')](_0xfda225['include'],function(_0x1df8b5){return{'model':db[_0x1df8b5[_0x0ccc('0x24')]],'as':_0x1df8b5['as'],'attributes':_0x1df8b5['attributes'],'include':_0x1df8b5['include']?_[_0x0ccc('0x23')](_0x1df8b5[_0x0ccc('0x22')],function(_0x18674e){return{'model':db[_0x18674e[_0x0ccc('0x24')]],'as':_0x18674e['as'],'attributes':_0x18674e[_0x0ccc('0x25')]};}):[]};}):[]};}):[]:[]})[_0x0ccc('0x12')](function(_0x218081){logger['info'](_0x0ccc('0x26'),_0x5c9832);logger[_0x0ccc('0x15')](_0x0ccc('0x26'),_0x5c9832,JSON[_0x0ccc('0x17')](_0x218081));_0x19adc0(_0x218081);})[_0x0ccc('0x1c')](function(_0x56ab56){logger[_0x0ccc('0x18')](_0x0ccc('0x26'),_0x56ab56[_0x0ccc('0x1a')],_0x5c9832);_0x2fce43(_0x58376d[_0x0ccc('0x18')](0x1f4,_0x56ab56['message']));});});};exports[_0x0ccc('0x27')]=function(_0x46ab97,_0x3f219f,_0x3034e9){var _0x1b2730=this;return new Promise(function(_0x4b103c,_0x31ae85){var _0x104df3={'body':_0x46ab97[_0x0ccc('0x28')],'channel':_0x0ccc('0x29')};var _0x2c5ec0=[];var _0x2ff4f3=[];var _0x24edd5={};return db[_0x0ccc('0x2a')][_0x0ccc('0x2b')]()[_0x0ccc('0x12')](function(_0x4940dc){if(!_0x4940dc){throw new db[(_0x0ccc('0x2c'))][(_0x0ccc('0x2d'))]('no\x20available\x20attributes');}_0x2c5ec0=_[_0x0ccc('0x2e')](_[_0x0ccc('0x2f')](_0x4940dc),[_0x0ccc('0x30'),_0x0ccc('0x31')]);_0x2ff4f3=_[_0x0ccc('0x2e')](_[_0x0ccc('0x2f')](_0x4940dc),[_0x0ccc('0x30'),_0x0ccc('0x31'),_0x0ccc('0x32'),'ListId']);if(_0x46ab97[_0x0ccc('0x28')]['id']){delete _0x46ab97['body']['id'];}if(_[_0x0ccc('0x33')](_0x46ab97[_0x0ccc('0x28')]['from'])){throw new db[(_0x0ccc('0x2c'))][(_0x0ccc('0x2d'))](_0x0ccc('0x34'));}if(_['isNil'](_0x46ab97['body'][_0x0ccc('0x28')])||_0x46ab97[_0x0ccc('0x28')][_0x0ccc('0x28')]===''){throw new db[(_0x0ccc('0x2c'))][(_0x0ccc('0x2d'))](_0x0ccc('0x35'));}if(_[_0x0ccc('0x33')](_0x46ab97[_0x0ccc('0x28')][_0x0ccc('0x36')])){throw new db[(_0x0ccc('0x2c'))][(_0x0ccc('0x2d'))](_0x0ccc('0x37')+_0x2ff4f3);}if(!_['includes'](_0x2ff4f3,_0x46ab97[_0x0ccc('0x28')]['mapKey'])){throw new db[(_0x0ccc('0x2c'))]['ValidationError']('mapKey\x20invalid,\x20please\x20use\x20one\x20of\x20these:\x20'+_0x2ff4f3);}_0x24edd5[_0x46ab97[_0x0ccc('0x28')][_0x0ccc('0x36')]]=_0x46ab97[_0x0ccc('0x28')][_0x0ccc('0x38')];})[_0x0ccc('0x12')](function(){return db[_0x0ccc('0x1d')][_0x0ccc('0x39')]({'where':{'id':_0x46ab97[_0x0ccc('0x3a')]['id']},'include':[{'model':db['CmList'],'as':'List','include':[{'model':db['CmContact'],'as':_0x0ccc('0x3b'),'where':_0x24edd5,'limit':0x1,'order':[[_0x0ccc('0x31'),_0x0ccc('0x3c')]]}]},{'model':db[_0x0ccc('0x3d')],'as':_0x0ccc('0x3e')}]});})['then'](function(_0x14851f){if(_0x14851f&&_0x14851f[_0x0ccc('0x3f')]){var _0x3fa69e=_0x14851f[_0x0ccc('0x40')]({'plain':!![]});_0x104df3[_0x0ccc('0x3a')]=_0x3fa69e;_0x104df3[_0x0ccc('0x41')]=_0x3fa69e[_0x0ccc('0x3e')];_0x104df3[_0x0ccc('0x42')]=_0x3fa69e[_0x0ccc('0x3f')];_0x104df3['applications']=_[_0x0ccc('0x43')](_0x104df3[_0x0ccc('0x41')],[_0x0ccc('0x44')],[_0x0ccc('0x45')]);if(_0x104df3[_0x0ccc('0x3a')][_0x0ccc('0x3e')]){delete _0x104df3['account'][_0x0ccc('0x3e')];}if(_0x104df3['account'][_0x0ccc('0x3f')]&&_0x104df3['account'][_0x0ccc('0x3f')]['Contacts']['length']){return _0x104df3[_0x0ccc('0x3a')][_0x0ccc('0x3f')][_0x0ccc('0x3b')][0x0];}var _0x4ac6e4=_['defaults'](_0x46ab97[_0x0ccc('0x28')],{'firstName':_0x46ab97[_0x0ccc('0x28')][_0x0ccc('0x38')],'ListId':_0x3fa69e[_0x0ccc('0x46')]});_0x4ac6e4[_0x46ab97[_0x0ccc('0x28')]['mapKey']]=_0x46ab97[_0x0ccc('0x28')][_0x0ccc('0x38')];return db[_0x0ccc('0x2a')][_0x0ccc('0x47')](_0x4ac6e4,{'fields':_0x2c5ec0,'raw':!![]});}})[_0x0ccc('0x12')](function(_0x56d510){_0x104df3['contact']=_0x56d510;if(_0x56d510){var _0x40d583={'ContactId':_0x56d510['id'],'FaxAccountId':_0x46ab97[_0x0ccc('0x3a')]['id'],'fax':_0x56d510[_0x0ccc('0x29')]};return db[_0x0ccc('0x48')][_0x0ccc('0x39')]({'where':{'ContactId':_0x56d510['id'],'closed':![],'FaxAccountId':_0x46ab97['account']['id']}})[_0x0ccc('0x12')](function(_0x472ce7){if(_0x472ce7){return[_0x472ce7,![]];}return db[_0x0ccc('0x48')]['create'](_0x40d583)['then'](function(_0xd6f129){return[_0xd6f129,!![]];});});}else{throw new Error(_0x0ccc('0x49'));}})[_0x0ccc('0x4a')](function(_0xa58e24,_0x4eaf09){var _0x2a7b30=_0xa58e24[_0x0ccc('0x40')]({'plain':!![]});if(_0x4eaf09){if(_0x104df3['account'][_0x0ccc('0x4b')]){_0x104df3[_0x0ccc('0x41')][_0x0ccc('0x4c')]({'id':0x0,'priority':_0x104df3[_0x0ccc('0x41')]['length']+0x1,'app':_0x0ccc('0x4d'),'appdata':_0x0ccc('0x4e'),'interval':_0x0ccc('0x4f')});}_0x2a7b30[_0x0ccc('0x50')]=!![];}else{_0x2a7b30['created']=![];}_0x104df3['interaction']=_0x2a7b30;return db['FaxMessage'][_0x0ccc('0x47')]({'body':_0x46ab97[_0x0ccc('0x28')][_0x0ccc('0x28')],'FaxAccountId':_0x46ab97[_0x0ccc('0x3a')]['id'],'FaxInteractionId':_0xa58e24['id'],'direction':'in','ContactId':_0xa58e24[_0x0ccc('0x51')],'AttachmentId':_0x46ab97['body'][_0x0ccc('0x52')]});})['then'](function(_0x244ac7){_0x104df3[_0x0ccc('0x1a')]=_0x244ac7;if(_0x104df3['interaction']['UserId']){return db[_0x0ccc('0x53')][_0x0ccc('0x39')]({'attributes':['id',_0x0ccc('0x54')],'where':{'id':_0x104df3['interaction']['UserId']}})[_0x0ccc('0x12')](function(_0x3ac8e5){if(_0x3ac8e5){_0x104df3[_0x0ccc('0x41')][_0x0ccc('0x55')]({'id':0x0,'priority':0x0,'app':_0x0ccc('0x56'),'appdata':_0x3ac8e5[_0x0ccc('0x54')]+','+(_0x104df3['account'][_0x0ccc('0x57')]||0xa),'interval':_0x0ccc('0x4f')});}return respondWithRpcPromise('Start',_0x0ccc('0x58'),_0x104df3);});}return respondWithRpcPromise(_0x0ccc('0x59'),_0x0ccc('0x58'),_0x104df3);})['then'](function(_0x3a7160){_0x4b103c(_0x3a7160);})['catch'](function(_0x255292){_0x31ae85(_0x1b2730[_0x0ccc('0x18')](0x1f4,_0x255292['message']));});});};