d5c77893a5d7ff2d7622dc19959ce2e7fdd0633b
[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 _0x1f63=['DESC','FaxApplication','Applications','get','applications','list','orderBy','priority','asc','Contacts','length','create','contact','Contact\x20not\x20found','autoclose','push','close','unmanaged','*,*,*,*','created','interaction','FaxMessage','ContactId','AttachmentId','UserId','User','unshift','agent','waitForTheAssignedAgent','Start','startRouting','lodash','util','bluebird','randomstring','ioredis','../../config/utils','../../config/logger','jayson/promise','client','http','defaults','redis','localhost','./faxAccount.socket','request','then','FaxAccount,\x20%s,\x20%s','request\x20sent','debug','FaxAccount,\x20%s,\x20%s,\x20%s','stringify','error','code','message','info','result','catch','GetFaxAccount','FaxAccount','findAll','options','raw','where','attributes','limit','model','include','map','NotifyFaxAccount','fax','CmContact','describe','Sequelize','ValidationError','difference','createdAt','ListId','body','isNil','from','body\x20is\x20mandatory\x20and\x20not\x20empty','mapKey\x20is\x20mandatory,\x20please\x20use\x20one\x20of\x20these:\x20','includes','mapKey','mapKey\x20invalid,\x20please\x20use\x20one\x20of\x20these:\x20','find','account','CmList','List','updatedAt'];(function(_0x4b2863,_0x494899){var _0x567d67=function(_0x751f03){while(--_0x751f03){_0x4b2863['push'](_0x4b2863['shift']());}};_0x567d67(++_0x494899);}(_0x1f63,0x7a));var _0x31f6=function(_0x19e9df,_0x376814){_0x19e9df=_0x19e9df-0x0;var _0x2d989e=_0x1f63[_0x19e9df];return _0x2d989e;};'use strict';var _=require(_0x31f6('0x0'));var util=require(_0x31f6('0x1'));var moment=require('moment');var BPromise=require(_0x31f6('0x2'));var rs=require(_0x31f6('0x3'));var fs=require('fs');var Redis=require(_0x31f6('0x4'));var db=require('../../mysqldb')['db'];var utils=require(_0x31f6('0x5'));var logger=require(_0x31f6('0x6'))('rpc');var config=require('../../config/environment');var jayson=require(_0x31f6('0x7'));var client=jayson[_0x31f6('0x8')][_0x31f6('0x9')]({'port':0x232c});config['redis']=_[_0x31f6('0xa')](config[_0x31f6('0xb')],{'host':_0x31f6('0xc'),'port':0x18eb});var socket=require('socket.io-emitter')(new Redis(config['redis']));require(_0x31f6('0xd'))['register'](socket);function respondWithRpcPromise(_0x3a7c66,_0x1a97fb,_0x5fa32b){return new BPromise(function(_0xd406d6,_0x2cc4be){return client[_0x31f6('0xe')](_0x3a7c66,_0x5fa32b)[_0x31f6('0xf')](function(_0x2b7283){logger['info'](_0x31f6('0x10'),_0x1a97fb,_0x31f6('0x11'));logger[_0x31f6('0x12')](_0x31f6('0x13'),_0x1a97fb,_0x31f6('0x11'),JSON[_0x31f6('0x14')](_0x2b7283));if(_0x2b7283[_0x31f6('0x15')]){if(_0x2b7283[_0x31f6('0x15')][_0x31f6('0x16')]===0x1f4){logger['error'](_0x31f6('0x10'),_0x1a97fb,_0x2b7283['error'][_0x31f6('0x17')]);return _0x2cc4be(_0x2b7283['error'][_0x31f6('0x17')]);}logger[_0x31f6('0x15')](_0x31f6('0x10'),_0x1a97fb,_0x2b7283[_0x31f6('0x15')][_0x31f6('0x17')]);return _0xd406d6(_0x2b7283['error'][_0x31f6('0x17')]);}else{logger[_0x31f6('0x18')]('FaxAccount,\x20%s,\x20%s',_0x1a97fb,_0x31f6('0x11'));_0xd406d6(_0x2b7283[_0x31f6('0x19')][_0x31f6('0x17')]);}})[_0x31f6('0x1a')](function(_0xe7b2d9){logger['error'](_0x31f6('0x10'),_0x1a97fb,_0xe7b2d9);_0x2cc4be(_0xe7b2d9);});});}exports[_0x31f6('0x1b')]=function(_0x8c3cd6){var _0x48996e=this;return new Promise(function(_0x457184,_0x581387){return db[_0x31f6('0x1c')][_0x31f6('0x1d')]({'raw':_0x8c3cd6[_0x31f6('0x1e')]?_0x8c3cd6[_0x31f6('0x1e')][_0x31f6('0x1f')]===undefined?!![]:![]:!![],'where':_0x8c3cd6[_0x31f6('0x1e')]?_0x8c3cd6['options'][_0x31f6('0x20')]||null:null,'attributes':_0x8c3cd6[_0x31f6('0x1e')]?_0x8c3cd6['options'][_0x31f6('0x21')]||null:null,'limit':_0x8c3cd6[_0x31f6('0x1e')]?_0x8c3cd6['options'][_0x31f6('0x22')]||null:null,'include':_0x8c3cd6[_0x31f6('0x1e')]?_0x8c3cd6['options']['include']?_['map'](_0x8c3cd6['options']['include'],function(_0x485a29){return{'model':db[_0x485a29[_0x31f6('0x23')]],'as':_0x485a29['as'],'attributes':_0x485a29['attributes'],'include':_0x485a29[_0x31f6('0x24')]?_[_0x31f6('0x25')](_0x485a29['include'],function(_0x2940f1){return{'model':db[_0x2940f1[_0x31f6('0x23')]],'as':_0x2940f1['as'],'attributes':_0x2940f1[_0x31f6('0x21')],'include':_0x2940f1[_0x31f6('0x24')]?_[_0x31f6('0x25')](_0x2940f1[_0x31f6('0x24')],function(_0x549903){return{'model':db[_0x549903[_0x31f6('0x23')]],'as':_0x549903['as'],'attributes':_0x549903[_0x31f6('0x21')]};}):[]};}):[]};}):[]:[]})[_0x31f6('0xf')](function(_0x2f7e9d){logger[_0x31f6('0x18')](_0x31f6('0x1b'),_0x8c3cd6);logger['debug'](_0x31f6('0x1b'),_0x8c3cd6,JSON[_0x31f6('0x14')](_0x2f7e9d));_0x457184(_0x2f7e9d);})[_0x31f6('0x1a')](function(_0x310f65){logger['error']('GetFaxAccount',_0x310f65[_0x31f6('0x17')],_0x8c3cd6);_0x581387(_0x48996e[_0x31f6('0x15')](0x1f4,_0x310f65['message']));});});};exports[_0x31f6('0x26')]=function(_0x254512,_0x5d150e,_0x11fea1){var _0x27045f=this;return new Promise(function(_0x263bdc,_0x414589){var _0x32ca04={'body':_0x254512['body'],'channel':_0x31f6('0x27')};var _0x13175f=[];var _0x163365=[];var _0x23c491={};return db[_0x31f6('0x28')][_0x31f6('0x29')]()[_0x31f6('0xf')](function(_0x8224b5){if(!_0x8224b5){throw new db[(_0x31f6('0x2a'))][(_0x31f6('0x2b'))]('no\x20available\x20attributes');}_0x13175f=_[_0x31f6('0x2c')](_['keys'](_0x8224b5),[_0x31f6('0x2d'),'updatedAt']);_0x163365=_[_0x31f6('0x2c')](_['keys'](_0x8224b5),['createdAt','updatedAt','CompanyId',_0x31f6('0x2e')]);if(_0x254512[_0x31f6('0x2f')]['id']){delete _0x254512['body']['id'];}if(_[_0x31f6('0x30')](_0x254512['body'][_0x31f6('0x31')])){throw new db[(_0x31f6('0x2a'))]['ValidationError']('from\x20is\x20mandatory');}if(_[_0x31f6('0x30')](_0x254512[_0x31f6('0x2f')][_0x31f6('0x2f')])||_0x254512[_0x31f6('0x2f')][_0x31f6('0x2f')]===''){throw new db[(_0x31f6('0x2a'))][(_0x31f6('0x2b'))](_0x31f6('0x32'));}if(_['isNil'](_0x254512[_0x31f6('0x2f')]['mapKey'])){throw new db[(_0x31f6('0x2a'))][(_0x31f6('0x2b'))](_0x31f6('0x33')+_0x163365);}if(!_[_0x31f6('0x34')](_0x163365,_0x254512['body'][_0x31f6('0x35')])){throw new db[(_0x31f6('0x2a'))][(_0x31f6('0x2b'))](_0x31f6('0x36')+_0x163365);}_0x23c491[_0x254512['body'][_0x31f6('0x35')]]=_0x254512[_0x31f6('0x2f')]['from'];})['then'](function(){return db[_0x31f6('0x1c')][_0x31f6('0x37')]({'where':{'id':_0x254512[_0x31f6('0x38')]['id']},'include':[{'model':db[_0x31f6('0x39')],'as':_0x31f6('0x3a'),'include':[{'model':db[_0x31f6('0x28')],'as':'Contacts','where':_0x23c491,'limit':0x1,'order':[[_0x31f6('0x3b'),_0x31f6('0x3c')]]}]},{'model':db[_0x31f6('0x3d')],'as':_0x31f6('0x3e')}]});})[_0x31f6('0xf')](function(_0x3a8bf0){if(_0x3a8bf0&&_0x3a8bf0[_0x31f6('0x3a')]){var _0x13f548=_0x3a8bf0[_0x31f6('0x3f')]({'plain':!![]});_0x32ca04[_0x31f6('0x38')]=_0x13f548;_0x32ca04[_0x31f6('0x40')]=_0x13f548['Applications'];_0x32ca04[_0x31f6('0x41')]=_0x13f548[_0x31f6('0x3a')];_0x32ca04[_0x31f6('0x40')]=_[_0x31f6('0x42')](_0x32ca04['applications'],[_0x31f6('0x43')],[_0x31f6('0x44')]);if(_0x32ca04[_0x31f6('0x38')][_0x31f6('0x3e')]){delete _0x32ca04[_0x31f6('0x38')][_0x31f6('0x3e')];}if(_0x32ca04[_0x31f6('0x38')][_0x31f6('0x3a')]&&_0x32ca04[_0x31f6('0x38')][_0x31f6('0x3a')][_0x31f6('0x45')][_0x31f6('0x46')]){return _0x32ca04[_0x31f6('0x38')][_0x31f6('0x3a')][_0x31f6('0x45')][0x0];}var _0x2dfa80=_[_0x31f6('0xa')](_0x254512[_0x31f6('0x2f')],{'firstName':_0x254512[_0x31f6('0x2f')][_0x31f6('0x31')],'ListId':_0x13f548[_0x31f6('0x2e')]});_0x2dfa80[_0x254512['body'][_0x31f6('0x35')]]=_0x254512[_0x31f6('0x2f')][_0x31f6('0x31')];return db[_0x31f6('0x28')][_0x31f6('0x47')](_0x2dfa80,{'fields':_0x13175f,'raw':!![]});}})[_0x31f6('0xf')](function(_0x10c586){_0x32ca04[_0x31f6('0x48')]=_0x10c586;if(_0x10c586){var _0x5ebcd4={'ContactId':_0x10c586['id'],'FaxAccountId':_0x254512[_0x31f6('0x38')]['id'],'fax':_0x10c586[_0x31f6('0x27')]};return db['FaxInteraction'][_0x31f6('0x37')]({'where':{'ContactId':_0x10c586['id'],'closed':![],'FaxAccountId':_0x254512['account']['id']}})[_0x31f6('0xf')](function(_0x22ff57){if(_0x22ff57){return[_0x22ff57,![]];}return db['FaxInteraction'][_0x31f6('0x47')](_0x5ebcd4)[_0x31f6('0xf')](function(_0x2d93ac){return[_0x2d93ac,!![]];});});}else{throw new Error(_0x31f6('0x49'));}})['spread'](function(_0x2d407c,_0x35b698){var _0x24cae9=_0x2d407c['get']({'plain':!![]});if(_0x35b698){if(_0x32ca04[_0x31f6('0x38')][_0x31f6('0x4a')]){_0x32ca04['applications'][_0x31f6('0x4b')]({'id':0x0,'priority':_0x32ca04[_0x31f6('0x40')][_0x31f6('0x46')]+0x1,'app':_0x31f6('0x4c'),'appdata':_0x31f6('0x4d'),'interval':_0x31f6('0x4e')});}_0x24cae9[_0x31f6('0x4f')]=!![];}else{_0x24cae9[_0x31f6('0x4f')]=![];}_0x32ca04[_0x31f6('0x50')]=_0x24cae9;return db[_0x31f6('0x51')][_0x31f6('0x47')]({'body':_0x254512[_0x31f6('0x2f')]['body'],'FaxAccountId':_0x254512['account']['id'],'FaxInteractionId':_0x2d407c['id'],'direction':'in','ContactId':_0x2d407c[_0x31f6('0x52')],'AttachmentId':_0x254512['body'][_0x31f6('0x53')]});})[_0x31f6('0xf')](function(_0x38ba9a){_0x32ca04['message']=_0x38ba9a;if(_0x32ca04['interaction'][_0x31f6('0x54')]){return db[_0x31f6('0x55')][_0x31f6('0x37')]({'attributes':['id','name'],'where':{'id':_0x32ca04[_0x31f6('0x50')]['UserId']}})[_0x31f6('0xf')](function(_0x10bf63){if(_0x10bf63){_0x32ca04[_0x31f6('0x40')][_0x31f6('0x56')]({'id':0x0,'priority':0x0,'app':_0x31f6('0x57'),'appdata':_0x10bf63['name']+','+(_0x32ca04['account'][_0x31f6('0x58')]||0xa),'interval':'*,*,*,*'});}return respondWithRpcPromise(_0x31f6('0x59'),_0x31f6('0x5a'),_0x32ca04);});}return respondWithRpcPromise(_0x31f6('0x59'),_0x31f6('0x5a'),_0x32ca04);})[_0x31f6('0xf')](function(_0x14e125){_0x263bdc(_0x14e125);})[_0x31f6('0x1a')](function(_0x5487f5){_0x414589(_0x27045f['error'](0x1f4,_0x5487f5[_0x31f6('0x17')]));});});};