Built motion from commit (unavailable).|2.4.20
[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 _0x6dca=['GetFaxAccount','stringify','CmContact','describe','Sequelize','ValidationError','difference','keys','updatedAt','createdAt','CompanyId','ListId','body','isNil','from','from\x20is\x20mandatory','body\x20is\x20mandatory\x20and\x20not\x20empty','mapKey','mapKey\x20is\x20mandatory,\x20please\x20use\x20one\x20of\x20these:\x20','find','account','CmList','List','Contacts','DESC','Applications','list','applications','orderBy','priority','asc','create','contact','FaxInteraction','Contact\x20not\x20found','get','autoclose','push','length','close','unmanaged','*,*,*,*','created','interaction','FaxMessage','ContactId','AttachmentId','UserId','User','name','unshift','waitForTheAssignedAgent','Start','startRouting','lodash','util','bluebird','randomstring','ioredis','../../config/logger','rpc','../../config/environment','jayson/promise','http','redis','defaults','localhost','socket.io-emitter','./faxAccount.socket','request','then','info','debug','FaxAccount,\x20%s,\x20%s,\x20%s','request\x20sent','error','message','catch','FaxAccount,\x20%s,\x20%s','FaxAccount','options','raw','where','attributes','map','include','model'];(function(_0x33df84,_0x5825d1){var _0x42e95e=function(_0x1858ba){while(--_0x1858ba){_0x33df84['push'](_0x33df84['shift']());}};_0x42e95e(++_0x5825d1);}(_0x6dca,0x8d));var _0xa6dc=function(_0x4d6166,_0xcf8741){_0x4d6166=_0x4d6166-0x0;var _0x2c403c=_0x6dca[_0x4d6166];return _0x2c403c;};'use strict';var _=require(_0xa6dc('0x0'));var util=require(_0xa6dc('0x1'));var moment=require('moment');var BPromise=require(_0xa6dc('0x2'));var rs=require(_0xa6dc('0x3'));var fs=require('fs');var Redis=require(_0xa6dc('0x4'));var db=require('../../mysqldb')['db'];var utils=require('../../config/utils');var logger=require(_0xa6dc('0x5'))(_0xa6dc('0x6'));var config=require(_0xa6dc('0x7'));var jayson=require(_0xa6dc('0x8'));var client=jayson['client'][_0xa6dc('0x9')]({'port':0x232c});config[_0xa6dc('0xa')]=_[_0xa6dc('0xb')](config[_0xa6dc('0xa')],{'host':_0xa6dc('0xc'),'port':0x18eb});var socket=require(_0xa6dc('0xd'))(new Redis(config[_0xa6dc('0xa')]));require(_0xa6dc('0xe'))['register'](socket);function respondWithRpcPromise(_0x2b5ee3,_0x6c3c9d,_0x27b0bb){return new BPromise(function(_0x343da4,_0x2be0f0){return client[_0xa6dc('0xf')](_0x2b5ee3,_0x27b0bb)[_0xa6dc('0x10')](function(_0x2f1a1e){logger[_0xa6dc('0x11')]('FaxAccount,\x20%s,\x20%s',_0x6c3c9d,'request\x20sent');logger[_0xa6dc('0x12')](_0xa6dc('0x13'),_0x6c3c9d,_0xa6dc('0x14'),JSON['stringify'](_0x2f1a1e));if(_0x2f1a1e[_0xa6dc('0x15')]){if(_0x2f1a1e['error']['code']===0x1f4){logger['error']('FaxAccount,\x20%s,\x20%s',_0x6c3c9d,_0x2f1a1e['error'][_0xa6dc('0x16')]);return _0x2be0f0(_0x2f1a1e['error'][_0xa6dc('0x16')]);}logger[_0xa6dc('0x15')]('FaxAccount,\x20%s,\x20%s',_0x6c3c9d,_0x2f1a1e[_0xa6dc('0x15')][_0xa6dc('0x16')]);return _0x343da4(_0x2f1a1e[_0xa6dc('0x15')][_0xa6dc('0x16')]);}else{logger[_0xa6dc('0x11')]('FaxAccount,\x20%s,\x20%s',_0x6c3c9d,'request\x20sent');_0x343da4(_0x2f1a1e['result'][_0xa6dc('0x16')]);}})[_0xa6dc('0x17')](function(_0x2f319d){logger[_0xa6dc('0x15')](_0xa6dc('0x18'),_0x6c3c9d,_0x2f319d);_0x2be0f0(_0x2f319d);});});}exports['GetFaxAccount']=function(_0x2e963e){var _0xe257d0=this;return new Promise(function(_0x1592dc,_0x345614){return db[_0xa6dc('0x19')]['findAll']({'raw':_0x2e963e[_0xa6dc('0x1a')]?_0x2e963e[_0xa6dc('0x1a')][_0xa6dc('0x1b')]===undefined?!![]:![]:!![],'where':_0x2e963e[_0xa6dc('0x1a')]?_0x2e963e[_0xa6dc('0x1a')][_0xa6dc('0x1c')]||null:null,'attributes':_0x2e963e[_0xa6dc('0x1a')]?_0x2e963e[_0xa6dc('0x1a')][_0xa6dc('0x1d')]||null:null,'limit':_0x2e963e[_0xa6dc('0x1a')]?_0x2e963e[_0xa6dc('0x1a')]['limit']||null:null,'include':_0x2e963e[_0xa6dc('0x1a')]?_0x2e963e['options']['include']?_[_0xa6dc('0x1e')](_0x2e963e['options'][_0xa6dc('0x1f')],function(_0x311919){return{'model':db[_0x311919[_0xa6dc('0x20')]],'as':_0x311919['as'],'attributes':_0x311919[_0xa6dc('0x1d')],'include':_0x311919[_0xa6dc('0x1f')]?_['map'](_0x311919['include'],function(_0x2db9d7){return{'model':db[_0x2db9d7['model']],'as':_0x2db9d7['as'],'attributes':_0x2db9d7[_0xa6dc('0x1d')],'include':_0x2db9d7[_0xa6dc('0x1f')]?_['map'](_0x2db9d7[_0xa6dc('0x1f')],function(_0x220365){return{'model':db[_0x220365['model']],'as':_0x220365['as'],'attributes':_0x220365[_0xa6dc('0x1d')]};}):[]};}):[]};}):[]:[]})[_0xa6dc('0x10')](function(_0x16fe7f){logger[_0xa6dc('0x11')](_0xa6dc('0x21'),_0x2e963e);logger[_0xa6dc('0x12')](_0xa6dc('0x21'),_0x2e963e,JSON[_0xa6dc('0x22')](_0x16fe7f));_0x1592dc(_0x16fe7f);})['catch'](function(_0x2d0804){logger[_0xa6dc('0x15')]('GetFaxAccount',_0x2d0804['message'],_0x2e963e);_0x345614(_0xe257d0[_0xa6dc('0x15')](0x1f4,_0x2d0804[_0xa6dc('0x16')]));});});};exports['NotifyFaxAccount']=function(_0x50ff5f,_0x466381,_0x20d615){var _0x54b534=this;return new Promise(function(_0x5baf8e,_0x152f5c){var _0x2e989b={'body':_0x50ff5f['body'],'channel':'fax'};var _0x450766=[];var _0x567132=[];var _0x4ff9d1={};return db[_0xa6dc('0x23')][_0xa6dc('0x24')]()[_0xa6dc('0x10')](function(_0x3558f5){if(!_0x3558f5){throw new db[(_0xa6dc('0x25'))][(_0xa6dc('0x26'))]('no\x20available\x20attributes');}_0x450766=_[_0xa6dc('0x27')](_[_0xa6dc('0x28')](_0x3558f5),['createdAt',_0xa6dc('0x29')]);_0x567132=_[_0xa6dc('0x27')](_[_0xa6dc('0x28')](_0x3558f5),[_0xa6dc('0x2a'),_0xa6dc('0x29'),_0xa6dc('0x2b'),_0xa6dc('0x2c')]);if(_0x50ff5f[_0xa6dc('0x2d')]['id']){delete _0x50ff5f[_0xa6dc('0x2d')]['id'];}if(_[_0xa6dc('0x2e')](_0x50ff5f[_0xa6dc('0x2d')][_0xa6dc('0x2f')])){throw new db[(_0xa6dc('0x25'))][(_0xa6dc('0x26'))](_0xa6dc('0x30'));}if(_['isNil'](_0x50ff5f[_0xa6dc('0x2d')]['body'])||_0x50ff5f[_0xa6dc('0x2d')]['body']===''){throw new db[(_0xa6dc('0x25'))][(_0xa6dc('0x26'))](_0xa6dc('0x31'));}if(_[_0xa6dc('0x2e')](_0x50ff5f[_0xa6dc('0x2d')][_0xa6dc('0x32')])){throw new db[(_0xa6dc('0x25'))][(_0xa6dc('0x26'))](_0xa6dc('0x33')+_0x567132);}if(!_['includes'](_0x567132,_0x50ff5f[_0xa6dc('0x2d')]['mapKey'])){throw new db[(_0xa6dc('0x25'))][(_0xa6dc('0x26'))]('mapKey\x20invalid,\x20please\x20use\x20one\x20of\x20these:\x20'+_0x567132);}_0x4ff9d1[_0x50ff5f[_0xa6dc('0x2d')]['mapKey']]=_0x50ff5f[_0xa6dc('0x2d')]['from'];})[_0xa6dc('0x10')](function(){return db[_0xa6dc('0x19')][_0xa6dc('0x34')]({'where':{'id':_0x50ff5f[_0xa6dc('0x35')]['id']},'include':[{'model':db[_0xa6dc('0x36')],'as':_0xa6dc('0x37'),'include':[{'model':db[_0xa6dc('0x23')],'as':_0xa6dc('0x38'),'where':_0x4ff9d1,'limit':0x1,'order':[[_0xa6dc('0x29'),_0xa6dc('0x39')]]}]},{'model':db['FaxApplication'],'as':_0xa6dc('0x3a')}]});})['then'](function(_0x1fabe6){if(_0x1fabe6&&_0x1fabe6['List']){var _0x279bf7=_0x1fabe6['get']({'plain':!![]});_0x2e989b[_0xa6dc('0x35')]=_0x279bf7;_0x2e989b['applications']=_0x279bf7['Applications'];_0x2e989b[_0xa6dc('0x3b')]=_0x279bf7[_0xa6dc('0x37')];_0x2e989b[_0xa6dc('0x3c')]=_[_0xa6dc('0x3d')](_0x2e989b[_0xa6dc('0x3c')],[_0xa6dc('0x3e')],[_0xa6dc('0x3f')]);if(_0x2e989b[_0xa6dc('0x35')]['Applications']){delete _0x2e989b['account'][_0xa6dc('0x3a')];}if(_0x2e989b[_0xa6dc('0x35')]['List']&&_0x2e989b['account'][_0xa6dc('0x37')][_0xa6dc('0x38')]['length']){return _0x2e989b[_0xa6dc('0x35')][_0xa6dc('0x37')]['Contacts'][0x0];}var _0x29501a=_['defaults'](_0x50ff5f[_0xa6dc('0x2d')],{'firstName':_0x50ff5f[_0xa6dc('0x2d')]['from'],'ListId':_0x279bf7[_0xa6dc('0x2c')]});_0x29501a[_0x50ff5f[_0xa6dc('0x2d')]['mapKey']]=_0x50ff5f[_0xa6dc('0x2d')]['from'];return db[_0xa6dc('0x23')][_0xa6dc('0x40')](_0x29501a,{'fields':_0x450766,'raw':!![]});}})[_0xa6dc('0x10')](function(_0x6a28cf){_0x2e989b[_0xa6dc('0x41')]=_0x6a28cf;if(_0x6a28cf){var _0x238167={'ContactId':_0x6a28cf['id'],'FaxAccountId':_0x50ff5f[_0xa6dc('0x35')]['id'],'fax':_0x6a28cf['fax']};return db[_0xa6dc('0x42')]['find']({'where':{'ContactId':_0x6a28cf['id'],'closed':![],'FaxAccountId':_0x50ff5f[_0xa6dc('0x35')]['id']}})[_0xa6dc('0x10')](function(_0x52b82a){if(_0x52b82a){return[_0x52b82a,![]];}return db[_0xa6dc('0x42')][_0xa6dc('0x40')](_0x238167)[_0xa6dc('0x10')](function(_0x63d3e3){return[_0x63d3e3,!![]];});});}else{throw new Error(_0xa6dc('0x43'));}})['spread'](function(_0x474188,_0x494f56){var _0x50172a=_0x474188[_0xa6dc('0x44')]({'plain':!![]});if(_0x494f56){if(_0x2e989b['account'][_0xa6dc('0x45')]){_0x2e989b[_0xa6dc('0x3c')][_0xa6dc('0x46')]({'id':0x0,'priority':_0x2e989b[_0xa6dc('0x3c')][_0xa6dc('0x47')]+0x1,'app':_0xa6dc('0x48'),'appdata':_0xa6dc('0x49'),'interval':_0xa6dc('0x4a')});}_0x50172a[_0xa6dc('0x4b')]=!![];}else{_0x50172a[_0xa6dc('0x4b')]=![];}_0x2e989b[_0xa6dc('0x4c')]=_0x50172a;return db[_0xa6dc('0x4d')][_0xa6dc('0x40')]({'body':_0x50ff5f[_0xa6dc('0x2d')]['body'],'FaxAccountId':_0x50ff5f[_0xa6dc('0x35')]['id'],'FaxInteractionId':_0x474188['id'],'direction':'in','ContactId':_0x474188[_0xa6dc('0x4e')],'AttachmentId':_0x50ff5f[_0xa6dc('0x2d')][_0xa6dc('0x4f')]});})[_0xa6dc('0x10')](function(_0x52e464){_0x2e989b['message']=_0x52e464;if(_0x2e989b[_0xa6dc('0x4c')][_0xa6dc('0x50')]){return db[_0xa6dc('0x51')]['find']({'attributes':['id',_0xa6dc('0x52')],'where':{'id':_0x2e989b[_0xa6dc('0x4c')]['UserId']}})[_0xa6dc('0x10')](function(_0x4eaa6e){if(_0x4eaa6e){_0x2e989b[_0xa6dc('0x3c')][_0xa6dc('0x53')]({'id':0x0,'priority':0x0,'app':'agent','appdata':_0x4eaa6e[_0xa6dc('0x52')]+','+(_0x2e989b[_0xa6dc('0x35')][_0xa6dc('0x54')]||0xa),'interval':_0xa6dc('0x4a')});}return respondWithRpcPromise(_0xa6dc('0x55'),'startRouting',_0x2e989b);});}return respondWithRpcPromise('Start',_0xa6dc('0x56'),_0x2e989b);})['then'](function(_0x4a346e){_0x5baf8e(_0x4a346e);})[_0xa6dc('0x17')](function(_0x44b299){_0x152f5c(_0x54b534['error'](0x1f4,_0x44b299[_0xa6dc('0x16')]));});});};