ada7d0a8b32fd27ff381806180bcb2c23e1e0532
[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 _0xf659=['../../mysqldb','../../config/utils','../../config/logger','rpc','../../config/environment','jayson/promise','client','http','redis','defaults','localhost','./faxAccount.socket','register','request','info','FaxAccount,\x20%s,\x20%s','request\x20sent','debug','FaxAccount,\x20%s,\x20%s,\x20%s','stringify','error','message','result','catch','GetFaxAccount','FaxAccount','findAll','options','raw','attributes','limit','map','model','include','then','NotifyFaxAccount','body','fax','CmContact','describe','ValidationError','createdAt','updatedAt','difference','keys','CompanyId','ListId','from','Sequelize','body\x20is\x20mandatory\x20and\x20not\x20empty','mapKey','mapKey\x20is\x20mandatory,\x20please\x20use\x20one\x20of\x20these:\x20','mapKey\x20invalid,\x20please\x20use\x20one\x20of\x20these:\x20','find','account','CmList','Contacts','DESC','FaxApplication','Applications','applications','list','asc','List','length','create','contact','FaxInteraction','Contact\x20not\x20found','spread','get','push','close','unmanaged','interaction','FaxMessage','ContactId','AttachmentId','UserId','name','agent','waitForTheAssignedAgent','*,*,*,*','queueId','FaxQueue','unshift','queue','waitForTheAssignedQueue','Start','startRouting','moment','bluebird','randomstring','ioredis'];(function(_0x37dc1e,_0x5d9a62){var _0x5561b2=function(_0x15f669){while(--_0x15f669){_0x37dc1e['push'](_0x37dc1e['shift']());}};_0x5561b2(++_0x5d9a62);}(_0xf659,0x174));var _0x9f65=function(_0x45fdf2,_0x1e2163){_0x45fdf2=_0x45fdf2-0x0;var _0x2b0fbd=_0xf659[_0x45fdf2];return _0x2b0fbd;};'use strict';var _=require('lodash');var util=require('util');var moment=require(_0x9f65('0x0'));var BPromise=require(_0x9f65('0x1'));var rs=require(_0x9f65('0x2'));var fs=require('fs');var Redis=require(_0x9f65('0x3'));var db=require(_0x9f65('0x4'))['db'];var utils=require(_0x9f65('0x5'));var logger=require(_0x9f65('0x6'))(_0x9f65('0x7'));var config=require(_0x9f65('0x8'));var jayson=require(_0x9f65('0x9'));var client=jayson[_0x9f65('0xa')][_0x9f65('0xb')]({'port':0x232c});config[_0x9f65('0xc')]=_[_0x9f65('0xd')](config[_0x9f65('0xc')],{'host':_0x9f65('0xe'),'port':0x18eb});var socket=require('socket.io-emitter')(new Redis(config['redis']));require(_0x9f65('0xf'))[_0x9f65('0x10')](socket);function respondWithRpcPromise(_0x5c2a8a,_0x343132,_0x1e2c8d){return new BPromise(function(_0x39df18,_0x45ad78){return client[_0x9f65('0x11')](_0x5c2a8a,_0x1e2c8d)['then'](function(_0x138dcc){logger[_0x9f65('0x12')](_0x9f65('0x13'),_0x343132,_0x9f65('0x14'));logger[_0x9f65('0x15')](_0x9f65('0x16'),_0x343132,_0x9f65('0x14'),JSON[_0x9f65('0x17')](_0x138dcc));if(_0x138dcc[_0x9f65('0x18')]){if(_0x138dcc['error']['code']===0x1f4){logger[_0x9f65('0x18')](_0x9f65('0x13'),_0x343132,_0x138dcc[_0x9f65('0x18')][_0x9f65('0x19')]);return _0x45ad78(_0x138dcc[_0x9f65('0x18')][_0x9f65('0x19')]);}logger[_0x9f65('0x18')](_0x9f65('0x13'),_0x343132,_0x138dcc['error'][_0x9f65('0x19')]);return _0x39df18(_0x138dcc[_0x9f65('0x18')][_0x9f65('0x19')]);}else{logger[_0x9f65('0x12')]('FaxAccount,\x20%s,\x20%s',_0x343132,'request\x20sent');_0x39df18(_0x138dcc[_0x9f65('0x1a')][_0x9f65('0x19')]);}})[_0x9f65('0x1b')](function(_0x4498e9){logger[_0x9f65('0x18')]('FaxAccount,\x20%s,\x20%s',_0x343132,_0x4498e9);_0x45ad78(_0x4498e9);});});}exports[_0x9f65('0x1c')]=function(_0x3b4ab7){var _0x11172a=this;return new Promise(function(_0x21a12f,_0x20b354){return db[_0x9f65('0x1d')][_0x9f65('0x1e')]({'raw':_0x3b4ab7[_0x9f65('0x1f')]?_0x3b4ab7['options'][_0x9f65('0x20')]===undefined?!![]:![]:!![],'where':_0x3b4ab7['options']?_0x3b4ab7['options']['where']||null:null,'attributes':_0x3b4ab7['options']?_0x3b4ab7['options'][_0x9f65('0x21')]||null:null,'limit':_0x3b4ab7[_0x9f65('0x1f')]?_0x3b4ab7[_0x9f65('0x1f')][_0x9f65('0x22')]||null:null,'include':_0x3b4ab7[_0x9f65('0x1f')]?_0x3b4ab7[_0x9f65('0x1f')]['include']?_[_0x9f65('0x23')](_0x3b4ab7[_0x9f65('0x1f')]['include'],function(_0x3a49e6){return{'model':db[_0x3a49e6[_0x9f65('0x24')]],'as':_0x3a49e6['as'],'attributes':_0x3a49e6[_0x9f65('0x21')],'include':_0x3a49e6[_0x9f65('0x25')]?_['map'](_0x3a49e6['include'],function(_0x53406f){return{'model':db[_0x53406f['model']],'as':_0x53406f['as'],'attributes':_0x53406f[_0x9f65('0x21')],'include':_0x53406f[_0x9f65('0x25')]?_[_0x9f65('0x23')](_0x53406f[_0x9f65('0x25')],function(_0x37ec66){return{'model':db[_0x37ec66[_0x9f65('0x24')]],'as':_0x37ec66['as'],'attributes':_0x37ec66[_0x9f65('0x21')]};}):[]};}):[]};}):[]:[]})[_0x9f65('0x26')](function(_0x46efae){logger[_0x9f65('0x12')](_0x9f65('0x1c'),_0x3b4ab7);logger[_0x9f65('0x15')](_0x9f65('0x1c'),_0x3b4ab7,JSON[_0x9f65('0x17')](_0x46efae));_0x21a12f(_0x46efae);})[_0x9f65('0x1b')](function(_0x244d6b){logger[_0x9f65('0x18')](_0x9f65('0x1c'),_0x244d6b[_0x9f65('0x19')],_0x3b4ab7);_0x20b354(_0x11172a[_0x9f65('0x18')](0x1f4,_0x244d6b['message']));});});};exports[_0x9f65('0x27')]=function(_0x4e7da3,_0x591ebd,_0x3b5400){var _0x48e5c4=this;return new Promise(function(_0x1d41db,_0x25241d){var _0x345c70={'body':_0x4e7da3[_0x9f65('0x28')],'channel':_0x9f65('0x29')};var _0x543079=[];var _0x4664a9=[];var _0x32578d={};return db[_0x9f65('0x2a')][_0x9f65('0x2b')]()[_0x9f65('0x26')](function(_0x5010d0){if(!_0x5010d0){throw new db['Sequelize'][(_0x9f65('0x2c'))]('no\x20available\x20attributes');}_0x543079=_['difference'](_['keys'](_0x5010d0),[_0x9f65('0x2d'),_0x9f65('0x2e')]);_0x4664a9=_[_0x9f65('0x2f')](_[_0x9f65('0x30')](_0x5010d0),[_0x9f65('0x2d'),_0x9f65('0x2e'),_0x9f65('0x31'),_0x9f65('0x32')]);if(_0x4e7da3[_0x9f65('0x28')]['id']){delete _0x4e7da3[_0x9f65('0x28')]['id'];}if(_['isNil'](_0x4e7da3[_0x9f65('0x28')][_0x9f65('0x33')])){throw new db[(_0x9f65('0x34'))][(_0x9f65('0x2c'))]('from\x20is\x20mandatory');}if(_['isNil'](_0x4e7da3['body'][_0x9f65('0x28')])||_0x4e7da3[_0x9f65('0x28')]['body']===''){throw new db[(_0x9f65('0x34'))][(_0x9f65('0x2c'))](_0x9f65('0x35'));}if(_['isNil'](_0x4e7da3[_0x9f65('0x28')][_0x9f65('0x36')])){throw new db[(_0x9f65('0x34'))][(_0x9f65('0x2c'))](_0x9f65('0x37')+_0x4664a9);}if(!_['includes'](_0x4664a9,_0x4e7da3[_0x9f65('0x28')][_0x9f65('0x36')])){throw new db[(_0x9f65('0x34'))][(_0x9f65('0x2c'))](_0x9f65('0x38')+_0x4664a9);}_0x32578d[_0x4e7da3['body'][_0x9f65('0x36')]]=_0x4e7da3['body']['from'];})[_0x9f65('0x26')](function(){return db[_0x9f65('0x1d')][_0x9f65('0x39')]({'where':{'id':_0x4e7da3[_0x9f65('0x3a')]['id']},'include':[{'model':db[_0x9f65('0x3b')],'as':'List','include':[{'model':db['CmContact'],'as':_0x9f65('0x3c'),'where':_0x32578d,'limit':0x1,'order':[['updatedAt',_0x9f65('0x3d')]]}]},{'model':db[_0x9f65('0x3e')],'as':_0x9f65('0x3f')}]});})[_0x9f65('0x26')](function(_0x5c247a){if(_0x5c247a&&_0x5c247a['List']){var _0x3290d8=_0x5c247a['get']({'plain':!![]});_0x345c70[_0x9f65('0x3a')]=_0x3290d8;_0x345c70[_0x9f65('0x40')]=_0x3290d8[_0x9f65('0x3f')];_0x345c70[_0x9f65('0x41')]=_0x3290d8['List'];_0x345c70['applications']=_['orderBy'](_0x345c70[_0x9f65('0x40')],['priority'],[_0x9f65('0x42')]);if(_0x345c70[_0x9f65('0x3a')][_0x9f65('0x3f')]){delete _0x345c70[_0x9f65('0x3a')]['Applications'];}if(_0x345c70[_0x9f65('0x3a')][_0x9f65('0x43')]&&_0x345c70['account'][_0x9f65('0x43')][_0x9f65('0x3c')][_0x9f65('0x44')]){return _0x345c70['account'][_0x9f65('0x43')][_0x9f65('0x3c')][0x0];}var _0x5308f2=_[_0x9f65('0xd')](_0x4e7da3[_0x9f65('0x28')],{'firstName':_0x4e7da3['body']['from'],'ListId':_0x3290d8[_0x9f65('0x32')]});_0x5308f2[_0x4e7da3[_0x9f65('0x28')][_0x9f65('0x36')]]=_0x4e7da3[_0x9f65('0x28')]['from'];return db['CmContact'][_0x9f65('0x45')](_0x5308f2,{'fields':_0x543079,'raw':!![]});}})[_0x9f65('0x26')](function(_0x427d87){_0x345c70[_0x9f65('0x46')]=_0x427d87;if(_0x427d87){var _0x3f4999={'ContactId':_0x427d87['id'],'FaxAccountId':_0x4e7da3[_0x9f65('0x3a')]['id'],'fax':_0x427d87[_0x9f65('0x29')]};return db[_0x9f65('0x47')][_0x9f65('0x39')]({'where':{'ContactId':_0x427d87['id'],'closed':![],'FaxAccountId':_0x4e7da3[_0x9f65('0x3a')]['id']}})[_0x9f65('0x26')](function(_0x444b2e){if(_0x444b2e){return[_0x444b2e,![]];}return db[_0x9f65('0x47')][_0x9f65('0x45')](_0x3f4999)[_0x9f65('0x26')](function(_0x375b8f){return[_0x375b8f,!![]];});});}else{throw new Error(_0x9f65('0x48'));}})[_0x9f65('0x49')](function(_0x20c83d,_0xf3d5c0){var _0x333b06=_0x20c83d[_0x9f65('0x4a')]({'plain':!![]});if(_0xf3d5c0){if(_0x345c70[_0x9f65('0x3a')]['autoclose']){_0x345c70[_0x9f65('0x40')][_0x9f65('0x4b')]({'id':0x0,'priority':_0x345c70[_0x9f65('0x40')][_0x9f65('0x44')]+0x1,'app':_0x9f65('0x4c'),'appdata':_0x9f65('0x4d'),'interval':'*,*,*,*'});}_0x333b06['created']=!![];}else{_0x333b06['created']=![];}_0x345c70[_0x9f65('0x4e')]=_0x333b06;return db[_0x9f65('0x4f')][_0x9f65('0x45')]({'body':_0x4e7da3[_0x9f65('0x28')][_0x9f65('0x28')],'FaxAccountId':_0x4e7da3[_0x9f65('0x3a')]['id'],'FaxInteractionId':_0x20c83d['id'],'direction':'in','ContactId':_0x20c83d[_0x9f65('0x50')],'AttachmentId':_0x4e7da3['body'][_0x9f65('0x51')]});})[_0x9f65('0x26')](function(_0x5efa6b){_0x345c70['message']=_0x5efa6b;if(!_0x345c70['interaction'][_0x9f65('0x52')])return;return db['User'][_0x9f65('0x39')]({'attributes':['id',_0x9f65('0x53')],'where':{'id':_0x345c70[_0x9f65('0x4e')]['UserId']}});})['then'](function(_0x49ec32){if(_0x49ec32){_0x345c70[_0x9f65('0x40')]['unshift']({'id':0x0,'priority':0x0,'app':_0x9f65('0x54'),'appdata':_0x49ec32['name']+','+(_0x345c70[_0x9f65('0x3a')][_0x9f65('0x55')]||0xa),'interval':_0x9f65('0x56')});}if(!_0x345c70[_0x9f65('0x4e')][_0x9f65('0x57')])return;return db[_0x9f65('0x58')]['find']({'attributes':['id',_0x9f65('0x53')],'where':{'id':_0x345c70[_0x9f65('0x4e')][_0x9f65('0x57')]}});})['then'](function(_0x1e9fe5){if(_0x1e9fe5){_0x345c70[_0x9f65('0x40')][_0x9f65('0x59')]({'id':0x0,'priority':0x1,'app':_0x9f65('0x5a'),'appdata':_0x1e9fe5['name']+','+(_0x345c70[_0x9f65('0x3a')][_0x9f65('0x5b')]||0x12c),'interval':_0x9f65('0x56')});}return respondWithRpcPromise(_0x9f65('0x5c'),_0x9f65('0x5d'),_0x345c70);})['then'](function(_0x407011){_0x1d41db(_0x407011);})[_0x9f65('0x1b')](function(_0x483585){_0x25241d(_0x48e5c4[_0x9f65('0x18')](0x1f4,_0x483585[_0x9f65('0x19')]));});});};