Built motion from commit 497d3d92.|2.5.43
[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 _0x9658=['close','unmanaged','created','interaction','FaxMessage','create','ContactId','AttachmentId','User','UserId','agent','waitForTheAssignedAgent','*,*,*,*','Start','startRouting','lodash','moment','bluebird','randomstring','../../mysqldb','../../config/utils','../../config/logger','rpc','jayson/promise','client','redis','localhost','socket.io-emitter','./faxAccount.socket','register','request','then','info','FaxAccount,\x20%s,\x20%s','FaxAccount,\x20%s,\x20%s,\x20%s','request\x20sent','error','message','catch','GetFaxAccount','FaxAccount','findAll','options','raw','attributes','limit','include','model','map','debug','stringify','NotifyFaxAccount','fax','CmContact','describe','Sequelize','ValidationError','no\x20available\x20attributes','difference','keys','createdAt','updatedAt','ListId','body','from\x20is\x20mandatory','isNil','body\x20is\x20mandatory\x20and\x20not\x20empty','mapKey','mapKey\x20is\x20mandatory,\x20please\x20use\x20one\x20of\x20these:\x20','mapKey\x20invalid,\x20please\x20use\x20one\x20of\x20these:\x20','account','CmList','List','Contacts','DESC','Applications','list','applications','orderBy','priority','asc','length','from','contact','FaxInteraction','find','Contact\x20not\x20found','spread','get','autoclose','push'];(function(_0x1e9913,_0x5441f4){var _0x54c0f2=function(_0x114c2c){while(--_0x114c2c){_0x1e9913['push'](_0x1e9913['shift']());}};_0x54c0f2(++_0x5441f4);}(_0x9658,0x17b));var _0x8965=function(_0x2d2e85,_0x22faa9){_0x2d2e85=_0x2d2e85-0x0;var _0x3e9f5e=_0x9658[_0x2d2e85];return _0x3e9f5e;};'use strict';var _=require(_0x8965('0x0'));var util=require('util');var moment=require(_0x8965('0x1'));var BPromise=require(_0x8965('0x2'));var rs=require(_0x8965('0x3'));var fs=require('fs');var Redis=require('ioredis');var db=require(_0x8965('0x4'))['db'];var utils=require(_0x8965('0x5'));var logger=require(_0x8965('0x6'))(_0x8965('0x7'));var config=require('../../config/environment');var jayson=require(_0x8965('0x8'));var client=jayson[_0x8965('0x9')]['http']({'port':0x232c});config['redis']=_['defaults'](config[_0x8965('0xa')],{'host':_0x8965('0xb'),'port':0x18eb});var socket=require(_0x8965('0xc'))(new Redis(config[_0x8965('0xa')]));require(_0x8965('0xd'))[_0x8965('0xe')](socket);function respondWithRpcPromise(_0x4d826d,_0x4a306f,_0xeaa0ba){return new BPromise(function(_0x2ead6d,_0x3f0816){return client[_0x8965('0xf')](_0x4d826d,_0xeaa0ba)[_0x8965('0x10')](function(_0x5f354d){logger[_0x8965('0x11')](_0x8965('0x12'),_0x4a306f,'request\x20sent');logger['debug'](_0x8965('0x13'),_0x4a306f,_0x8965('0x14'),JSON['stringify'](_0x5f354d));if(_0x5f354d[_0x8965('0x15')]){if(_0x5f354d['error']['code']===0x1f4){logger[_0x8965('0x15')](_0x8965('0x12'),_0x4a306f,_0x5f354d['error'][_0x8965('0x16')]);return _0x3f0816(_0x5f354d[_0x8965('0x15')]['message']);}logger[_0x8965('0x15')](_0x8965('0x12'),_0x4a306f,_0x5f354d['error'][_0x8965('0x16')]);return _0x2ead6d(_0x5f354d[_0x8965('0x15')][_0x8965('0x16')]);}else{logger[_0x8965('0x11')]('FaxAccount,\x20%s,\x20%s',_0x4a306f,_0x8965('0x14'));_0x2ead6d(_0x5f354d['result'][_0x8965('0x16')]);}})[_0x8965('0x17')](function(_0x5ed676){logger[_0x8965('0x15')]('FaxAccount,\x20%s,\x20%s',_0x4a306f,_0x5ed676);_0x3f0816(_0x5ed676);});});}exports[_0x8965('0x18')]=function(_0x5df76c){var _0x1c70a7=this;return new Promise(function(_0x3ef710,_0x2c62d0){return db[_0x8965('0x19')][_0x8965('0x1a')]({'raw':_0x5df76c[_0x8965('0x1b')]?_0x5df76c[_0x8965('0x1b')][_0x8965('0x1c')]===undefined?!![]:![]:!![],'where':_0x5df76c['options']?_0x5df76c[_0x8965('0x1b')]['where']||null:null,'attributes':_0x5df76c[_0x8965('0x1b')]?_0x5df76c[_0x8965('0x1b')][_0x8965('0x1d')]||null:null,'limit':_0x5df76c[_0x8965('0x1b')]?_0x5df76c[_0x8965('0x1b')][_0x8965('0x1e')]||null:null,'include':_0x5df76c[_0x8965('0x1b')]?_0x5df76c['options'][_0x8965('0x1f')]?_['map'](_0x5df76c[_0x8965('0x1b')][_0x8965('0x1f')],function(_0x4a1897){return{'model':db[_0x4a1897[_0x8965('0x20')]],'as':_0x4a1897['as'],'attributes':_0x4a1897[_0x8965('0x1d')],'include':_0x4a1897[_0x8965('0x1f')]?_[_0x8965('0x21')](_0x4a1897[_0x8965('0x1f')],function(_0x1a7e18){return{'model':db[_0x1a7e18[_0x8965('0x20')]],'as':_0x1a7e18['as'],'attributes':_0x1a7e18[_0x8965('0x1d')],'include':_0x1a7e18[_0x8965('0x1f')]?_[_0x8965('0x21')](_0x1a7e18[_0x8965('0x1f')],function(_0x1b0648){return{'model':db[_0x1b0648[_0x8965('0x20')]],'as':_0x1b0648['as'],'attributes':_0x1b0648[_0x8965('0x1d')]};}):[]};}):[]};}):[]:[]})['then'](function(_0xa97bdb){logger[_0x8965('0x11')](_0x8965('0x18'),_0x5df76c);logger[_0x8965('0x22')]('GetFaxAccount',_0x5df76c,JSON[_0x8965('0x23')](_0xa97bdb));_0x3ef710(_0xa97bdb);})['catch'](function(_0x5e50fe){logger[_0x8965('0x15')](_0x8965('0x18'),_0x5e50fe[_0x8965('0x16')],_0x5df76c);_0x2c62d0(_0x1c70a7['error'](0x1f4,_0x5e50fe[_0x8965('0x16')]));});});};exports[_0x8965('0x24')]=function(_0x4679ae,_0x18141a,_0x30320f){var _0x589c55=this;return new Promise(function(_0x5a129d,_0x5740c0){var _0x1068eb={'body':_0x4679ae['body'],'channel':_0x8965('0x25')};var _0x5d410c=[];var _0x30ca11=[];var _0xefdebf={};return db[_0x8965('0x26')][_0x8965('0x27')]()[_0x8965('0x10')](function(_0x538f61){if(!_0x538f61){throw new db[(_0x8965('0x28'))][(_0x8965('0x29'))](_0x8965('0x2a'));}_0x5d410c=_[_0x8965('0x2b')](_[_0x8965('0x2c')](_0x538f61),[_0x8965('0x2d'),'updatedAt']);_0x30ca11=_[_0x8965('0x2b')](_['keys'](_0x538f61),[_0x8965('0x2d'),_0x8965('0x2e'),'CompanyId',_0x8965('0x2f')]);if(_0x4679ae[_0x8965('0x30')]['id']){delete _0x4679ae[_0x8965('0x30')]['id'];}if(_['isNil'](_0x4679ae['body']['from'])){throw new db['Sequelize'][(_0x8965('0x29'))](_0x8965('0x31'));}if(_[_0x8965('0x32')](_0x4679ae[_0x8965('0x30')][_0x8965('0x30')])||_0x4679ae[_0x8965('0x30')][_0x8965('0x30')]===''){throw new db['Sequelize'][(_0x8965('0x29'))](_0x8965('0x33'));}if(_[_0x8965('0x32')](_0x4679ae[_0x8965('0x30')][_0x8965('0x34')])){throw new db[(_0x8965('0x28'))]['ValidationError'](_0x8965('0x35')+_0x30ca11);}if(!_['includes'](_0x30ca11,_0x4679ae['body'][_0x8965('0x34')])){throw new db[(_0x8965('0x28'))][(_0x8965('0x29'))](_0x8965('0x36')+_0x30ca11);}_0xefdebf[_0x4679ae[_0x8965('0x30')][_0x8965('0x34')]]=_0x4679ae[_0x8965('0x30')]['from'];})[_0x8965('0x10')](function(){return db[_0x8965('0x19')]['find']({'where':{'id':_0x4679ae[_0x8965('0x37')]['id']},'include':[{'model':db[_0x8965('0x38')],'as':_0x8965('0x39'),'include':[{'model':db[_0x8965('0x26')],'as':_0x8965('0x3a'),'where':_0xefdebf,'limit':0x1,'order':[[_0x8965('0x2e'),_0x8965('0x3b')]]}]},{'model':db['FaxApplication'],'as':_0x8965('0x3c')}]});})[_0x8965('0x10')](function(_0xfd7d7e){if(_0xfd7d7e&&_0xfd7d7e[_0x8965('0x39')]){var _0x56b063=_0xfd7d7e['get']({'plain':!![]});_0x1068eb[_0x8965('0x37')]=_0x56b063;_0x1068eb['applications']=_0x56b063[_0x8965('0x3c')];_0x1068eb[_0x8965('0x3d')]=_0x56b063[_0x8965('0x39')];_0x1068eb[_0x8965('0x3e')]=_[_0x8965('0x3f')](_0x1068eb[_0x8965('0x3e')],[_0x8965('0x40')],[_0x8965('0x41')]);if(_0x1068eb['account']['Applications']){delete _0x1068eb[_0x8965('0x37')][_0x8965('0x3c')];}if(_0x1068eb['account'][_0x8965('0x39')]&&_0x1068eb['account']['List']['Contacts'][_0x8965('0x42')]){return _0x1068eb[_0x8965('0x37')]['List'][_0x8965('0x3a')][0x0];}var _0x4d2344=_['defaults'](_0x4679ae['body'],{'firstName':_0x4679ae[_0x8965('0x30')][_0x8965('0x43')],'ListId':_0x56b063['ListId']});_0x4d2344[_0x4679ae[_0x8965('0x30')][_0x8965('0x34')]]=_0x4679ae[_0x8965('0x30')][_0x8965('0x43')];return db['CmContact']['create'](_0x4d2344,{'fields':_0x5d410c,'raw':!![]});}})[_0x8965('0x10')](function(_0x21c6ac){_0x1068eb[_0x8965('0x44')]=_0x21c6ac;if(_0x21c6ac){var _0x424c1f={'ContactId':_0x21c6ac['id'],'FaxAccountId':_0x4679ae['account']['id'],'fax':_0x21c6ac[_0x8965('0x25')]};return db[_0x8965('0x45')][_0x8965('0x46')]({'where':{'ContactId':_0x21c6ac['id'],'closed':![],'FaxAccountId':_0x4679ae[_0x8965('0x37')]['id']}})[_0x8965('0x10')](function(_0x3cc8c8){if(_0x3cc8c8){return[_0x3cc8c8,![]];}return db['FaxInteraction']['create'](_0x424c1f)[_0x8965('0x10')](function(_0x447eb4){return[_0x447eb4,!![]];});});}else{throw new Error(_0x8965('0x47'));}})[_0x8965('0x48')](function(_0x7de4ce,_0x2e702d){var _0x3a80ce=_0x7de4ce[_0x8965('0x49')]({'plain':!![]});if(_0x2e702d){if(_0x1068eb['account'][_0x8965('0x4a')]){_0x1068eb['applications'][_0x8965('0x4b')]({'id':0x0,'priority':_0x1068eb[_0x8965('0x3e')][_0x8965('0x42')]+0x1,'app':_0x8965('0x4c'),'appdata':_0x8965('0x4d'),'interval':'*,*,*,*'});}_0x3a80ce['created']=!![];}else{_0x3a80ce[_0x8965('0x4e')]=![];}_0x1068eb[_0x8965('0x4f')]=_0x3a80ce;return db[_0x8965('0x50')][_0x8965('0x51')]({'body':_0x4679ae[_0x8965('0x30')][_0x8965('0x30')],'FaxAccountId':_0x4679ae['account']['id'],'FaxInteractionId':_0x7de4ce['id'],'direction':'in','ContactId':_0x7de4ce[_0x8965('0x52')],'AttachmentId':_0x4679ae[_0x8965('0x30')][_0x8965('0x53')]});})[_0x8965('0x10')](function(_0xd0a444){_0x1068eb[_0x8965('0x16')]=_0xd0a444;if(_0x1068eb['interaction']['UserId']){return db[_0x8965('0x54')][_0x8965('0x46')]({'attributes':['id','name'],'where':{'id':_0x1068eb[_0x8965('0x4f')][_0x8965('0x55')]}})['then'](function(_0x19b95a){if(_0x19b95a){_0x1068eb[_0x8965('0x3e')]['unshift']({'id':0x0,'priority':0x0,'app':_0x8965('0x56'),'appdata':_0x19b95a['name']+','+(_0x1068eb[_0x8965('0x37')][_0x8965('0x57')]||0xa),'interval':_0x8965('0x58')});}return respondWithRpcPromise(_0x8965('0x59'),_0x8965('0x5a'),_0x1068eb);});}return respondWithRpcPromise(_0x8965('0x59'),_0x8965('0x5a'),_0x1068eb);})[_0x8965('0x10')](function(_0x19be0a){_0x5a129d(_0x19be0a);})[_0x8965('0x17')](function(_0x500597){_0x5740c0(_0x589c55[_0x8965('0x15')](0x1f4,_0x500597[_0x8965('0x16')]));});});};