7b157c873a38bdb46b15d2722bf1efee0660f4b4
[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 _0x44f3=['interaction','ContactId','UserId','User','name','unshift','agent','waitForTheAssignedAgent','Start','startRouting','lodash','util','moment','randomstring','ioredis','../../mysqldb','../../config/logger','rpc','../../config/environment','client','http','redis','localhost','socket.io-emitter','./faxAccount.socket','register','request','FaxAccount,\x20%s,\x20%s','request\x20sent','debug','FaxAccount,\x20%s,\x20%s,\x20%s','error','code','message','info','GetFaxAccount','FaxAccount','findAll','options','raw','where','attributes','map','include','model','catch','body','then','Sequelize','createdAt','updatedAt','keys','CompanyId','ValidationError','isNil','body\x20is\x20mandatory\x20and\x20not\x20empty','mapKey\x20is\x20mandatory,\x20please\x20use\x20one\x20of\x20these:\x20','mapKey','mapKey\x20invalid,\x20please\x20use\x20one\x20of\x20these:\x20','from','account','List','Contacts','FaxApplication','Applications','applications','orderBy','priority','length','defaults','ListId','CmContact','create','contact','fax','FaxInteraction','find','Contact\x20not\x20found','spread','get','autoclose','push','close','*,*,*,*','created'];(function(_0x1c4318,_0x2c9e67){var _0x58b562=function(_0x517f90){while(--_0x517f90){_0x1c4318['push'](_0x1c4318['shift']());}};_0x58b562(++_0x2c9e67);}(_0x44f3,0x109));var _0x344f=function(_0x699ab0,_0x292661){_0x699ab0=_0x699ab0-0x0;var _0x9558bb=_0x44f3[_0x699ab0];return _0x9558bb;};'use strict';var _=require(_0x344f('0x0'));var util=require(_0x344f('0x1'));var moment=require(_0x344f('0x2'));var BPromise=require('bluebird');var rs=require(_0x344f('0x3'));var fs=require('fs');var Redis=require(_0x344f('0x4'));var db=require(_0x344f('0x5'))['db'];var utils=require('../../config/utils');var logger=require(_0x344f('0x6'))(_0x344f('0x7'));var config=require(_0x344f('0x8'));var jayson=require('jayson/promise');var client=jayson[_0x344f('0x9')][_0x344f('0xa')]({'port':0x232c});config[_0x344f('0xb')]=_['defaults'](config['redis'],{'host':_0x344f('0xc'),'port':0x18eb});var socket=require(_0x344f('0xd'))(new Redis(config[_0x344f('0xb')]));require(_0x344f('0xe'))[_0x344f('0xf')](socket);function respondWithRpcPromise(_0x254466,_0x15f54f,_0x45b8ae){return new BPromise(function(_0x1e6c7f,_0x1a4aa3){return client[_0x344f('0x10')](_0x254466,_0x45b8ae)['then'](function(_0x570f90){logger['info'](_0x344f('0x11'),_0x15f54f,_0x344f('0x12'));logger[_0x344f('0x13')](_0x344f('0x14'),_0x15f54f,'request\x20sent',JSON['stringify'](_0x570f90));if(_0x570f90[_0x344f('0x15')]){if(_0x570f90[_0x344f('0x15')][_0x344f('0x16')]===0x1f4){logger['error'](_0x344f('0x11'),_0x15f54f,_0x570f90[_0x344f('0x15')]['message']);return _0x1a4aa3(_0x570f90[_0x344f('0x15')]['message']);}logger['error'](_0x344f('0x11'),_0x15f54f,_0x570f90[_0x344f('0x15')][_0x344f('0x17')]);return _0x1e6c7f(_0x570f90[_0x344f('0x15')][_0x344f('0x17')]);}else{logger[_0x344f('0x18')](_0x344f('0x11'),_0x15f54f,'request\x20sent');_0x1e6c7f(_0x570f90['result']['message']);}})['catch'](function(_0x3936af){logger['error'](_0x344f('0x11'),_0x15f54f,_0x3936af);_0x1a4aa3(_0x3936af);});});}exports[_0x344f('0x19')]=function(_0x28779a){var _0x232fcb=this;return new Promise(function(_0x24edfe,_0x3e12e2){return db[_0x344f('0x1a')][_0x344f('0x1b')]({'raw':_0x28779a[_0x344f('0x1c')]?_0x28779a[_0x344f('0x1c')][_0x344f('0x1d')]===undefined?!![]:![]:!![],'where':_0x28779a[_0x344f('0x1c')]?_0x28779a['options'][_0x344f('0x1e')]||null:null,'attributes':_0x28779a[_0x344f('0x1c')]?_0x28779a[_0x344f('0x1c')][_0x344f('0x1f')]||null:null,'limit':_0x28779a['options']?_0x28779a[_0x344f('0x1c')]['limit']||null:null,'include':_0x28779a[_0x344f('0x1c')]?_0x28779a['options']['include']?_[_0x344f('0x20')](_0x28779a['options'][_0x344f('0x21')],function(_0x50bf6f){return{'model':db[_0x50bf6f[_0x344f('0x22')]],'as':_0x50bf6f['as'],'attributes':_0x50bf6f['attributes'],'include':_0x50bf6f[_0x344f('0x21')]?_[_0x344f('0x20')](_0x50bf6f[_0x344f('0x21')],function(_0x4b9da9){return{'model':db[_0x4b9da9[_0x344f('0x22')]],'as':_0x4b9da9['as'],'attributes':_0x4b9da9['attributes'],'include':_0x4b9da9[_0x344f('0x21')]?_[_0x344f('0x20')](_0x4b9da9[_0x344f('0x21')],function(_0xca753c){return{'model':db[_0xca753c[_0x344f('0x22')]],'as':_0xca753c['as'],'attributes':_0xca753c[_0x344f('0x1f')]};}):[]};}):[]};}):[]:[]})['then'](function(_0x57edf0){logger[_0x344f('0x18')](_0x344f('0x19'),_0x28779a);logger[_0x344f('0x13')](_0x344f('0x19'),_0x28779a,JSON['stringify'](_0x57edf0));_0x24edfe(_0x57edf0);})[_0x344f('0x23')](function(_0x1e1ada){logger[_0x344f('0x15')](_0x344f('0x19'),_0x1e1ada[_0x344f('0x17')],_0x28779a);_0x3e12e2(_0x232fcb[_0x344f('0x15')](0x1f4,_0x1e1ada[_0x344f('0x17')]));});});};exports['NotifyFaxAccount']=function(_0x1b1385,_0x5393d2,_0x5505f6){var _0xf1b2c0=this;return new Promise(function(_0x736956,_0x29b2cc){var _0x31bf70={'body':_0x1b1385[_0x344f('0x24')],'channel':'fax'};var _0x5b9125=[];var _0x30f66e=[];var _0x29a966={};return db['CmContact']['describe']()[_0x344f('0x25')](function(_0xfd8f13){if(!_0xfd8f13){throw new db[(_0x344f('0x26'))]['ValidationError']('no\x20available\x20attributes');}_0x5b9125=_['difference'](_['keys'](_0xfd8f13),[_0x344f('0x27'),_0x344f('0x28')]);_0x30f66e=_['difference'](_[_0x344f('0x29')](_0xfd8f13),['createdAt','updatedAt',_0x344f('0x2a'),'ListId']);if(_0x1b1385[_0x344f('0x24')]['id']){delete _0x1b1385[_0x344f('0x24')]['id'];}if(_['isNil'](_0x1b1385[_0x344f('0x24')]['from'])){throw new db['Sequelize'][(_0x344f('0x2b'))]('from\x20is\x20mandatory');}if(_[_0x344f('0x2c')](_0x1b1385[_0x344f('0x24')][_0x344f('0x24')])||_0x1b1385[_0x344f('0x24')][_0x344f('0x24')]===''){throw new db['Sequelize'][(_0x344f('0x2b'))](_0x344f('0x2d'));}if(_[_0x344f('0x2c')](_0x1b1385[_0x344f('0x24')]['mapKey'])){throw new db[(_0x344f('0x26'))][(_0x344f('0x2b'))](_0x344f('0x2e')+_0x30f66e);}if(!_['includes'](_0x30f66e,_0x1b1385['body'][_0x344f('0x2f')])){throw new db[(_0x344f('0x26'))]['ValidationError'](_0x344f('0x30')+_0x30f66e);}_0x29a966[_0x1b1385[_0x344f('0x24')][_0x344f('0x2f')]]=_0x1b1385[_0x344f('0x24')][_0x344f('0x31')];})[_0x344f('0x25')](function(){return db[_0x344f('0x1a')]['find']({'where':{'id':_0x1b1385[_0x344f('0x32')]['id']},'include':[{'model':db['CmList'],'as':_0x344f('0x33'),'include':[{'model':db['CmContact'],'as':_0x344f('0x34'),'where':_0x29a966,'limit':0x1,'order':[['updatedAt','DESC']]}]},{'model':db[_0x344f('0x35')],'as':_0x344f('0x36')}]});})[_0x344f('0x25')](function(_0x35b4f6){if(_0x35b4f6&&_0x35b4f6[_0x344f('0x33')]){var _0x132e6f=_0x35b4f6['get']({'plain':!![]});_0x31bf70['account']=_0x132e6f;_0x31bf70[_0x344f('0x37')]=_0x132e6f[_0x344f('0x36')];_0x31bf70['list']=_0x132e6f[_0x344f('0x33')];_0x31bf70['applications']=_[_0x344f('0x38')](_0x31bf70['applications'],[_0x344f('0x39')],['asc']);if(_0x31bf70[_0x344f('0x32')][_0x344f('0x36')]){delete _0x31bf70['account']['Applications'];}if(_0x31bf70['account'][_0x344f('0x33')]&&_0x31bf70[_0x344f('0x32')][_0x344f('0x33')][_0x344f('0x34')][_0x344f('0x3a')]){return _0x31bf70['account'][_0x344f('0x33')]['Contacts'][0x0];}var _0x33ed3e=_[_0x344f('0x3b')](_0x1b1385[_0x344f('0x24')],{'firstName':_0x1b1385['body'][_0x344f('0x31')],'ListId':_0x132e6f[_0x344f('0x3c')]});_0x33ed3e[_0x1b1385[_0x344f('0x24')][_0x344f('0x2f')]]=_0x1b1385[_0x344f('0x24')]['from'];return db[_0x344f('0x3d')][_0x344f('0x3e')](_0x33ed3e,{'fields':_0x5b9125,'raw':!![]});}})[_0x344f('0x25')](function(_0x21e394){_0x31bf70[_0x344f('0x3f')]=_0x21e394;if(_0x21e394){var _0x38c77f={'ContactId':_0x21e394['id'],'FaxAccountId':_0x1b1385[_0x344f('0x32')]['id'],'fax':_0x21e394[_0x344f('0x40')]};return db[_0x344f('0x41')][_0x344f('0x42')]({'where':{'ContactId':_0x21e394['id'],'closed':![],'FaxAccountId':_0x1b1385[_0x344f('0x32')]['id']}})[_0x344f('0x25')](function(_0x5cca3b){if(_0x5cca3b){return[_0x5cca3b,![]];}return db['FaxInteraction'][_0x344f('0x3e')](_0x38c77f)['then'](function(_0x43fbfa){return[_0x43fbfa,!![]];});});}else{throw new Error(_0x344f('0x43'));}})[_0x344f('0x44')](function(_0x2038b2,_0x2a80e8){var _0x1aea4d=_0x2038b2[_0x344f('0x45')]({'plain':!![]});if(_0x2a80e8){if(_0x31bf70['account'][_0x344f('0x46')]){_0x31bf70[_0x344f('0x37')][_0x344f('0x47')]({'id':0x0,'priority':_0x31bf70['applications'][_0x344f('0x3a')]+0x1,'app':_0x344f('0x48'),'appdata':'unmanaged','interval':_0x344f('0x49')});}_0x1aea4d[_0x344f('0x4a')]=!![];}else{_0x1aea4d[_0x344f('0x4a')]=![];}_0x31bf70[_0x344f('0x4b')]=_0x1aea4d;return db['FaxMessage'][_0x344f('0x3e')]({'body':_0x1b1385['body']['body'],'FaxAccountId':_0x1b1385[_0x344f('0x32')]['id'],'FaxInteractionId':_0x2038b2['id'],'direction':'in','ContactId':_0x2038b2[_0x344f('0x4c')],'AttachmentId':_0x1b1385['body']['AttachmentId']});})[_0x344f('0x25')](function(_0x184503){_0x31bf70[_0x344f('0x17')]=_0x184503;if(_0x31bf70['interaction'][_0x344f('0x4d')]){return db[_0x344f('0x4e')]['find']({'attributes':['id',_0x344f('0x4f')],'where':{'id':_0x31bf70['interaction'][_0x344f('0x4d')]}})[_0x344f('0x25')](function(_0x103454){if(_0x103454){_0x31bf70[_0x344f('0x37')][_0x344f('0x50')]({'id':0x0,'priority':0x0,'app':_0x344f('0x51'),'appdata':_0x103454[_0x344f('0x4f')]+','+(_0x31bf70[_0x344f('0x32')][_0x344f('0x52')]||0xa),'interval':_0x344f('0x49')});}return respondWithRpcPromise(_0x344f('0x53'),_0x344f('0x54'),_0x31bf70);});}return respondWithRpcPromise('Start',_0x344f('0x54'),_0x31bf70);})['then'](function(_0x4d2313){_0x736956(_0x4d2313);})[_0x344f('0x23')](function(_0x5f4304){_0x29b2cc(_0xf1b2c0[_0x344f('0x15')](0x1f4,_0x5f4304[_0x344f('0x17')]));});});};