4825d4d0e957260709480c68ba9c622469be7a35
[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 _0xa6f9=['from','find','Contacts','DESC','FaxApplication','Applications','List','get','account','applications','list','priority','asc','create','contact','FaxInteraction','Contact\x20not\x20found','autoclose','push','length','unmanaged','created','interaction','FaxMessage','ContactId','AttachmentId','UserId','User','name','unshift','waitForTheAssignedAgent','*,*,*,*','Start','startRouting','lodash','moment','bluebird','randomstring','ioredis','../../mysqldb','../../config/utils','../../config/logger','../../config/environment','jayson/promise','client','redis','defaults','localhost','socket.io-emitter','./faxAccount.socket','register','info','request\x20sent','stringify','error','message','FaxAccount,\x20%s,\x20%s','result','catch','GetFaxAccount','FaxAccount','findAll','options','raw','where','limit','include','map','model','attributes','then','debug','NotifyFaxAccount','body','fax','CmContact','ValidationError','no\x20available\x20attributes','difference','keys','createdAt','updatedAt','CompanyId','ListId','isNil','body\x20is\x20mandatory\x20and\x20not\x20empty','mapKey','Sequelize','mapKey\x20is\x20mandatory,\x20please\x20use\x20one\x20of\x20these:\x20','includes','mapKey\x20invalid,\x20please\x20use\x20one\x20of\x20these:\x20'];(function(_0x47c969,_0x4e415c){var _0x515ce0=function(_0x204f14){while(--_0x204f14){_0x47c969['push'](_0x47c969['shift']());}};_0x515ce0(++_0x4e415c);}(_0xa6f9,0x1e9));var _0x9a6f=function(_0x529194,_0x5e989d){_0x529194=_0x529194-0x0;var _0x5701fd=_0xa6f9[_0x529194];return _0x5701fd;};'use strict';var _=require(_0x9a6f('0x0'));var util=require('util');var moment=require(_0x9a6f('0x1'));var BPromise=require(_0x9a6f('0x2'));var rs=require(_0x9a6f('0x3'));var fs=require('fs');var Redis=require(_0x9a6f('0x4'));var db=require(_0x9a6f('0x5'))['db'];var utils=require(_0x9a6f('0x6'));var logger=require(_0x9a6f('0x7'))('rpc');var config=require(_0x9a6f('0x8'));var jayson=require(_0x9a6f('0x9'));var client=jayson[_0x9a6f('0xa')]['http']({'port':0x232c});config[_0x9a6f('0xb')]=_[_0x9a6f('0xc')](config[_0x9a6f('0xb')],{'host':_0x9a6f('0xd'),'port':0x18eb});var socket=require(_0x9a6f('0xe'))(new Redis(config[_0x9a6f('0xb')]));require(_0x9a6f('0xf'))[_0x9a6f('0x10')](socket);function respondWithRpcPromise(_0x14fe10,_0x4e749f,_0x515409){return new BPromise(function(_0x391d46,_0x45e76b){return client['request'](_0x14fe10,_0x515409)['then'](function(_0x58bab8){logger[_0x9a6f('0x11')]('FaxAccount,\x20%s,\x20%s',_0x4e749f,_0x9a6f('0x12'));logger['debug']('FaxAccount,\x20%s,\x20%s,\x20%s',_0x4e749f,'request\x20sent',JSON[_0x9a6f('0x13')](_0x58bab8));if(_0x58bab8[_0x9a6f('0x14')]){if(_0x58bab8['error']['code']===0x1f4){logger[_0x9a6f('0x14')]('FaxAccount,\x20%s,\x20%s',_0x4e749f,_0x58bab8[_0x9a6f('0x14')][_0x9a6f('0x15')]);return _0x45e76b(_0x58bab8[_0x9a6f('0x14')]['message']);}logger[_0x9a6f('0x14')](_0x9a6f('0x16'),_0x4e749f,_0x58bab8[_0x9a6f('0x14')][_0x9a6f('0x15')]);return _0x391d46(_0x58bab8[_0x9a6f('0x14')][_0x9a6f('0x15')]);}else{logger[_0x9a6f('0x11')]('FaxAccount,\x20%s,\x20%s',_0x4e749f,_0x9a6f('0x12'));_0x391d46(_0x58bab8[_0x9a6f('0x17')][_0x9a6f('0x15')]);}})[_0x9a6f('0x18')](function(_0x5541ab){logger[_0x9a6f('0x14')](_0x9a6f('0x16'),_0x4e749f,_0x5541ab);_0x45e76b(_0x5541ab);});});}exports[_0x9a6f('0x19')]=function(_0x31fb3a){var _0x4f4837=this;return new Promise(function(_0x171ab7,_0x1dcfb2){return db[_0x9a6f('0x1a')][_0x9a6f('0x1b')]({'raw':_0x31fb3a['options']?_0x31fb3a[_0x9a6f('0x1c')][_0x9a6f('0x1d')]===undefined?!![]:![]:!![],'where':_0x31fb3a[_0x9a6f('0x1c')]?_0x31fb3a[_0x9a6f('0x1c')][_0x9a6f('0x1e')]||null:null,'attributes':_0x31fb3a[_0x9a6f('0x1c')]?_0x31fb3a[_0x9a6f('0x1c')]['attributes']||null:null,'limit':_0x31fb3a[_0x9a6f('0x1c')]?_0x31fb3a[_0x9a6f('0x1c')][_0x9a6f('0x1f')]||null:null,'include':_0x31fb3a['options']?_0x31fb3a[_0x9a6f('0x1c')][_0x9a6f('0x20')]?_[_0x9a6f('0x21')](_0x31fb3a['options'][_0x9a6f('0x20')],function(_0x21ab05){return{'model':db[_0x21ab05[_0x9a6f('0x22')]],'as':_0x21ab05['as'],'attributes':_0x21ab05[_0x9a6f('0x23')],'include':_0x21ab05[_0x9a6f('0x20')]?_[_0x9a6f('0x21')](_0x21ab05[_0x9a6f('0x20')],function(_0x2962c4){return{'model':db[_0x2962c4['model']],'as':_0x2962c4['as'],'attributes':_0x2962c4[_0x9a6f('0x23')],'include':_0x2962c4[_0x9a6f('0x20')]?_['map'](_0x2962c4[_0x9a6f('0x20')],function(_0x1bbe67){return{'model':db[_0x1bbe67[_0x9a6f('0x22')]],'as':_0x1bbe67['as'],'attributes':_0x1bbe67[_0x9a6f('0x23')]};}):[]};}):[]};}):[]:[]})[_0x9a6f('0x24')](function(_0x3b1a09){logger[_0x9a6f('0x11')](_0x9a6f('0x19'),_0x31fb3a);logger[_0x9a6f('0x25')]('GetFaxAccount',_0x31fb3a,JSON['stringify'](_0x3b1a09));_0x171ab7(_0x3b1a09);})[_0x9a6f('0x18')](function(_0x148268){logger['error']('GetFaxAccount',_0x148268['message'],_0x31fb3a);_0x1dcfb2(_0x4f4837['error'](0x1f4,_0x148268[_0x9a6f('0x15')]));});});};exports[_0x9a6f('0x26')]=function(_0x266e23,_0x188787,_0x3a8cec){var _0x14590a=this;return new Promise(function(_0x3cc4be,_0x3e8163){var _0x572361={'body':_0x266e23[_0x9a6f('0x27')],'channel':_0x9a6f('0x28')};var _0x3cc7ed=[];var _0x29eb96=[];var _0x2e2257={};return db[_0x9a6f('0x29')]['describe']()[_0x9a6f('0x24')](function(_0xc5044a){if(!_0xc5044a){throw new db['Sequelize'][(_0x9a6f('0x2a'))](_0x9a6f('0x2b'));}_0x3cc7ed=_[_0x9a6f('0x2c')](_[_0x9a6f('0x2d')](_0xc5044a),[_0x9a6f('0x2e'),_0x9a6f('0x2f')]);_0x29eb96=_[_0x9a6f('0x2c')](_[_0x9a6f('0x2d')](_0xc5044a),[_0x9a6f('0x2e'),'updatedAt',_0x9a6f('0x30'),_0x9a6f('0x31')]);if(_0x266e23[_0x9a6f('0x27')]['id']){delete _0x266e23[_0x9a6f('0x27')]['id'];}if(_[_0x9a6f('0x32')](_0x266e23[_0x9a6f('0x27')]['from'])){throw new db['Sequelize'][(_0x9a6f('0x2a'))]('from\x20is\x20mandatory');}if(_[_0x9a6f('0x32')](_0x266e23[_0x9a6f('0x27')][_0x9a6f('0x27')])||_0x266e23[_0x9a6f('0x27')]['body']===''){throw new db['Sequelize']['ValidationError'](_0x9a6f('0x33'));}if(_[_0x9a6f('0x32')](_0x266e23[_0x9a6f('0x27')][_0x9a6f('0x34')])){throw new db[(_0x9a6f('0x35'))]['ValidationError'](_0x9a6f('0x36')+_0x29eb96);}if(!_[_0x9a6f('0x37')](_0x29eb96,_0x266e23[_0x9a6f('0x27')][_0x9a6f('0x34')])){throw new db[(_0x9a6f('0x35'))][(_0x9a6f('0x2a'))](_0x9a6f('0x38')+_0x29eb96);}_0x2e2257[_0x266e23['body'][_0x9a6f('0x34')]]=_0x266e23[_0x9a6f('0x27')][_0x9a6f('0x39')];})['then'](function(){return db['FaxAccount'][_0x9a6f('0x3a')]({'where':{'id':_0x266e23['account']['id']},'include':[{'model':db['CmList'],'as':'List','include':[{'model':db[_0x9a6f('0x29')],'as':_0x9a6f('0x3b'),'where':_0x2e2257,'limit':0x1,'order':[[_0x9a6f('0x2f'),_0x9a6f('0x3c')]]}]},{'model':db[_0x9a6f('0x3d')],'as':_0x9a6f('0x3e')}]});})['then'](function(_0x5c79b8){if(_0x5c79b8&&_0x5c79b8[_0x9a6f('0x3f')]){var _0x4bb851=_0x5c79b8[_0x9a6f('0x40')]({'plain':!![]});_0x572361[_0x9a6f('0x41')]=_0x4bb851;_0x572361[_0x9a6f('0x42')]=_0x4bb851['Applications'];_0x572361[_0x9a6f('0x43')]=_0x4bb851[_0x9a6f('0x3f')];_0x572361['applications']=_['orderBy'](_0x572361[_0x9a6f('0x42')],[_0x9a6f('0x44')],[_0x9a6f('0x45')]);if(_0x572361[_0x9a6f('0x41')]['Applications']){delete _0x572361[_0x9a6f('0x41')][_0x9a6f('0x3e')];}if(_0x572361['account'][_0x9a6f('0x3f')]&&_0x572361[_0x9a6f('0x41')]['List'][_0x9a6f('0x3b')]['length']){return _0x572361[_0x9a6f('0x41')][_0x9a6f('0x3f')][_0x9a6f('0x3b')][0x0];}var _0x2061d1=_['defaults'](_0x266e23[_0x9a6f('0x27')],{'firstName':_0x266e23[_0x9a6f('0x27')][_0x9a6f('0x39')],'ListId':_0x4bb851['ListId']});_0x2061d1[_0x266e23[_0x9a6f('0x27')]['mapKey']]=_0x266e23['body'][_0x9a6f('0x39')];return db[_0x9a6f('0x29')][_0x9a6f('0x46')](_0x2061d1,{'fields':_0x3cc7ed,'raw':!![]});}})[_0x9a6f('0x24')](function(_0x238b18){_0x572361[_0x9a6f('0x47')]=_0x238b18;if(_0x238b18){var _0x31130c={'ContactId':_0x238b18['id'],'FaxAccountId':_0x266e23[_0x9a6f('0x41')]['id'],'fax':_0x238b18[_0x9a6f('0x28')]};return db[_0x9a6f('0x48')][_0x9a6f('0x3a')]({'where':{'ContactId':_0x238b18['id'],'closed':![],'FaxAccountId':_0x266e23[_0x9a6f('0x41')]['id']}})[_0x9a6f('0x24')](function(_0x5c38be){if(_0x5c38be){return[_0x5c38be,![]];}return db['FaxInteraction']['create'](_0x31130c)['then'](function(_0x15cca1){return[_0x15cca1,!![]];});});}else{throw new Error(_0x9a6f('0x49'));}})['spread'](function(_0x4761a9,_0x469ba2){var _0x19a469=_0x4761a9[_0x9a6f('0x40')]({'plain':!![]});if(_0x469ba2){if(_0x572361['account'][_0x9a6f('0x4a')]){_0x572361[_0x9a6f('0x42')][_0x9a6f('0x4b')]({'id':0x0,'priority':_0x572361[_0x9a6f('0x42')][_0x9a6f('0x4c')]+0x1,'app':'close','appdata':_0x9a6f('0x4d'),'interval':'*,*,*,*'});}_0x19a469[_0x9a6f('0x4e')]=!![];}else{_0x19a469['created']=![];}_0x572361[_0x9a6f('0x4f')]=_0x19a469;return db[_0x9a6f('0x50')][_0x9a6f('0x46')]({'body':_0x266e23[_0x9a6f('0x27')]['body'],'FaxAccountId':_0x266e23[_0x9a6f('0x41')]['id'],'FaxInteractionId':_0x4761a9['id'],'direction':'in','ContactId':_0x4761a9[_0x9a6f('0x51')],'AttachmentId':_0x266e23[_0x9a6f('0x27')][_0x9a6f('0x52')]});})['then'](function(_0x5a3163){_0x572361['message']=_0x5a3163;if(_0x572361['interaction'][_0x9a6f('0x53')]){return db[_0x9a6f('0x54')][_0x9a6f('0x3a')]({'attributes':['id',_0x9a6f('0x55')],'where':{'id':_0x572361[_0x9a6f('0x4f')][_0x9a6f('0x53')]}})[_0x9a6f('0x24')](function(_0x56d002){if(_0x56d002){_0x572361[_0x9a6f('0x42')][_0x9a6f('0x56')]({'id':0x0,'priority':0x0,'app':'agent','appdata':_0x56d002['name']+','+(_0x572361[_0x9a6f('0x41')][_0x9a6f('0x57')]||0xa),'interval':_0x9a6f('0x58')});}return respondWithRpcPromise(_0x9a6f('0x59'),_0x9a6f('0x5a'),_0x572361);});}return respondWithRpcPromise(_0x9a6f('0x59'),_0x9a6f('0x5a'),_0x572361);})[_0x9a6f('0x24')](function(_0x4d5e82){_0x3cc4be(_0x4d5e82);})[_0x9a6f('0x18')](function(_0x2a9d9a){_0x3e8163(_0x14590a[_0x9a6f('0x14')](0x1f4,_0x2a9d9a[_0x9a6f('0x15')]));});});};