d0a72c4eb4bfcb93a940980c81405c1781b467e2
[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 _0x6a72=['contact','fax','find','FaxInteraction','Contact\x20not\x20found','spread','get','autoclose','push','close','unmanaged','*,*,*,*','created','interaction','ContactId','AttachmentId','User','name','UserId','agent','Start','startRouting','util','bluebird','randomstring','ioredis','../../mysqldb','../../config/utils','../../config/logger','rpc','../../config/environment','jayson/promise','http','defaults','localhost','redis','./faxAccount.socket','register','request','then','info','FaxAccount,\x20%s,\x20%s','request\x20sent','debug','FaxAccount,\x20%s,\x20%s,\x20%s','error','code','message','result','catch','GetFaxAccount','findAll','options','raw','where','attributes','limit','include','map','model','stringify','NotifyFaxAccount','body','CmContact','describe','Sequelize','no\x20available\x20attributes','difference','keys','createdAt','updatedAt','CompanyId','ListId','isNil','from','from\x20is\x20mandatory','ValidationError','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','CmList','List','Contacts','FaxApplication','Applications','account','applications','priority','asc','length','create'];(function(_0x5bd044,_0xafd5fa){var _0x582fd7=function(_0x1accb9){while(--_0x1accb9){_0x5bd044['push'](_0x5bd044['shift']());}};_0x582fd7(++_0xafd5fa);}(_0x6a72,0x1ec));var _0x26a7=function(_0x87cb2b,_0x33c1a6){_0x87cb2b=_0x87cb2b-0x0;var _0x152d0d=_0x6a72[_0x87cb2b];return _0x152d0d;};'use strict';var _=require('lodash');var util=require(_0x26a7('0x0'));var moment=require('moment');var BPromise=require(_0x26a7('0x1'));var rs=require(_0x26a7('0x2'));var fs=require('fs');var Redis=require(_0x26a7('0x3'));var db=require(_0x26a7('0x4'))['db'];var utils=require(_0x26a7('0x5'));var logger=require(_0x26a7('0x6'))(_0x26a7('0x7'));var config=require(_0x26a7('0x8'));var jayson=require(_0x26a7('0x9'));var client=jayson['client'][_0x26a7('0xa')]({'port':0x232c});config['redis']=_[_0x26a7('0xb')](config['redis'],{'host':_0x26a7('0xc'),'port':0x18eb});var socket=require('socket.io-emitter')(new Redis(config[_0x26a7('0xd')]));require(_0x26a7('0xe'))[_0x26a7('0xf')](socket);function respondWithRpcPromise(_0x48165f,_0xa02516,_0x3a65dc){return new BPromise(function(_0xf76092,_0x4274fe){return client[_0x26a7('0x10')](_0x48165f,_0x3a65dc)[_0x26a7('0x11')](function(_0x4c666e){logger[_0x26a7('0x12')](_0x26a7('0x13'),_0xa02516,_0x26a7('0x14'));logger[_0x26a7('0x15')](_0x26a7('0x16'),_0xa02516,'request\x20sent',JSON['stringify'](_0x4c666e));if(_0x4c666e[_0x26a7('0x17')]){if(_0x4c666e[_0x26a7('0x17')][_0x26a7('0x18')]===0x1f4){logger[_0x26a7('0x17')](_0x26a7('0x13'),_0xa02516,_0x4c666e[_0x26a7('0x17')]['message']);return _0x4274fe(_0x4c666e[_0x26a7('0x17')][_0x26a7('0x19')]);}logger[_0x26a7('0x17')](_0x26a7('0x13'),_0xa02516,_0x4c666e['error'][_0x26a7('0x19')]);return _0xf76092(_0x4c666e['error'][_0x26a7('0x19')]);}else{logger['info'](_0x26a7('0x13'),_0xa02516,_0x26a7('0x14'));_0xf76092(_0x4c666e[_0x26a7('0x1a')][_0x26a7('0x19')]);}})[_0x26a7('0x1b')](function(_0x56f2a4){logger[_0x26a7('0x17')](_0x26a7('0x13'),_0xa02516,_0x56f2a4);_0x4274fe(_0x56f2a4);});});}exports[_0x26a7('0x1c')]=function(_0x25769e){var _0x370539=this;return new Promise(function(_0x233998,_0x5c293e){return db['FaxAccount'][_0x26a7('0x1d')]({'raw':_0x25769e[_0x26a7('0x1e')]?_0x25769e['options'][_0x26a7('0x1f')]===undefined?!![]:![]:!![],'where':_0x25769e[_0x26a7('0x1e')]?_0x25769e[_0x26a7('0x1e')][_0x26a7('0x20')]||null:null,'attributes':_0x25769e[_0x26a7('0x1e')]?_0x25769e[_0x26a7('0x1e')][_0x26a7('0x21')]||null:null,'limit':_0x25769e[_0x26a7('0x1e')]?_0x25769e['options'][_0x26a7('0x22')]||null:null,'include':_0x25769e['options']?_0x25769e[_0x26a7('0x1e')][_0x26a7('0x23')]?_[_0x26a7('0x24')](_0x25769e[_0x26a7('0x1e')][_0x26a7('0x23')],function(_0x1bd9eb){return{'model':db[_0x1bd9eb[_0x26a7('0x25')]],'as':_0x1bd9eb['as'],'attributes':_0x1bd9eb['attributes'],'include':_0x1bd9eb[_0x26a7('0x23')]?_['map'](_0x1bd9eb['include'],function(_0x2235f5){return{'model':db[_0x2235f5['model']],'as':_0x2235f5['as'],'attributes':_0x2235f5[_0x26a7('0x21')],'include':_0x2235f5[_0x26a7('0x23')]?_[_0x26a7('0x24')](_0x2235f5['include'],function(_0x55a5f6){return{'model':db[_0x55a5f6[_0x26a7('0x25')]],'as':_0x55a5f6['as'],'attributes':_0x55a5f6[_0x26a7('0x21')]};}):[]};}):[]};}):[]:[]})['then'](function(_0x40cae8){logger[_0x26a7('0x12')]('GetFaxAccount',_0x25769e);logger[_0x26a7('0x15')](_0x26a7('0x1c'),_0x25769e,JSON[_0x26a7('0x26')](_0x40cae8));_0x233998(_0x40cae8);})['catch'](function(_0x45ecea){logger[_0x26a7('0x17')](_0x26a7('0x1c'),_0x45ecea[_0x26a7('0x19')],_0x25769e);_0x5c293e(_0x370539[_0x26a7('0x17')](0x1f4,_0x45ecea['message']));});});};exports[_0x26a7('0x27')]=function(_0x538c87,_0x480177,_0x6b8aeb){var _0x477ff2=this;return new Promise(function(_0x1abee1,_0x53d848){var _0x300a22={'body':_0x538c87[_0x26a7('0x28')],'channel':'fax'};var _0x5cbfac=[];var _0x45827e=[];var _0x42b35b={};return db[_0x26a7('0x29')][_0x26a7('0x2a')]()[_0x26a7('0x11')](function(_0x5a74f2){if(!_0x5a74f2){throw new db[(_0x26a7('0x2b'))]['ValidationError'](_0x26a7('0x2c'));}_0x5cbfac=_[_0x26a7('0x2d')](_[_0x26a7('0x2e')](_0x5a74f2),[_0x26a7('0x2f'),_0x26a7('0x30')]);_0x45827e=_['difference'](_[_0x26a7('0x2e')](_0x5a74f2),[_0x26a7('0x2f'),_0x26a7('0x30'),_0x26a7('0x31'),_0x26a7('0x32')]);if(_0x538c87[_0x26a7('0x28')]['id']){delete _0x538c87[_0x26a7('0x28')]['id'];}if(_[_0x26a7('0x33')](_0x538c87[_0x26a7('0x28')][_0x26a7('0x34')])){throw new db['Sequelize']['ValidationError'](_0x26a7('0x35'));}if(_['isNil'](_0x538c87[_0x26a7('0x28')]['body'])||_0x538c87[_0x26a7('0x28')][_0x26a7('0x28')]===''){throw new db[(_0x26a7('0x2b'))][(_0x26a7('0x36'))](_0x26a7('0x37'));}if(_[_0x26a7('0x33')](_0x538c87['body'][_0x26a7('0x38')])){throw new db[(_0x26a7('0x2b'))][(_0x26a7('0x36'))](_0x26a7('0x39')+_0x45827e);}if(!_[_0x26a7('0x3a')](_0x45827e,_0x538c87[_0x26a7('0x28')][_0x26a7('0x38')])){throw new db[(_0x26a7('0x2b'))][(_0x26a7('0x36'))](_0x26a7('0x3b')+_0x45827e);}_0x42b35b[_0x538c87[_0x26a7('0x28')]['mapKey']]=_0x538c87['body']['from'];})[_0x26a7('0x11')](function(){return db[_0x26a7('0x3c')]['find']({'where':{'id':_0x538c87['account']['id']},'include':[{'model':db[_0x26a7('0x3d')],'as':_0x26a7('0x3e'),'include':[{'model':db['CmContact'],'as':_0x26a7('0x3f'),'where':_0x42b35b,'limit':0x1,'order':[[_0x26a7('0x30'),'DESC']]}]},{'model':db[_0x26a7('0x40')],'as':_0x26a7('0x41')}]});})[_0x26a7('0x11')](function(_0x1d0504){if(_0x1d0504&&_0x1d0504['List']){var _0x5dd331=_0x1d0504['get']({'plain':!![]});_0x300a22[_0x26a7('0x42')]=_0x5dd331;_0x300a22[_0x26a7('0x43')]=_0x5dd331[_0x26a7('0x41')];_0x300a22['list']=_0x5dd331[_0x26a7('0x3e')];_0x300a22[_0x26a7('0x43')]=_['orderBy'](_0x300a22[_0x26a7('0x43')],[_0x26a7('0x44')],[_0x26a7('0x45')]);if(_0x300a22[_0x26a7('0x42')][_0x26a7('0x41')]){delete _0x300a22[_0x26a7('0x42')][_0x26a7('0x41')];}if(_0x300a22[_0x26a7('0x42')]['List']&&_0x300a22[_0x26a7('0x42')][_0x26a7('0x3e')][_0x26a7('0x3f')][_0x26a7('0x46')]){return _0x300a22['account'][_0x26a7('0x3e')][_0x26a7('0x3f')][0x0];}var _0x13ef6b=_[_0x26a7('0xb')](_0x538c87['body'],{'firstName':_0x538c87[_0x26a7('0x28')][_0x26a7('0x34')],'ListId':_0x5dd331[_0x26a7('0x32')]});_0x13ef6b[_0x538c87['body'][_0x26a7('0x38')]]=_0x538c87[_0x26a7('0x28')][_0x26a7('0x34')];return db[_0x26a7('0x29')][_0x26a7('0x47')](_0x13ef6b,{'fields':_0x5cbfac,'raw':!![]});}})[_0x26a7('0x11')](function(_0x56f68b){_0x300a22[_0x26a7('0x48')]=_0x56f68b;if(_0x56f68b){var _0x3e4d66={'ContactId':_0x56f68b['id'],'FaxAccountId':_0x538c87[_0x26a7('0x42')]['id'],'fax':_0x56f68b[_0x26a7('0x49')]};return db['FaxInteraction'][_0x26a7('0x4a')]({'where':{'ContactId':_0x56f68b['id'],'closed':![],'FaxAccountId':_0x538c87[_0x26a7('0x42')]['id']}})['then'](function(_0x1483d1){if(_0x1483d1){return[_0x1483d1,![]];}return db[_0x26a7('0x4b')][_0x26a7('0x47')](_0x3e4d66)[_0x26a7('0x11')](function(_0xe16d1d){return[_0xe16d1d,!![]];});});}else{throw new Error(_0x26a7('0x4c'));}})[_0x26a7('0x4d')](function(_0x50592f,_0x34721d){var _0x48c375=_0x50592f[_0x26a7('0x4e')]({'plain':!![]});if(_0x34721d){if(_0x300a22[_0x26a7('0x42')][_0x26a7('0x4f')]){_0x300a22[_0x26a7('0x43')][_0x26a7('0x50')]({'id':0x0,'priority':_0x300a22[_0x26a7('0x43')][_0x26a7('0x46')]+0x1,'app':_0x26a7('0x51'),'appdata':_0x26a7('0x52'),'interval':_0x26a7('0x53')});}_0x48c375[_0x26a7('0x54')]=!![];}else{_0x48c375['created']=![];}_0x300a22[_0x26a7('0x55')]=_0x48c375;return db['FaxMessage'][_0x26a7('0x47')]({'body':_0x538c87['body'][_0x26a7('0x28')],'FaxAccountId':_0x538c87[_0x26a7('0x42')]['id'],'FaxInteractionId':_0x50592f['id'],'direction':'in','ContactId':_0x50592f[_0x26a7('0x56')],'AttachmentId':_0x538c87[_0x26a7('0x28')][_0x26a7('0x57')]});})[_0x26a7('0x11')](function(_0x3520c2){_0x300a22[_0x26a7('0x19')]=_0x3520c2;if(_0x300a22[_0x26a7('0x55')]['UserId']){return db[_0x26a7('0x58')][_0x26a7('0x4a')]({'attributes':['id',_0x26a7('0x59')],'where':{'id':_0x300a22[_0x26a7('0x55')][_0x26a7('0x5a')]}})[_0x26a7('0x11')](function(_0x538558){if(_0x538558){_0x300a22['applications']['unshift']({'id':0x0,'priority':0x0,'app':_0x26a7('0x5b'),'appdata':_0x538558[_0x26a7('0x59')]+','+(_0x300a22[_0x26a7('0x42')]['waitForTheAssignedAgent']||0xa),'interval':_0x26a7('0x53')});}return respondWithRpcPromise(_0x26a7('0x5c'),_0x26a7('0x5d'),_0x300a22);});}return respondWithRpcPromise(_0x26a7('0x5c'),_0x26a7('0x5d'),_0x300a22);})[_0x26a7('0x11')](function(_0x29bf37){_0x1abee1(_0x29bf37);})['catch'](function(_0x2121a3){_0x53d848(_0x477ff2[_0x26a7('0x17')](0x1f4,_0x2121a3['message']));});});};