8e95c0b29f2e3c038a858830466068471c4a2b18
[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 _0x65a7=['waitForTheAssignedAgent','FaxQueue','queueId','waitForTheAssignedQueue','Start','startRouting','lodash','moment','bluebird','randomstring','ioredis','../../config/utils','../../config/logger','rpc','client','http','redis','defaults','localhost','socket.io-emitter','./faxAccount.socket','request','info','FaxAccount,\x20%s,\x20%s','debug','FaxAccount,\x20%s,\x20%s,\x20%s','request\x20sent','stringify','error','message','result','catch','FaxAccount','findAll','options','raw','where','attributes','limit','map','include','model','GetFaxAccount','NotifyFaxAccount','body','fax','CmContact','then','Sequelize','ValidationError','no\x20available\x20attributes','difference','updatedAt','keys','createdAt','CompanyId','ListId','isNil','from','from\x20is\x20mandatory','body\x20is\x20mandatory\x20and\x20not\x20empty','mapKey','mapKey\x20invalid,\x20please\x20use\x20one\x20of\x20these:\x20','account','CmList','List','DESC','FaxApplication','Applications','get','applications','list','orderBy','priority','asc','Contacts','length','FaxInteraction','Contact\x20not\x20found','spread','push','close','*,*,*,*','created','create','ContactId','AttachmentId','interaction','UserId','User','name','unshift','agent'];(function(_0x20a584,_0xe384a5){var _0x4b41a8=function(_0x2127c6){while(--_0x2127c6){_0x20a584['push'](_0x20a584['shift']());}};_0x4b41a8(++_0xe384a5);}(_0x65a7,0x17a));var _0x765a=function(_0x504b73,_0x2b4a50){_0x504b73=_0x504b73-0x0;var _0x47e36a=_0x65a7[_0x504b73];return _0x47e36a;};'use strict';var _=require(_0x765a('0x0'));var util=require('util');var moment=require(_0x765a('0x1'));var BPromise=require(_0x765a('0x2'));var rs=require(_0x765a('0x3'));var fs=require('fs');var Redis=require(_0x765a('0x4'));var db=require('../../mysqldb')['db'];var utils=require(_0x765a('0x5'));var logger=require(_0x765a('0x6'))(_0x765a('0x7'));var config=require('../../config/environment');var jayson=require('jayson/promise');var client=jayson[_0x765a('0x8')][_0x765a('0x9')]({'port':0x232c});config[_0x765a('0xa')]=_[_0x765a('0xb')](config['redis'],{'host':_0x765a('0xc'),'port':0x18eb});var socket=require(_0x765a('0xd'))(new Redis(config[_0x765a('0xa')]));require(_0x765a('0xe'))['register'](socket);function respondWithRpcPromise(_0x3249f7,_0x2e9db7,_0x232079){return new BPromise(function(_0x5cd0ed,_0x5b6b57){return client[_0x765a('0xf')](_0x3249f7,_0x232079)['then'](function(_0x4166ea){logger[_0x765a('0x10')](_0x765a('0x11'),_0x2e9db7,'request\x20sent');logger[_0x765a('0x12')](_0x765a('0x13'),_0x2e9db7,_0x765a('0x14'),JSON[_0x765a('0x15')](_0x4166ea));if(_0x4166ea[_0x765a('0x16')]){if(_0x4166ea[_0x765a('0x16')]['code']===0x1f4){logger['error'](_0x765a('0x11'),_0x2e9db7,_0x4166ea['error']['message']);return _0x5b6b57(_0x4166ea['error']['message']);}logger[_0x765a('0x16')]('FaxAccount,\x20%s,\x20%s',_0x2e9db7,_0x4166ea[_0x765a('0x16')][_0x765a('0x17')]);return _0x5cd0ed(_0x4166ea[_0x765a('0x16')][_0x765a('0x17')]);}else{logger['info'](_0x765a('0x11'),_0x2e9db7,'request\x20sent');_0x5cd0ed(_0x4166ea[_0x765a('0x18')][_0x765a('0x17')]);}})[_0x765a('0x19')](function(_0x4c96ae){logger['error'](_0x765a('0x11'),_0x2e9db7,_0x4c96ae);_0x5b6b57(_0x4c96ae);});});}exports['GetFaxAccount']=function(_0x4af83f){var _0x2d0ec3=this;return new Promise(function(_0x5c14f8,_0x362195){return db[_0x765a('0x1a')][_0x765a('0x1b')]({'raw':_0x4af83f[_0x765a('0x1c')]?_0x4af83f[_0x765a('0x1c')][_0x765a('0x1d')]===undefined?!![]:![]:!![],'where':_0x4af83f[_0x765a('0x1c')]?_0x4af83f[_0x765a('0x1c')][_0x765a('0x1e')]||null:null,'attributes':_0x4af83f['options']?_0x4af83f[_0x765a('0x1c')][_0x765a('0x1f')]||null:null,'limit':_0x4af83f['options']?_0x4af83f['options'][_0x765a('0x20')]||null:null,'include':_0x4af83f[_0x765a('0x1c')]?_0x4af83f[_0x765a('0x1c')]['include']?_[_0x765a('0x21')](_0x4af83f[_0x765a('0x1c')][_0x765a('0x22')],function(_0x5495c6){return{'model':db[_0x5495c6[_0x765a('0x23')]],'as':_0x5495c6['as'],'attributes':_0x5495c6['attributes'],'include':_0x5495c6['include']?_['map'](_0x5495c6[_0x765a('0x22')],function(_0x1f1b4a){return{'model':db[_0x1f1b4a[_0x765a('0x23')]],'as':_0x1f1b4a['as'],'attributes':_0x1f1b4a[_0x765a('0x1f')],'include':_0x1f1b4a[_0x765a('0x22')]?_['map'](_0x1f1b4a[_0x765a('0x22')],function(_0x49c325){return{'model':db[_0x49c325[_0x765a('0x23')]],'as':_0x49c325['as'],'attributes':_0x49c325[_0x765a('0x1f')]};}):[]};}):[]};}):[]:[]})['then'](function(_0x73f5f4){logger[_0x765a('0x10')](_0x765a('0x24'),_0x4af83f);logger['debug'](_0x765a('0x24'),_0x4af83f,JSON[_0x765a('0x15')](_0x73f5f4));_0x5c14f8(_0x73f5f4);})[_0x765a('0x19')](function(_0x274279){logger[_0x765a('0x16')](_0x765a('0x24'),_0x274279[_0x765a('0x17')],_0x4af83f);_0x362195(_0x2d0ec3['error'](0x1f4,_0x274279[_0x765a('0x17')]));});});};exports[_0x765a('0x25')]=function(_0x5b3e4f,_0x3c0b93,_0x4d57a2){var _0x47c730=this;return new Promise(function(_0x5e1f0e,_0x4c8d67){var _0x2e8570={'body':_0x5b3e4f[_0x765a('0x26')],'channel':_0x765a('0x27')};var _0x1a36b1=[];var _0x633fa7=[];var _0x19121d={};return db[_0x765a('0x28')]['describe']()[_0x765a('0x29')](function(_0x1d2c76){if(!_0x1d2c76){throw new db[(_0x765a('0x2a'))][(_0x765a('0x2b'))](_0x765a('0x2c'));}_0x1a36b1=_[_0x765a('0x2d')](_['keys'](_0x1d2c76),['createdAt',_0x765a('0x2e')]);_0x633fa7=_[_0x765a('0x2d')](_[_0x765a('0x2f')](_0x1d2c76),[_0x765a('0x30'),_0x765a('0x2e'),_0x765a('0x31'),_0x765a('0x32')]);if(_0x5b3e4f[_0x765a('0x26')]['id']){delete _0x5b3e4f['body']['id'];}if(_[_0x765a('0x33')](_0x5b3e4f['body'][_0x765a('0x34')])){throw new db[(_0x765a('0x2a'))][(_0x765a('0x2b'))](_0x765a('0x35'));}if(_['isNil'](_0x5b3e4f[_0x765a('0x26')]['body'])||_0x5b3e4f[_0x765a('0x26')]['body']===''){throw new db[(_0x765a('0x2a'))][(_0x765a('0x2b'))](_0x765a('0x36'));}if(_['isNil'](_0x5b3e4f[_0x765a('0x26')][_0x765a('0x37')])){throw new db[(_0x765a('0x2a'))]['ValidationError']('mapKey\x20is\x20mandatory,\x20please\x20use\x20one\x20of\x20these:\x20'+_0x633fa7);}if(!_['includes'](_0x633fa7,_0x5b3e4f[_0x765a('0x26')][_0x765a('0x37')])){throw new db[(_0x765a('0x2a'))][(_0x765a('0x2b'))](_0x765a('0x38')+_0x633fa7);}_0x19121d[_0x5b3e4f[_0x765a('0x26')][_0x765a('0x37')]]=_0x5b3e4f[_0x765a('0x26')][_0x765a('0x34')];})[_0x765a('0x29')](function(){return db[_0x765a('0x1a')]['find']({'where':{'id':_0x5b3e4f[_0x765a('0x39')]['id']},'include':[{'model':db[_0x765a('0x3a')],'as':_0x765a('0x3b'),'include':[{'model':db['CmContact'],'as':'Contacts','where':_0x19121d,'limit':0x1,'order':[['updatedAt',_0x765a('0x3c')]]}]},{'model':db[_0x765a('0x3d')],'as':_0x765a('0x3e')}]});})[_0x765a('0x29')](function(_0x7e24b5){if(_0x7e24b5&&_0x7e24b5['List']){var _0x1e8bd0=_0x7e24b5[_0x765a('0x3f')]({'plain':!![]});_0x2e8570[_0x765a('0x39')]=_0x1e8bd0;_0x2e8570[_0x765a('0x40')]=_0x1e8bd0[_0x765a('0x3e')];_0x2e8570[_0x765a('0x41')]=_0x1e8bd0[_0x765a('0x3b')];_0x2e8570[_0x765a('0x40')]=_[_0x765a('0x42')](_0x2e8570[_0x765a('0x40')],[_0x765a('0x43')],[_0x765a('0x44')]);if(_0x2e8570[_0x765a('0x39')][_0x765a('0x3e')]){delete _0x2e8570[_0x765a('0x39')]['Applications'];}if(_0x2e8570[_0x765a('0x39')][_0x765a('0x3b')]&&_0x2e8570[_0x765a('0x39')]['List'][_0x765a('0x45')][_0x765a('0x46')]){return _0x2e8570[_0x765a('0x39')]['List']['Contacts'][0x0];}var _0x12a5f9=_['defaults'](_0x5b3e4f[_0x765a('0x26')],{'firstName':_0x5b3e4f[_0x765a('0x26')][_0x765a('0x34')],'ListId':_0x1e8bd0[_0x765a('0x32')]});_0x12a5f9[_0x5b3e4f['body'][_0x765a('0x37')]]=_0x5b3e4f['body']['from'];return db[_0x765a('0x28')]['create'](_0x12a5f9,{'fields':_0x1a36b1,'raw':!![]});}})[_0x765a('0x29')](function(_0x59c82e){_0x2e8570['contact']=_0x59c82e;if(_0x59c82e){var _0x39c361={'ContactId':_0x59c82e['id'],'FaxAccountId':_0x5b3e4f[_0x765a('0x39')]['id'],'fax':_0x59c82e[_0x765a('0x27')]};return db[_0x765a('0x47')]['find']({'where':{'ContactId':_0x59c82e['id'],'closed':![],'FaxAccountId':_0x5b3e4f['account']['id']}})['then'](function(_0x2dd484){if(_0x2dd484){return[_0x2dd484,![]];}return db['FaxInteraction']['create'](_0x39c361)['then'](function(_0x1bac71){return[_0x1bac71,!![]];});});}else{throw new Error(_0x765a('0x48'));}})[_0x765a('0x49')](function(_0x41bdcd,_0xc687fc){var _0x13b7a3=_0x41bdcd['get']({'plain':!![]});if(_0xc687fc){if(_0x2e8570[_0x765a('0x39')]['autoclose']){_0x2e8570[_0x765a('0x40')][_0x765a('0x4a')]({'id':0x0,'priority':_0x2e8570[_0x765a('0x40')][_0x765a('0x46')]+0x1,'app':_0x765a('0x4b'),'appdata':'unmanaged','interval':_0x765a('0x4c')});}_0x13b7a3[_0x765a('0x4d')]=!![];}else{_0x13b7a3[_0x765a('0x4d')]=![];}_0x2e8570['interaction']=_0x13b7a3;return db['FaxMessage'][_0x765a('0x4e')]({'body':_0x5b3e4f['body'][_0x765a('0x26')],'FaxAccountId':_0x5b3e4f['account']['id'],'FaxInteractionId':_0x41bdcd['id'],'direction':'in','ContactId':_0x41bdcd[_0x765a('0x4f')],'AttachmentId':_0x5b3e4f[_0x765a('0x26')][_0x765a('0x50')]});})['then'](function(_0x214517){_0x2e8570[_0x765a('0x17')]=_0x214517;if(!_0x2e8570[_0x765a('0x51')][_0x765a('0x52')])return;return db[_0x765a('0x53')]['find']({'attributes':['id',_0x765a('0x54')],'where':{'id':_0x2e8570[_0x765a('0x51')]['UserId']}});})[_0x765a('0x29')](function(_0x24bacf){if(_0x24bacf){_0x2e8570[_0x765a('0x40')][_0x765a('0x55')]({'id':0x0,'priority':0x0,'app':_0x765a('0x56'),'appdata':_0x24bacf['name']+','+(_0x2e8570[_0x765a('0x39')][_0x765a('0x57')]||0xa),'interval':_0x765a('0x4c')});}if(!_0x2e8570[_0x765a('0x51')]['queueId'])return;return db[_0x765a('0x58')]['find']({'attributes':['id',_0x765a('0x54')],'where':{'id':_0x2e8570[_0x765a('0x51')][_0x765a('0x59')]}});})[_0x765a('0x29')](function(_0x2c3eac){if(_0x2c3eac){_0x2e8570[_0x765a('0x40')][_0x765a('0x55')]({'id':0x0,'priority':0x1,'app':'queue','appdata':_0x2c3eac[_0x765a('0x54')]+','+(_0x2e8570['account'][_0x765a('0x5a')]||0x12c),'interval':_0x765a('0x4c')});}return respondWithRpcPromise(_0x765a('0x5b'),_0x765a('0x5c'),_0x2e8570);})[_0x765a('0x29')](function(_0x1868ac){_0x5e1f0e(_0x1868ac);})[_0x765a('0x19')](function(_0x5e93c3){_0x4c8d67(_0x47c730[_0x765a('0x16')](0x1f4,_0x5e93c3[_0x765a('0x17')]));});});};