Built motion from commit (unavailable).|2.4.21
[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 _0xfef7=['CmList','List','Contacts','DESC','FaxApplication','applications','Applications','list','orderBy','length','create','contact','FaxInteraction','Contact\x20not\x20found','spread','get','autoclose','created','ContactId','AttachmentId','interaction','UserId','unshift','agent','name','waitForTheAssignedAgent','*,*,*,*','Start','startRouting','lodash','util','bluebird','randomstring','ioredis','../../mysqldb','../../config/utils','rpc','jayson/promise','client','http','redis','defaults','socket.io-emitter','./faxAccount.socket','info','FaxAccount,\x20%s,\x20%s','request\x20sent','debug','stringify','error','code','message','result','FaxAccount','findAll','options','raw','where','limit','include','map','model','attributes','then','GetFaxAccount','catch','NotifyFaxAccount','body','fax','CmContact','describe','Sequelize','no\x20available\x20attributes','keys','createdAt','updatedAt','difference','CompanyId','ListId','isNil','from','from\x20is\x20mandatory','body\x20is\x20mandatory\x20and\x20not\x20empty','mapKey','ValidationError','mapKey\x20is\x20mandatory,\x20please\x20use\x20one\x20of\x20these:\x20','mapKey\x20invalid,\x20please\x20use\x20one\x20of\x20these:\x20','find','account'];(function(_0x33d988,_0xa94cb0){var _0x4c2a51=function(_0x143e93){while(--_0x143e93){_0x33d988['push'](_0x33d988['shift']());}};_0x4c2a51(++_0xa94cb0);}(_0xfef7,0x128));var _0x7fef=function(_0x3c259c,_0x553cd3){_0x3c259c=_0x3c259c-0x0;var _0x2ac5fc=_0xfef7[_0x3c259c];return _0x2ac5fc;};'use strict';var _=require(_0x7fef('0x0'));var util=require(_0x7fef('0x1'));var moment=require('moment');var BPromise=require(_0x7fef('0x2'));var rs=require(_0x7fef('0x3'));var fs=require('fs');var Redis=require(_0x7fef('0x4'));var db=require(_0x7fef('0x5'))['db'];var utils=require(_0x7fef('0x6'));var logger=require('../../config/logger')(_0x7fef('0x7'));var config=require('../../config/environment');var jayson=require(_0x7fef('0x8'));var client=jayson[_0x7fef('0x9')][_0x7fef('0xa')]({'port':0x232c});config[_0x7fef('0xb')]=_[_0x7fef('0xc')](config[_0x7fef('0xb')],{'host':'localhost','port':0x18eb});var socket=require(_0x7fef('0xd'))(new Redis(config[_0x7fef('0xb')]));require(_0x7fef('0xe'))['register'](socket);function respondWithRpcPromise(_0x5ead17,_0x15a388,_0x356a97){return new BPromise(function(_0x2dd3dd,_0x256410){return client['request'](_0x5ead17,_0x356a97)['then'](function(_0x4c936f){logger[_0x7fef('0xf')](_0x7fef('0x10'),_0x15a388,_0x7fef('0x11'));logger[_0x7fef('0x12')]('FaxAccount,\x20%s,\x20%s,\x20%s',_0x15a388,_0x7fef('0x11'),JSON[_0x7fef('0x13')](_0x4c936f));if(_0x4c936f[_0x7fef('0x14')]){if(_0x4c936f['error'][_0x7fef('0x15')]===0x1f4){logger[_0x7fef('0x14')]('FaxAccount,\x20%s,\x20%s',_0x15a388,_0x4c936f['error'][_0x7fef('0x16')]);return _0x256410(_0x4c936f[_0x7fef('0x14')][_0x7fef('0x16')]);}logger[_0x7fef('0x14')](_0x7fef('0x10'),_0x15a388,_0x4c936f[_0x7fef('0x14')][_0x7fef('0x16')]);return _0x2dd3dd(_0x4c936f[_0x7fef('0x14')][_0x7fef('0x16')]);}else{logger[_0x7fef('0xf')](_0x7fef('0x10'),_0x15a388,_0x7fef('0x11'));_0x2dd3dd(_0x4c936f[_0x7fef('0x17')][_0x7fef('0x16')]);}})['catch'](function(_0xd85752){logger[_0x7fef('0x14')](_0x7fef('0x10'),_0x15a388,_0xd85752);_0x256410(_0xd85752);});});}exports['GetFaxAccount']=function(_0x1271b7){var _0x41ee4f=this;return new Promise(function(_0x5034a6,_0x498953){return db[_0x7fef('0x18')][_0x7fef('0x19')]({'raw':_0x1271b7[_0x7fef('0x1a')]?_0x1271b7[_0x7fef('0x1a')][_0x7fef('0x1b')]===undefined?!![]:![]:!![],'where':_0x1271b7[_0x7fef('0x1a')]?_0x1271b7[_0x7fef('0x1a')][_0x7fef('0x1c')]||null:null,'attributes':_0x1271b7[_0x7fef('0x1a')]?_0x1271b7['options']['attributes']||null:null,'limit':_0x1271b7[_0x7fef('0x1a')]?_0x1271b7[_0x7fef('0x1a')][_0x7fef('0x1d')]||null:null,'include':_0x1271b7[_0x7fef('0x1a')]?_0x1271b7['options'][_0x7fef('0x1e')]?_[_0x7fef('0x1f')](_0x1271b7[_0x7fef('0x1a')][_0x7fef('0x1e')],function(_0x22d773){return{'model':db[_0x22d773[_0x7fef('0x20')]],'as':_0x22d773['as'],'attributes':_0x22d773['attributes'],'include':_0x22d773[_0x7fef('0x1e')]?_[_0x7fef('0x1f')](_0x22d773['include'],function(_0x3e298c){return{'model':db[_0x3e298c[_0x7fef('0x20')]],'as':_0x3e298c['as'],'attributes':_0x3e298c['attributes'],'include':_0x3e298c['include']?_['map'](_0x3e298c[_0x7fef('0x1e')],function(_0x52418b){return{'model':db[_0x52418b[_0x7fef('0x20')]],'as':_0x52418b['as'],'attributes':_0x52418b[_0x7fef('0x21')]};}):[]};}):[]};}):[]:[]})[_0x7fef('0x22')](function(_0x1234ca){logger[_0x7fef('0xf')](_0x7fef('0x23'),_0x1271b7);logger[_0x7fef('0x12')](_0x7fef('0x23'),_0x1271b7,JSON[_0x7fef('0x13')](_0x1234ca));_0x5034a6(_0x1234ca);})[_0x7fef('0x24')](function(_0x78f30){logger[_0x7fef('0x14')]('GetFaxAccount',_0x78f30[_0x7fef('0x16')],_0x1271b7);_0x498953(_0x41ee4f[_0x7fef('0x14')](0x1f4,_0x78f30[_0x7fef('0x16')]));});});};exports[_0x7fef('0x25')]=function(_0x5147f9,_0x2f058c,_0x9264){var _0x417e8e=this;return new Promise(function(_0x274ad2,_0x592207){var _0x1989c5={'body':_0x5147f9[_0x7fef('0x26')],'channel':_0x7fef('0x27')};var _0x2c2903=[];var _0x4b08d7=[];var _0x5481ca={};return db[_0x7fef('0x28')][_0x7fef('0x29')]()[_0x7fef('0x22')](function(_0x1b48ed){if(!_0x1b48ed){throw new db[(_0x7fef('0x2a'))]['ValidationError'](_0x7fef('0x2b'));}_0x2c2903=_['difference'](_[_0x7fef('0x2c')](_0x1b48ed),[_0x7fef('0x2d'),_0x7fef('0x2e')]);_0x4b08d7=_[_0x7fef('0x2f')](_[_0x7fef('0x2c')](_0x1b48ed),[_0x7fef('0x2d'),_0x7fef('0x2e'),_0x7fef('0x30'),_0x7fef('0x31')]);if(_0x5147f9[_0x7fef('0x26')]['id']){delete _0x5147f9['body']['id'];}if(_[_0x7fef('0x32')](_0x5147f9[_0x7fef('0x26')][_0x7fef('0x33')])){throw new db[(_0x7fef('0x2a'))]['ValidationError'](_0x7fef('0x34'));}if(_['isNil'](_0x5147f9[_0x7fef('0x26')]['body'])||_0x5147f9['body'][_0x7fef('0x26')]===''){throw new db['Sequelize']['ValidationError'](_0x7fef('0x35'));}if(_[_0x7fef('0x32')](_0x5147f9['body'][_0x7fef('0x36')])){throw new db[(_0x7fef('0x2a'))][(_0x7fef('0x37'))](_0x7fef('0x38')+_0x4b08d7);}if(!_['includes'](_0x4b08d7,_0x5147f9[_0x7fef('0x26')][_0x7fef('0x36')])){throw new db[(_0x7fef('0x2a'))][(_0x7fef('0x37'))](_0x7fef('0x39')+_0x4b08d7);}_0x5481ca[_0x5147f9['body']['mapKey']]=_0x5147f9[_0x7fef('0x26')][_0x7fef('0x33')];})[_0x7fef('0x22')](function(){return db[_0x7fef('0x18')][_0x7fef('0x3a')]({'where':{'id':_0x5147f9[_0x7fef('0x3b')]['id']},'include':[{'model':db[_0x7fef('0x3c')],'as':_0x7fef('0x3d'),'include':[{'model':db[_0x7fef('0x28')],'as':_0x7fef('0x3e'),'where':_0x5481ca,'limit':0x1,'order':[[_0x7fef('0x2e'),_0x7fef('0x3f')]]}]},{'model':db[_0x7fef('0x40')],'as':'Applications'}]});})[_0x7fef('0x22')](function(_0x3cc845){if(_0x3cc845&&_0x3cc845[_0x7fef('0x3d')]){var _0x35212e=_0x3cc845['get']({'plain':!![]});_0x1989c5[_0x7fef('0x3b')]=_0x35212e;_0x1989c5[_0x7fef('0x41')]=_0x35212e[_0x7fef('0x42')];_0x1989c5[_0x7fef('0x43')]=_0x35212e['List'];_0x1989c5['applications']=_[_0x7fef('0x44')](_0x1989c5[_0x7fef('0x41')],['priority'],['asc']);if(_0x1989c5['account'][_0x7fef('0x42')]){delete _0x1989c5[_0x7fef('0x3b')]['Applications'];}if(_0x1989c5[_0x7fef('0x3b')]['List']&&_0x1989c5[_0x7fef('0x3b')][_0x7fef('0x3d')][_0x7fef('0x3e')][_0x7fef('0x45')]){return _0x1989c5['account'][_0x7fef('0x3d')][_0x7fef('0x3e')][0x0];}var _0xc54f3=_[_0x7fef('0xc')](_0x5147f9['body'],{'firstName':_0x5147f9[_0x7fef('0x26')][_0x7fef('0x33')],'ListId':_0x35212e[_0x7fef('0x31')]});_0xc54f3[_0x5147f9[_0x7fef('0x26')]['mapKey']]=_0x5147f9[_0x7fef('0x26')]['from'];return db[_0x7fef('0x28')][_0x7fef('0x46')](_0xc54f3,{'fields':_0x2c2903,'raw':!![]});}})['then'](function(_0x3c75c4){_0x1989c5[_0x7fef('0x47')]=_0x3c75c4;if(_0x3c75c4){var _0x4dab33={'ContactId':_0x3c75c4['id'],'FaxAccountId':_0x5147f9[_0x7fef('0x3b')]['id'],'fax':_0x3c75c4['fax']};return db[_0x7fef('0x48')][_0x7fef('0x3a')]({'where':{'ContactId':_0x3c75c4['id'],'closed':![],'FaxAccountId':_0x5147f9[_0x7fef('0x3b')]['id']}})[_0x7fef('0x22')](function(_0x4d1dbe){if(_0x4d1dbe){return[_0x4d1dbe,![]];}return db[_0x7fef('0x48')][_0x7fef('0x46')](_0x4dab33)['then'](function(_0x33a458){return[_0x33a458,!![]];});});}else{throw new Error(_0x7fef('0x49'));}})[_0x7fef('0x4a')](function(_0x43625a,_0xfe55fa){var _0x50daa7=_0x43625a[_0x7fef('0x4b')]({'plain':!![]});if(_0xfe55fa){if(_0x1989c5['account'][_0x7fef('0x4c')]){_0x1989c5[_0x7fef('0x41')]['push']({'id':0x0,'priority':_0x1989c5['applications']['length']+0x1,'app':'close','appdata':'unmanaged','interval':'*,*,*,*'});}_0x50daa7['created']=!![];}else{_0x50daa7[_0x7fef('0x4d')]=![];}_0x1989c5['interaction']=_0x50daa7;return db['FaxMessage']['create']({'body':_0x5147f9[_0x7fef('0x26')][_0x7fef('0x26')],'FaxAccountId':_0x5147f9[_0x7fef('0x3b')]['id'],'FaxInteractionId':_0x43625a['id'],'direction':'in','ContactId':_0x43625a[_0x7fef('0x4e')],'AttachmentId':_0x5147f9[_0x7fef('0x26')][_0x7fef('0x4f')]});})['then'](function(_0x1abff9){_0x1989c5[_0x7fef('0x16')]=_0x1abff9;if(_0x1989c5[_0x7fef('0x50')][_0x7fef('0x51')]){return db['User'][_0x7fef('0x3a')]({'attributes':['id','name'],'where':{'id':_0x1989c5[_0x7fef('0x50')][_0x7fef('0x51')]}})[_0x7fef('0x22')](function(_0x5612fd){if(_0x5612fd){_0x1989c5[_0x7fef('0x41')][_0x7fef('0x52')]({'id':0x0,'priority':0x0,'app':_0x7fef('0x53'),'appdata':_0x5612fd[_0x7fef('0x54')]+','+(_0x1989c5['account'][_0x7fef('0x55')]||0xa),'interval':_0x7fef('0x56')});}return respondWithRpcPromise(_0x7fef('0x57'),_0x7fef('0x58'),_0x1989c5);});}return respondWithRpcPromise('Start','startRouting',_0x1989c5);})[_0x7fef('0x22')](function(_0xd2e923){_0x274ad2(_0xd2e923);})['catch'](function(_0x4e59bc){_0x592207(_0x417e8e[_0x7fef('0x14')](0x1f4,_0x4e59bc[_0x7fef('0x16')]));});});};