ae45f9f55e6dd257f5a4e45953d64e6e97701521
[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 _0x2ad3=['moment','bluebird','randomstring','../../mysqldb','../../config/logger','rpc','../../config/environment','jayson/promise','http','redis','defaults','localhost','socket.io-emitter','./faxAccount.socket','register','then','info','debug','FaxAccount,\x20%s,\x20%s,\x20%s','request\x20sent','stringify','error','FaxAccount,\x20%s,\x20%s','message','result','catch','GetFaxAccount','FaxAccount','findAll','options','where','limit','include','map','model','attributes','NotifyFaxAccount','body','fax','CmContact','ValidationError','difference','keys','createdAt','updatedAt','CompanyId','ListId','isNil','from','Sequelize','body\x20is\x20mandatory\x20and\x20not\x20empty','mapKey','includes','mapKey\x20invalid,\x20please\x20use\x20one\x20of\x20these:\x20','account','CmList','List','Contacts','DESC','FaxApplication','Applications','applications','priority','asc','length','create','contact','find','FaxInteraction','spread','get','autoclose','push','unmanaged','*,*,*,*','created','interaction','FaxMessage','ContactId','AttachmentId','UserId','User','name','unshift','agent','Start','startRouting','lodash','util'];(function(_0x4ec520,_0x15fee2){var _0xed49d7=function(_0x3031f2){while(--_0x3031f2){_0x4ec520['push'](_0x4ec520['shift']());}};_0xed49d7(++_0x15fee2);}(_0x2ad3,0x1bb));var _0x32ad=function(_0x18ab2a,_0x4debcd){_0x18ab2a=_0x18ab2a-0x0;var _0x16dcee=_0x2ad3[_0x18ab2a];return _0x16dcee;};'use strict';var _=require(_0x32ad('0x0'));var util=require(_0x32ad('0x1'));var moment=require(_0x32ad('0x2'));var BPromise=require(_0x32ad('0x3'));var rs=require(_0x32ad('0x4'));var fs=require('fs');var Redis=require('ioredis');var db=require(_0x32ad('0x5'))['db'];var utils=require('../../config/utils');var logger=require(_0x32ad('0x6'))(_0x32ad('0x7'));var config=require(_0x32ad('0x8'));var jayson=require(_0x32ad('0x9'));var client=jayson['client'][_0x32ad('0xa')]({'port':0x232c});config[_0x32ad('0xb')]=_[_0x32ad('0xc')](config[_0x32ad('0xb')],{'host':_0x32ad('0xd'),'port':0x18eb});var socket=require(_0x32ad('0xe'))(new Redis(config[_0x32ad('0xb')]));require(_0x32ad('0xf'))[_0x32ad('0x10')](socket);function respondWithRpcPromise(_0x505901,_0x566f60,_0x28423d){return new BPromise(function(_0x5a8e49,_0x28df3c){return client['request'](_0x505901,_0x28423d)[_0x32ad('0x11')](function(_0x40d464){logger[_0x32ad('0x12')]('FaxAccount,\x20%s,\x20%s',_0x566f60,'request\x20sent');logger[_0x32ad('0x13')](_0x32ad('0x14'),_0x566f60,_0x32ad('0x15'),JSON[_0x32ad('0x16')](_0x40d464));if(_0x40d464[_0x32ad('0x17')]){if(_0x40d464[_0x32ad('0x17')]['code']===0x1f4){logger[_0x32ad('0x17')](_0x32ad('0x18'),_0x566f60,_0x40d464['error'][_0x32ad('0x19')]);return _0x28df3c(_0x40d464[_0x32ad('0x17')][_0x32ad('0x19')]);}logger[_0x32ad('0x17')](_0x32ad('0x18'),_0x566f60,_0x40d464[_0x32ad('0x17')]['message']);return _0x5a8e49(_0x40d464[_0x32ad('0x17')][_0x32ad('0x19')]);}else{logger[_0x32ad('0x12')](_0x32ad('0x18'),_0x566f60,_0x32ad('0x15'));_0x5a8e49(_0x40d464[_0x32ad('0x1a')]['message']);}})[_0x32ad('0x1b')](function(_0x307559){logger['error']('FaxAccount,\x20%s,\x20%s',_0x566f60,_0x307559);_0x28df3c(_0x307559);});});}exports[_0x32ad('0x1c')]=function(_0x2035b1){var _0x23d4e1=this;return new Promise(function(_0x25e87c,_0x5a3439){return db[_0x32ad('0x1d')][_0x32ad('0x1e')]({'raw':_0x2035b1['options']?_0x2035b1['options']['raw']===undefined?!![]:![]:!![],'where':_0x2035b1[_0x32ad('0x1f')]?_0x2035b1[_0x32ad('0x1f')][_0x32ad('0x20')]||null:null,'attributes':_0x2035b1[_0x32ad('0x1f')]?_0x2035b1[_0x32ad('0x1f')]['attributes']||null:null,'limit':_0x2035b1['options']?_0x2035b1[_0x32ad('0x1f')][_0x32ad('0x21')]||null:null,'include':_0x2035b1['options']?_0x2035b1[_0x32ad('0x1f')][_0x32ad('0x22')]?_[_0x32ad('0x23')](_0x2035b1[_0x32ad('0x1f')][_0x32ad('0x22')],function(_0x1d78b7){return{'model':db[_0x1d78b7[_0x32ad('0x24')]],'as':_0x1d78b7['as'],'attributes':_0x1d78b7[_0x32ad('0x25')],'include':_0x1d78b7[_0x32ad('0x22')]?_[_0x32ad('0x23')](_0x1d78b7[_0x32ad('0x22')],function(_0x23b22b){return{'model':db[_0x23b22b[_0x32ad('0x24')]],'as':_0x23b22b['as'],'attributes':_0x23b22b['attributes'],'include':_0x23b22b[_0x32ad('0x22')]?_['map'](_0x23b22b[_0x32ad('0x22')],function(_0x521b19){return{'model':db[_0x521b19[_0x32ad('0x24')]],'as':_0x521b19['as'],'attributes':_0x521b19[_0x32ad('0x25')]};}):[]};}):[]};}):[]:[]})[_0x32ad('0x11')](function(_0xbd487){logger['info'](_0x32ad('0x1c'),_0x2035b1);logger[_0x32ad('0x13')](_0x32ad('0x1c'),_0x2035b1,JSON['stringify'](_0xbd487));_0x25e87c(_0xbd487);})['catch'](function(_0x13ab91){logger[_0x32ad('0x17')]('GetFaxAccount',_0x13ab91[_0x32ad('0x19')],_0x2035b1);_0x5a3439(_0x23d4e1['error'](0x1f4,_0x13ab91[_0x32ad('0x19')]));});});};exports[_0x32ad('0x26')]=function(_0x314c69,_0x7f9bb5,_0x43b9d5){var _0x3e88e2=this;return new Promise(function(_0x16f58b,_0x579aa4){var _0x26eddf={'body':_0x314c69[_0x32ad('0x27')],'channel':_0x32ad('0x28')};var _0x8e030b=[];var _0x49521b=[];var _0x4b6f70={};return db[_0x32ad('0x29')]['describe']()[_0x32ad('0x11')](function(_0x4bc291){if(!_0x4bc291){throw new db['Sequelize'][(_0x32ad('0x2a'))]('no\x20available\x20attributes');}_0x8e030b=_[_0x32ad('0x2b')](_[_0x32ad('0x2c')](_0x4bc291),[_0x32ad('0x2d'),_0x32ad('0x2e')]);_0x49521b=_[_0x32ad('0x2b')](_[_0x32ad('0x2c')](_0x4bc291),[_0x32ad('0x2d'),_0x32ad('0x2e'),_0x32ad('0x2f'),_0x32ad('0x30')]);if(_0x314c69[_0x32ad('0x27')]['id']){delete _0x314c69[_0x32ad('0x27')]['id'];}if(_[_0x32ad('0x31')](_0x314c69[_0x32ad('0x27')][_0x32ad('0x32')])){throw new db[(_0x32ad('0x33'))][(_0x32ad('0x2a'))]('from\x20is\x20mandatory');}if(_[_0x32ad('0x31')](_0x314c69[_0x32ad('0x27')][_0x32ad('0x27')])||_0x314c69[_0x32ad('0x27')][_0x32ad('0x27')]===''){throw new db[(_0x32ad('0x33'))][(_0x32ad('0x2a'))](_0x32ad('0x34'));}if(_[_0x32ad('0x31')](_0x314c69[_0x32ad('0x27')][_0x32ad('0x35')])){throw new db['Sequelize'][(_0x32ad('0x2a'))]('mapKey\x20is\x20mandatory,\x20please\x20use\x20one\x20of\x20these:\x20'+_0x49521b);}if(!_[_0x32ad('0x36')](_0x49521b,_0x314c69[_0x32ad('0x27')][_0x32ad('0x35')])){throw new db[(_0x32ad('0x33'))][(_0x32ad('0x2a'))](_0x32ad('0x37')+_0x49521b);}_0x4b6f70[_0x314c69[_0x32ad('0x27')]['mapKey']]=_0x314c69['body'][_0x32ad('0x32')];})[_0x32ad('0x11')](function(){return db[_0x32ad('0x1d')]['find']({'where':{'id':_0x314c69[_0x32ad('0x38')]['id']},'include':[{'model':db[_0x32ad('0x39')],'as':_0x32ad('0x3a'),'include':[{'model':db[_0x32ad('0x29')],'as':_0x32ad('0x3b'),'where':_0x4b6f70,'limit':0x1,'order':[[_0x32ad('0x2e'),_0x32ad('0x3c')]]}]},{'model':db[_0x32ad('0x3d')],'as':_0x32ad('0x3e')}]});})['then'](function(_0xe1c4bf){if(_0xe1c4bf&&_0xe1c4bf['List']){var _0x44e27a=_0xe1c4bf['get']({'plain':!![]});_0x26eddf[_0x32ad('0x38')]=_0x44e27a;_0x26eddf[_0x32ad('0x3f')]=_0x44e27a[_0x32ad('0x3e')];_0x26eddf['list']=_0x44e27a[_0x32ad('0x3a')];_0x26eddf['applications']=_['orderBy'](_0x26eddf[_0x32ad('0x3f')],[_0x32ad('0x40')],[_0x32ad('0x41')]);if(_0x26eddf[_0x32ad('0x38')][_0x32ad('0x3e')]){delete _0x26eddf[_0x32ad('0x38')][_0x32ad('0x3e')];}if(_0x26eddf[_0x32ad('0x38')][_0x32ad('0x3a')]&&_0x26eddf[_0x32ad('0x38')][_0x32ad('0x3a')][_0x32ad('0x3b')][_0x32ad('0x42')]){return _0x26eddf['account'][_0x32ad('0x3a')][_0x32ad('0x3b')][0x0];}var _0x347a6a=_['defaults'](_0x314c69[_0x32ad('0x27')],{'firstName':_0x314c69['body'][_0x32ad('0x32')],'ListId':_0x44e27a[_0x32ad('0x30')]});_0x347a6a[_0x314c69[_0x32ad('0x27')][_0x32ad('0x35')]]=_0x314c69['body'][_0x32ad('0x32')];return db[_0x32ad('0x29')][_0x32ad('0x43')](_0x347a6a,{'fields':_0x8e030b,'raw':!![]});}})[_0x32ad('0x11')](function(_0x13b096){_0x26eddf[_0x32ad('0x44')]=_0x13b096;if(_0x13b096){var _0x40123e={'ContactId':_0x13b096['id'],'FaxAccountId':_0x314c69['account']['id'],'fax':_0x13b096['fax']};return db['FaxInteraction'][_0x32ad('0x45')]({'where':{'ContactId':_0x13b096['id'],'closed':![],'FaxAccountId':_0x314c69[_0x32ad('0x38')]['id']}})[_0x32ad('0x11')](function(_0x1574c9){if(_0x1574c9){return[_0x1574c9,![]];}return db[_0x32ad('0x46')][_0x32ad('0x43')](_0x40123e)[_0x32ad('0x11')](function(_0xd79d57){return[_0xd79d57,!![]];});});}else{throw new Error('Contact\x20not\x20found');}})[_0x32ad('0x47')](function(_0x34bb27,_0x232645){var _0x41033c=_0x34bb27[_0x32ad('0x48')]({'plain':!![]});if(_0x232645){if(_0x26eddf[_0x32ad('0x38')][_0x32ad('0x49')]){_0x26eddf['applications'][_0x32ad('0x4a')]({'id':0x0,'priority':_0x26eddf[_0x32ad('0x3f')][_0x32ad('0x42')]+0x1,'app':'close','appdata':_0x32ad('0x4b'),'interval':_0x32ad('0x4c')});}_0x41033c[_0x32ad('0x4d')]=!![];}else{_0x41033c[_0x32ad('0x4d')]=![];}_0x26eddf[_0x32ad('0x4e')]=_0x41033c;return db[_0x32ad('0x4f')][_0x32ad('0x43')]({'body':_0x314c69['body'][_0x32ad('0x27')],'FaxAccountId':_0x314c69[_0x32ad('0x38')]['id'],'FaxInteractionId':_0x34bb27['id'],'direction':'in','ContactId':_0x34bb27[_0x32ad('0x50')],'AttachmentId':_0x314c69[_0x32ad('0x27')][_0x32ad('0x51')]});})[_0x32ad('0x11')](function(_0x19119c){_0x26eddf[_0x32ad('0x19')]=_0x19119c;if(_0x26eddf[_0x32ad('0x4e')][_0x32ad('0x52')]){return db[_0x32ad('0x53')][_0x32ad('0x45')]({'attributes':['id',_0x32ad('0x54')],'where':{'id':_0x26eddf[_0x32ad('0x4e')][_0x32ad('0x52')]}})['then'](function(_0x5bd436){if(_0x5bd436){_0x26eddf[_0x32ad('0x3f')][_0x32ad('0x55')]({'id':0x0,'priority':0x0,'app':_0x32ad('0x56'),'appdata':_0x5bd436[_0x32ad('0x54')]+','+(_0x26eddf[_0x32ad('0x38')]['waitForTheAssignedAgent']||0xa),'interval':'*,*,*,*'});}return respondWithRpcPromise(_0x32ad('0x57'),'startRouting',_0x26eddf);});}return respondWithRpcPromise(_0x32ad('0x57'),_0x32ad('0x58'),_0x26eddf);})[_0x32ad('0x11')](function(_0x1fcd13){_0x16f58b(_0x1fcd13);})[_0x32ad('0x1b')](function(_0x448f2b){_0x579aa4(_0x3e88e2[_0x32ad('0x17')](0x1f4,_0x448f2b[_0x32ad('0x19')]));});});};