c4f91e4a75e0fb879a17a1bd66b507a2d8d2436e
[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 _0x2a23=['mapKey\x20invalid,\x20please\x20use\x20one\x20of\x20these:\x20','from','FaxAccount','find','account','CmList','List','DESC','FaxApplication','Applications','applications','list','orderBy','priority','asc','Contacts','length','create','FaxInteraction','Contact\x20not\x20found','spread','get','push','close','unmanaged','*,*,*,*','interaction','FaxMessage','AttachmentId','UserId','name','unshift','waitForTheAssignedAgent','Start','startRouting','lodash','util','randomstring','../../mysqldb','../../config/utils','../../config/logger','rpc','../../config/environment','http','redis','localhost','socket.io-emitter','./faxAccount.socket','register','info','FaxAccount,\x20%s,\x20%s','request\x20sent','stringify','error','code','message','result','GetFaxAccount','findAll','options','raw','where','attributes','limit','include','model','map','then','debug','NotifyFaxAccount','body','CmContact','describe','ValidationError','no\x20available\x20attributes','keys','createdAt','difference','updatedAt','isNil','from\x20is\x20mandatory','Sequelize','body\x20is\x20mandatory\x20and\x20not\x20empty','mapKey','includes'];(function(_0x53ccf2,_0x13cb67){var _0x5a2964=function(_0x3b0514){while(--_0x3b0514){_0x53ccf2['push'](_0x53ccf2['shift']());}};_0x5a2964(++_0x13cb67);}(_0x2a23,0x177));var _0x32a2=function(_0x377663,_0x33eebe){_0x377663=_0x377663-0x0;var _0x27698c=_0x2a23[_0x377663];return _0x27698c;};'use strict';var _=require(_0x32a2('0x0'));var util=require(_0x32a2('0x1'));var moment=require('moment');var BPromise=require('bluebird');var rs=require(_0x32a2('0x2'));var fs=require('fs');var Redis=require('ioredis');var db=require(_0x32a2('0x3'))['db'];var utils=require(_0x32a2('0x4'));var logger=require(_0x32a2('0x5'))(_0x32a2('0x6'));var config=require(_0x32a2('0x7'));var jayson=require('jayson/promise');var client=jayson['client'][_0x32a2('0x8')]({'port':0x232c});config[_0x32a2('0x9')]=_['defaults'](config[_0x32a2('0x9')],{'host':_0x32a2('0xa'),'port':0x18eb});var socket=require(_0x32a2('0xb'))(new Redis(config[_0x32a2('0x9')]));require(_0x32a2('0xc'))[_0x32a2('0xd')](socket);function respondWithRpcPromise(_0xb9d891,_0x5464b4,_0x507042){return new BPromise(function(_0x423b7a,_0x39fe2c){return client['request'](_0xb9d891,_0x507042)['then'](function(_0x277168){logger[_0x32a2('0xe')](_0x32a2('0xf'),_0x5464b4,_0x32a2('0x10'));logger['debug']('FaxAccount,\x20%s,\x20%s,\x20%s',_0x5464b4,_0x32a2('0x10'),JSON[_0x32a2('0x11')](_0x277168));if(_0x277168[_0x32a2('0x12')]){if(_0x277168[_0x32a2('0x12')][_0x32a2('0x13')]===0x1f4){logger[_0x32a2('0x12')](_0x32a2('0xf'),_0x5464b4,_0x277168[_0x32a2('0x12')][_0x32a2('0x14')]);return _0x39fe2c(_0x277168[_0x32a2('0x12')][_0x32a2('0x14')]);}logger[_0x32a2('0x12')](_0x32a2('0xf'),_0x5464b4,_0x277168[_0x32a2('0x12')][_0x32a2('0x14')]);return _0x423b7a(_0x277168[_0x32a2('0x12')][_0x32a2('0x14')]);}else{logger[_0x32a2('0xe')](_0x32a2('0xf'),_0x5464b4,_0x32a2('0x10'));_0x423b7a(_0x277168[_0x32a2('0x15')]['message']);}})['catch'](function(_0xd8d562){logger[_0x32a2('0x12')]('FaxAccount,\x20%s,\x20%s',_0x5464b4,_0xd8d562);_0x39fe2c(_0xd8d562);});});}exports[_0x32a2('0x16')]=function(_0x38502b){var _0x5b2b03=this;return new Promise(function(_0x3f47ef,_0x19e8d3){return db['FaxAccount'][_0x32a2('0x17')]({'raw':_0x38502b[_0x32a2('0x18')]?_0x38502b[_0x32a2('0x18')][_0x32a2('0x19')]===undefined?!![]:![]:!![],'where':_0x38502b[_0x32a2('0x18')]?_0x38502b[_0x32a2('0x18')][_0x32a2('0x1a')]||null:null,'attributes':_0x38502b[_0x32a2('0x18')]?_0x38502b[_0x32a2('0x18')][_0x32a2('0x1b')]||null:null,'limit':_0x38502b[_0x32a2('0x18')]?_0x38502b[_0x32a2('0x18')][_0x32a2('0x1c')]||null:null,'include':_0x38502b[_0x32a2('0x18')]?_0x38502b['options']['include']?_['map'](_0x38502b[_0x32a2('0x18')][_0x32a2('0x1d')],function(_0x51d4b1){return{'model':db[_0x51d4b1[_0x32a2('0x1e')]],'as':_0x51d4b1['as'],'attributes':_0x51d4b1['attributes'],'include':_0x51d4b1[_0x32a2('0x1d')]?_[_0x32a2('0x1f')](_0x51d4b1[_0x32a2('0x1d')],function(_0x5db720){return{'model':db[_0x5db720[_0x32a2('0x1e')]],'as':_0x5db720['as'],'attributes':_0x5db720[_0x32a2('0x1b')],'include':_0x5db720[_0x32a2('0x1d')]?_[_0x32a2('0x1f')](_0x5db720['include'],function(_0x446d0b){return{'model':db[_0x446d0b[_0x32a2('0x1e')]],'as':_0x446d0b['as'],'attributes':_0x446d0b[_0x32a2('0x1b')]};}):[]};}):[]};}):[]:[]})[_0x32a2('0x20')](function(_0x4f4aac){logger[_0x32a2('0xe')](_0x32a2('0x16'),_0x38502b);logger[_0x32a2('0x21')](_0x32a2('0x16'),_0x38502b,JSON[_0x32a2('0x11')](_0x4f4aac));_0x3f47ef(_0x4f4aac);})['catch'](function(_0x3f67a1){logger['error'](_0x32a2('0x16'),_0x3f67a1[_0x32a2('0x14')],_0x38502b);_0x19e8d3(_0x5b2b03[_0x32a2('0x12')](0x1f4,_0x3f67a1[_0x32a2('0x14')]));});});};exports[_0x32a2('0x22')]=function(_0x2a0569,_0x46f8b7,_0x43f6be){var _0x1cd602=this;return new Promise(function(_0x1e43ea,_0x32f971){var _0x3efc4c={'body':_0x2a0569[_0x32a2('0x23')],'channel':'fax'};var _0xcce27f=[];var _0x156609=[];var _0x4a65f6={};return db[_0x32a2('0x24')][_0x32a2('0x25')]()['then'](function(_0x587f8e){if(!_0x587f8e){throw new db['Sequelize'][(_0x32a2('0x26'))](_0x32a2('0x27'));}_0xcce27f=_['difference'](_[_0x32a2('0x28')](_0x587f8e),[_0x32a2('0x29'),'updatedAt']);_0x156609=_[_0x32a2('0x2a')](_[_0x32a2('0x28')](_0x587f8e),[_0x32a2('0x29'),_0x32a2('0x2b'),'CompanyId','ListId']);if(_0x2a0569[_0x32a2('0x23')]['id']){delete _0x2a0569[_0x32a2('0x23')]['id'];}if(_[_0x32a2('0x2c')](_0x2a0569[_0x32a2('0x23')]['from'])){throw new db['Sequelize']['ValidationError'](_0x32a2('0x2d'));}if(_[_0x32a2('0x2c')](_0x2a0569[_0x32a2('0x23')]['body'])||_0x2a0569[_0x32a2('0x23')][_0x32a2('0x23')]===''){throw new db[(_0x32a2('0x2e'))][(_0x32a2('0x26'))](_0x32a2('0x2f'));}if(_[_0x32a2('0x2c')](_0x2a0569[_0x32a2('0x23')][_0x32a2('0x30')])){throw new db[(_0x32a2('0x2e'))]['ValidationError']('mapKey\x20is\x20mandatory,\x20please\x20use\x20one\x20of\x20these:\x20'+_0x156609);}if(!_[_0x32a2('0x31')](_0x156609,_0x2a0569[_0x32a2('0x23')]['mapKey'])){throw new db['Sequelize'][(_0x32a2('0x26'))](_0x32a2('0x32')+_0x156609);}_0x4a65f6[_0x2a0569[_0x32a2('0x23')][_0x32a2('0x30')]]=_0x2a0569[_0x32a2('0x23')][_0x32a2('0x33')];})[_0x32a2('0x20')](function(){return db[_0x32a2('0x34')][_0x32a2('0x35')]({'where':{'id':_0x2a0569[_0x32a2('0x36')]['id']},'include':[{'model':db[_0x32a2('0x37')],'as':_0x32a2('0x38'),'include':[{'model':db['CmContact'],'as':'Contacts','where':_0x4a65f6,'limit':0x1,'order':[[_0x32a2('0x2b'),_0x32a2('0x39')]]}]},{'model':db[_0x32a2('0x3a')],'as':_0x32a2('0x3b')}]});})['then'](function(_0x244fd0){if(_0x244fd0&&_0x244fd0[_0x32a2('0x38')]){var _0x51a8b9=_0x244fd0['get']({'plain':!![]});_0x3efc4c[_0x32a2('0x36')]=_0x51a8b9;_0x3efc4c[_0x32a2('0x3c')]=_0x51a8b9['Applications'];_0x3efc4c[_0x32a2('0x3d')]=_0x51a8b9[_0x32a2('0x38')];_0x3efc4c[_0x32a2('0x3c')]=_[_0x32a2('0x3e')](_0x3efc4c[_0x32a2('0x3c')],[_0x32a2('0x3f')],[_0x32a2('0x40')]);if(_0x3efc4c[_0x32a2('0x36')][_0x32a2('0x3b')]){delete _0x3efc4c[_0x32a2('0x36')][_0x32a2('0x3b')];}if(_0x3efc4c[_0x32a2('0x36')][_0x32a2('0x38')]&&_0x3efc4c[_0x32a2('0x36')][_0x32a2('0x38')][_0x32a2('0x41')][_0x32a2('0x42')]){return _0x3efc4c[_0x32a2('0x36')]['List'][_0x32a2('0x41')][0x0];}var _0x237c2c=_['defaults'](_0x2a0569[_0x32a2('0x23')],{'firstName':_0x2a0569[_0x32a2('0x23')][_0x32a2('0x33')],'ListId':_0x51a8b9['ListId']});_0x237c2c[_0x2a0569[_0x32a2('0x23')][_0x32a2('0x30')]]=_0x2a0569[_0x32a2('0x23')][_0x32a2('0x33')];return db['CmContact'][_0x32a2('0x43')](_0x237c2c,{'fields':_0xcce27f,'raw':!![]});}})['then'](function(_0x120ac6){_0x3efc4c['contact']=_0x120ac6;if(_0x120ac6){var _0x33ce75={'ContactId':_0x120ac6['id'],'FaxAccountId':_0x2a0569[_0x32a2('0x36')]['id'],'fax':_0x120ac6['fax']};return db[_0x32a2('0x44')][_0x32a2('0x35')]({'where':{'ContactId':_0x120ac6['id'],'closed':![],'FaxAccountId':_0x2a0569['account']['id']}})['then'](function(_0x54ca2b){if(_0x54ca2b){return[_0x54ca2b,![]];}return db['FaxInteraction']['create'](_0x33ce75)[_0x32a2('0x20')](function(_0x1e90d0){return[_0x1e90d0,!![]];});});}else{throw new Error(_0x32a2('0x45'));}})[_0x32a2('0x46')](function(_0x419fd7,_0x1a96b4){var _0x4051d6=_0x419fd7[_0x32a2('0x47')]({'plain':!![]});if(_0x1a96b4){if(_0x3efc4c[_0x32a2('0x36')]['autoclose']){_0x3efc4c['applications'][_0x32a2('0x48')]({'id':0x0,'priority':_0x3efc4c[_0x32a2('0x3c')][_0x32a2('0x42')]+0x1,'app':_0x32a2('0x49'),'appdata':_0x32a2('0x4a'),'interval':_0x32a2('0x4b')});}_0x4051d6['created']=!![];}else{_0x4051d6['created']=![];}_0x3efc4c[_0x32a2('0x4c')]=_0x4051d6;return db[_0x32a2('0x4d')]['create']({'body':_0x2a0569['body'][_0x32a2('0x23')],'FaxAccountId':_0x2a0569[_0x32a2('0x36')]['id'],'FaxInteractionId':_0x419fd7['id'],'direction':'in','ContactId':_0x419fd7['ContactId'],'AttachmentId':_0x2a0569[_0x32a2('0x23')][_0x32a2('0x4e')]});})[_0x32a2('0x20')](function(_0x1070be){_0x3efc4c[_0x32a2('0x14')]=_0x1070be;if(_0x3efc4c[_0x32a2('0x4c')][_0x32a2('0x4f')]){return db['User'][_0x32a2('0x35')]({'attributes':['id',_0x32a2('0x50')],'where':{'id':_0x3efc4c[_0x32a2('0x4c')][_0x32a2('0x4f')]}})['then'](function(_0x512416){if(_0x512416){_0x3efc4c[_0x32a2('0x3c')][_0x32a2('0x51')]({'id':0x0,'priority':0x0,'app':'agent','appdata':_0x512416['name']+','+(_0x3efc4c[_0x32a2('0x36')][_0x32a2('0x52')]||0xa),'interval':_0x32a2('0x4b')});}return respondWithRpcPromise(_0x32a2('0x53'),_0x32a2('0x54'),_0x3efc4c);});}return respondWithRpcPromise('Start',_0x32a2('0x54'),_0x3efc4c);})[_0x32a2('0x20')](function(_0x2abc42){_0x1e43ea(_0x2abc42);})['catch'](function(_0x4ef077){_0x32f971(_0x1cd602[_0x32a2('0x12')](0x1f4,_0x4ef077['message']));});});};