Built motion from commit 00bf23f6.|2.6.16
[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 _0x40d0=['options','raw','where','attributes','limit','include','map','model','GetFaxAccount','debug','stringify','NotifyFaxAccount','fax','CmContact','describe','Sequelize','ValidationError','no\x20available\x20attributes','difference','createdAt','keys','updatedAt','ListId','body','from','from\x20is\x20mandatory','body\x20is\x20mandatory\x20and\x20not\x20empty','mapKey','mapKey\x20is\x20mandatory,\x20please\x20use\x20one\x20of\x20these:\x20','includes','mapKey\x20invalid,\x20please\x20use\x20one\x20of\x20these:\x20','FaxAccount','find','account','List','DESC','FaxApplication','get','applications','list','orderBy','priority','asc','Applications','length','Contacts','create','contact','FaxInteraction','Contact\x20not\x20found','spread','autoclose','push','close','*,*,*,*','created','interaction','FaxMessage','ContactId','AttachmentId','UserId','User','unshift','agent','waitForTheAssignedAgent','Start','startRouting','util','moment','../../config/utils','../../config/logger','../../config/environment','client','http','redis','defaults','localhost','socket.io-emitter','request','then','FaxAccount,\x20%s,\x20%s,\x20%s','request\x20sent','error','FaxAccount,\x20%s,\x20%s','message','info','result','catch','findAll'];(function(_0x511cb9,_0x5b4847){var _0x4927fe=function(_0x207859){while(--_0x207859){_0x511cb9['push'](_0x511cb9['shift']());}};_0x4927fe(++_0x5b4847);}(_0x40d0,0xf5));var _0x040d=function(_0x2204db,_0x5e00e5){_0x2204db=_0x2204db-0x0;var _0x30e9f6=_0x40d0[_0x2204db];return _0x30e9f6;};'use strict';var _=require('lodash');var util=require(_0x040d('0x0'));var moment=require(_0x040d('0x1'));var BPromise=require('bluebird');var rs=require('randomstring');var fs=require('fs');var Redis=require('ioredis');var db=require('../../mysqldb')['db'];var utils=require(_0x040d('0x2'));var logger=require(_0x040d('0x3'))('rpc');var config=require(_0x040d('0x4'));var jayson=require('jayson/promise');var client=jayson[_0x040d('0x5')][_0x040d('0x6')]({'port':0x232c});config[_0x040d('0x7')]=_[_0x040d('0x8')](config[_0x040d('0x7')],{'host':_0x040d('0x9'),'port':0x18eb});var socket=require(_0x040d('0xa'))(new Redis(config['redis']));require('./faxAccount.socket')['register'](socket);function respondWithRpcPromise(_0x41d767,_0x18a1c0,_0x489a5c){return new BPromise(function(_0x54b6c9,_0xcb39a4){return client[_0x040d('0xb')](_0x41d767,_0x489a5c)[_0x040d('0xc')](function(_0x2748dc){logger['info']('FaxAccount,\x20%s,\x20%s',_0x18a1c0,'request\x20sent');logger['debug'](_0x040d('0xd'),_0x18a1c0,_0x040d('0xe'),JSON['stringify'](_0x2748dc));if(_0x2748dc[_0x040d('0xf')]){if(_0x2748dc[_0x040d('0xf')]['code']===0x1f4){logger[_0x040d('0xf')](_0x040d('0x10'),_0x18a1c0,_0x2748dc['error']['message']);return _0xcb39a4(_0x2748dc[_0x040d('0xf')][_0x040d('0x11')]);}logger['error'](_0x040d('0x10'),_0x18a1c0,_0x2748dc[_0x040d('0xf')][_0x040d('0x11')]);return _0x54b6c9(_0x2748dc[_0x040d('0xf')][_0x040d('0x11')]);}else{logger[_0x040d('0x12')](_0x040d('0x10'),_0x18a1c0,_0x040d('0xe'));_0x54b6c9(_0x2748dc[_0x040d('0x13')]['message']);}})[_0x040d('0x14')](function(_0x4ac2d6){logger[_0x040d('0xf')](_0x040d('0x10'),_0x18a1c0,_0x4ac2d6);_0xcb39a4(_0x4ac2d6);});});}exports['GetFaxAccount']=function(_0x5dfa95){var _0x23a696=this;return new Promise(function(_0x410531,_0x591d55){return db['FaxAccount'][_0x040d('0x15')]({'raw':_0x5dfa95[_0x040d('0x16')]?_0x5dfa95[_0x040d('0x16')][_0x040d('0x17')]===undefined?!![]:![]:!![],'where':_0x5dfa95[_0x040d('0x16')]?_0x5dfa95[_0x040d('0x16')][_0x040d('0x18')]||null:null,'attributes':_0x5dfa95[_0x040d('0x16')]?_0x5dfa95[_0x040d('0x16')][_0x040d('0x19')]||null:null,'limit':_0x5dfa95['options']?_0x5dfa95[_0x040d('0x16')][_0x040d('0x1a')]||null:null,'include':_0x5dfa95[_0x040d('0x16')]?_0x5dfa95['options'][_0x040d('0x1b')]?_[_0x040d('0x1c')](_0x5dfa95[_0x040d('0x16')]['include'],function(_0x20da2f){return{'model':db[_0x20da2f[_0x040d('0x1d')]],'as':_0x20da2f['as'],'attributes':_0x20da2f[_0x040d('0x19')],'include':_0x20da2f[_0x040d('0x1b')]?_[_0x040d('0x1c')](_0x20da2f[_0x040d('0x1b')],function(_0x415e65){return{'model':db[_0x415e65[_0x040d('0x1d')]],'as':_0x415e65['as'],'attributes':_0x415e65[_0x040d('0x19')],'include':_0x415e65['include']?_[_0x040d('0x1c')](_0x415e65['include'],function(_0xe4cd3f){return{'model':db[_0xe4cd3f['model']],'as':_0xe4cd3f['as'],'attributes':_0xe4cd3f[_0x040d('0x19')]};}):[]};}):[]};}):[]:[]})[_0x040d('0xc')](function(_0x55df29){logger[_0x040d('0x12')](_0x040d('0x1e'),_0x5dfa95);logger[_0x040d('0x1f')]('GetFaxAccount',_0x5dfa95,JSON[_0x040d('0x20')](_0x55df29));_0x410531(_0x55df29);})[_0x040d('0x14')](function(_0x362c18){logger[_0x040d('0xf')](_0x040d('0x1e'),_0x362c18['message'],_0x5dfa95);_0x591d55(_0x23a696['error'](0x1f4,_0x362c18['message']));});});};exports[_0x040d('0x21')]=function(_0x587eaf,_0x44086a,_0x4a8c27){var _0x3b16be=this;return new Promise(function(_0x54ff26,_0x4d96ab){var _0x4cc488={'body':_0x587eaf['body'],'channel':_0x040d('0x22')};var _0x4189db=[];var _0x2848d9=[];var _0x515a6c={};return db[_0x040d('0x23')][_0x040d('0x24')]()[_0x040d('0xc')](function(_0x24ecc3){if(!_0x24ecc3){throw new db[(_0x040d('0x25'))][(_0x040d('0x26'))](_0x040d('0x27'));}_0x4189db=_[_0x040d('0x28')](_['keys'](_0x24ecc3),[_0x040d('0x29'),'updatedAt']);_0x2848d9=_['difference'](_[_0x040d('0x2a')](_0x24ecc3),[_0x040d('0x29'),_0x040d('0x2b'),'CompanyId',_0x040d('0x2c')]);if(_0x587eaf['body']['id']){delete _0x587eaf[_0x040d('0x2d')]['id'];}if(_['isNil'](_0x587eaf['body'][_0x040d('0x2e')])){throw new db[(_0x040d('0x25'))][(_0x040d('0x26'))](_0x040d('0x2f'));}if(_['isNil'](_0x587eaf[_0x040d('0x2d')][_0x040d('0x2d')])||_0x587eaf[_0x040d('0x2d')][_0x040d('0x2d')]===''){throw new db['Sequelize']['ValidationError'](_0x040d('0x30'));}if(_['isNil'](_0x587eaf['body'][_0x040d('0x31')])){throw new db['Sequelize'][(_0x040d('0x26'))](_0x040d('0x32')+_0x2848d9);}if(!_[_0x040d('0x33')](_0x2848d9,_0x587eaf[_0x040d('0x2d')][_0x040d('0x31')])){throw new db['Sequelize'][(_0x040d('0x26'))](_0x040d('0x34')+_0x2848d9);}_0x515a6c[_0x587eaf[_0x040d('0x2d')][_0x040d('0x31')]]=_0x587eaf[_0x040d('0x2d')][_0x040d('0x2e')];})[_0x040d('0xc')](function(){return db[_0x040d('0x35')][_0x040d('0x36')]({'where':{'id':_0x587eaf[_0x040d('0x37')]['id']},'include':[{'model':db['CmList'],'as':_0x040d('0x38'),'include':[{'model':db['CmContact'],'as':'Contacts','where':_0x515a6c,'limit':0x1,'order':[['updatedAt',_0x040d('0x39')]]}]},{'model':db[_0x040d('0x3a')],'as':'Applications'}]});})['then'](function(_0x58611e){if(_0x58611e&&_0x58611e[_0x040d('0x38')]){var _0x52c49b=_0x58611e[_0x040d('0x3b')]({'plain':!![]});_0x4cc488[_0x040d('0x37')]=_0x52c49b;_0x4cc488[_0x040d('0x3c')]=_0x52c49b['Applications'];_0x4cc488[_0x040d('0x3d')]=_0x52c49b[_0x040d('0x38')];_0x4cc488[_0x040d('0x3c')]=_[_0x040d('0x3e')](_0x4cc488[_0x040d('0x3c')],[_0x040d('0x3f')],[_0x040d('0x40')]);if(_0x4cc488[_0x040d('0x37')][_0x040d('0x41')]){delete _0x4cc488[_0x040d('0x37')]['Applications'];}if(_0x4cc488[_0x040d('0x37')][_0x040d('0x38')]&&_0x4cc488['account']['List']['Contacts'][_0x040d('0x42')]){return _0x4cc488[_0x040d('0x37')][_0x040d('0x38')][_0x040d('0x43')][0x0];}var _0xe1c3df=_['defaults'](_0x587eaf[_0x040d('0x2d')],{'firstName':_0x587eaf[_0x040d('0x2d')][_0x040d('0x2e')],'ListId':_0x52c49b[_0x040d('0x2c')]});_0xe1c3df[_0x587eaf['body'][_0x040d('0x31')]]=_0x587eaf[_0x040d('0x2d')][_0x040d('0x2e')];return db['CmContact'][_0x040d('0x44')](_0xe1c3df,{'fields':_0x4189db,'raw':!![]});}})['then'](function(_0xd7b66e){_0x4cc488[_0x040d('0x45')]=_0xd7b66e;if(_0xd7b66e){var _0x511d01={'ContactId':_0xd7b66e['id'],'FaxAccountId':_0x587eaf[_0x040d('0x37')]['id'],'fax':_0xd7b66e[_0x040d('0x22')]};return db[_0x040d('0x46')][_0x040d('0x36')]({'where':{'ContactId':_0xd7b66e['id'],'closed':![],'FaxAccountId':_0x587eaf['account']['id']}})['then'](function(_0xa7fc5e){if(_0xa7fc5e){return[_0xa7fc5e,![]];}return db[_0x040d('0x46')][_0x040d('0x44')](_0x511d01)[_0x040d('0xc')](function(_0xeb4077){return[_0xeb4077,!![]];});});}else{throw new Error(_0x040d('0x47'));}})[_0x040d('0x48')](function(_0x1dba52,_0x448d78){var _0x454e6f=_0x1dba52['get']({'plain':!![]});if(_0x448d78){if(_0x4cc488[_0x040d('0x37')][_0x040d('0x49')]){_0x4cc488[_0x040d('0x3c')][_0x040d('0x4a')]({'id':0x0,'priority':_0x4cc488[_0x040d('0x3c')]['length']+0x1,'app':_0x040d('0x4b'),'appdata':'unmanaged','interval':_0x040d('0x4c')});}_0x454e6f[_0x040d('0x4d')]=!![];}else{_0x454e6f[_0x040d('0x4d')]=![];}_0x4cc488[_0x040d('0x4e')]=_0x454e6f;return db[_0x040d('0x4f')][_0x040d('0x44')]({'body':_0x587eaf[_0x040d('0x2d')][_0x040d('0x2d')],'FaxAccountId':_0x587eaf['account']['id'],'FaxInteractionId':_0x1dba52['id'],'direction':'in','ContactId':_0x1dba52[_0x040d('0x50')],'AttachmentId':_0x587eaf[_0x040d('0x2d')][_0x040d('0x51')]});})[_0x040d('0xc')](function(_0x4e14a9){_0x4cc488['message']=_0x4e14a9;if(_0x4cc488[_0x040d('0x4e')][_0x040d('0x52')]){return db[_0x040d('0x53')][_0x040d('0x36')]({'attributes':['id','name'],'where':{'id':_0x4cc488[_0x040d('0x4e')]['UserId']}})['then'](function(_0x11b983){if(_0x11b983){_0x4cc488[_0x040d('0x3c')][_0x040d('0x54')]({'id':0x0,'priority':0x0,'app':_0x040d('0x55'),'appdata':_0x11b983['name']+','+(_0x4cc488[_0x040d('0x37')][_0x040d('0x56')]||0xa),'interval':_0x040d('0x4c')});}return respondWithRpcPromise(_0x040d('0x57'),_0x040d('0x58'),_0x4cc488);});}return respondWithRpcPromise(_0x040d('0x57'),_0x040d('0x58'),_0x4cc488);})[_0x040d('0xc')](function(_0xd8116d){_0x54ff26(_0xd8116d);})[_0x040d('0x14')](function(_0xb8500){_0x4d96ab(_0x3b16be[_0x040d('0xf')](0x1f4,_0xb8500[_0x040d('0x11')]));});});};