0a67e5eae18884013e7a4d00e103152b473d632b
[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 _0x5bc9=['find','CmList','Contacts','FaxApplication','List','get','applications','orderBy','priority','asc','account','Applications','defaults','create','FaxInteraction','Contact\x20not\x20found','spread','push','length','close','unmanaged','*,*,*,*','created','interaction','FaxMessage','ContactId','AttachmentId','UserId','User','name','unshift','agent','Start','startRouting','util','ioredis','../../mysqldb','../../config/logger','rpc','../../config/environment','jayson/promise','client','http','redis','localhost','socket.io-emitter','./faxAccount.socket','register','request','info','FaxAccount,\x20%s,\x20%s','debug','FaxAccount,\x20%s,\x20%s,\x20%s','request\x20sent','stringify','error','code','message','result','catch','GetFaxAccount','FaxAccount','findAll','options','raw','where','limit','map','include','model','attributes','then','body','fax','CmContact','describe','Sequelize','ValidationError','no\x20available\x20attributes','keys','createdAt','updatedAt','difference','CompanyId','isNil','from','from\x20is\x20mandatory','body\x20is\x20mandatory\x20and\x20not\x20empty','mapKey\x20is\x20mandatory,\x20please\x20use\x20one\x20of\x20these:\x20','mapKey','mapKey\x20invalid,\x20please\x20use\x20one\x20of\x20these:\x20'];(function(_0x585d6d,_0x12e074){var _0x1636cf=function(_0x721242){while(--_0x721242){_0x585d6d['push'](_0x585d6d['shift']());}};_0x1636cf(++_0x12e074);}(_0x5bc9,0x1e9));var _0x95bc=function(_0x108f6a,_0x3f0882){_0x108f6a=_0x108f6a-0x0;var _0x5e8849=_0x5bc9[_0x108f6a];return _0x5e8849;};'use strict';var _=require('lodash');var util=require(_0x95bc('0x0'));var moment=require('moment');var BPromise=require('bluebird');var rs=require('randomstring');var fs=require('fs');var Redis=require(_0x95bc('0x1'));var db=require(_0x95bc('0x2'))['db'];var utils=require('../../config/utils');var logger=require(_0x95bc('0x3'))(_0x95bc('0x4'));var config=require(_0x95bc('0x5'));var jayson=require(_0x95bc('0x6'));var client=jayson[_0x95bc('0x7')][_0x95bc('0x8')]({'port':0x232c});config[_0x95bc('0x9')]=_['defaults'](config[_0x95bc('0x9')],{'host':_0x95bc('0xa'),'port':0x18eb});var socket=require(_0x95bc('0xb'))(new Redis(config[_0x95bc('0x9')]));require(_0x95bc('0xc'))[_0x95bc('0xd')](socket);function respondWithRpcPromise(_0x5190f,_0xb50a6f,_0xccced0){return new BPromise(function(_0x2cec0d,_0x4fd64f){return client[_0x95bc('0xe')](_0x5190f,_0xccced0)['then'](function(_0x21cf1c){logger[_0x95bc('0xf')](_0x95bc('0x10'),_0xb50a6f,'request\x20sent');logger[_0x95bc('0x11')](_0x95bc('0x12'),_0xb50a6f,_0x95bc('0x13'),JSON[_0x95bc('0x14')](_0x21cf1c));if(_0x21cf1c[_0x95bc('0x15')]){if(_0x21cf1c[_0x95bc('0x15')][_0x95bc('0x16')]===0x1f4){logger[_0x95bc('0x15')](_0x95bc('0x10'),_0xb50a6f,_0x21cf1c['error'][_0x95bc('0x17')]);return _0x4fd64f(_0x21cf1c['error'][_0x95bc('0x17')]);}logger['error'](_0x95bc('0x10'),_0xb50a6f,_0x21cf1c[_0x95bc('0x15')][_0x95bc('0x17')]);return _0x2cec0d(_0x21cf1c[_0x95bc('0x15')][_0x95bc('0x17')]);}else{logger[_0x95bc('0xf')]('FaxAccount,\x20%s,\x20%s',_0xb50a6f,_0x95bc('0x13'));_0x2cec0d(_0x21cf1c[_0x95bc('0x18')][_0x95bc('0x17')]);}})[_0x95bc('0x19')](function(_0x19bcbc){logger[_0x95bc('0x15')](_0x95bc('0x10'),_0xb50a6f,_0x19bcbc);_0x4fd64f(_0x19bcbc);});});}exports[_0x95bc('0x1a')]=function(_0x379194){var _0x2180da=this;return new Promise(function(_0x5bb802,_0x4c646a){return db[_0x95bc('0x1b')][_0x95bc('0x1c')]({'raw':_0x379194[_0x95bc('0x1d')]?_0x379194[_0x95bc('0x1d')][_0x95bc('0x1e')]===undefined?!![]:![]:!![],'where':_0x379194[_0x95bc('0x1d')]?_0x379194[_0x95bc('0x1d')][_0x95bc('0x1f')]||null:null,'attributes':_0x379194[_0x95bc('0x1d')]?_0x379194[_0x95bc('0x1d')]['attributes']||null:null,'limit':_0x379194[_0x95bc('0x1d')]?_0x379194['options'][_0x95bc('0x20')]||null:null,'include':_0x379194[_0x95bc('0x1d')]?_0x379194['options']['include']?_[_0x95bc('0x21')](_0x379194['options'][_0x95bc('0x22')],function(_0x4d0604){return{'model':db[_0x4d0604[_0x95bc('0x23')]],'as':_0x4d0604['as'],'attributes':_0x4d0604[_0x95bc('0x24')],'include':_0x4d0604[_0x95bc('0x22')]?_[_0x95bc('0x21')](_0x4d0604[_0x95bc('0x22')],function(_0x164550){return{'model':db[_0x164550['model']],'as':_0x164550['as'],'attributes':_0x164550['attributes'],'include':_0x164550[_0x95bc('0x22')]?_[_0x95bc('0x21')](_0x164550['include'],function(_0x1e0a3a){return{'model':db[_0x1e0a3a[_0x95bc('0x23')]],'as':_0x1e0a3a['as'],'attributes':_0x1e0a3a[_0x95bc('0x24')]};}):[]};}):[]};}):[]:[]})[_0x95bc('0x25')](function(_0x46ab0c){logger['info'](_0x95bc('0x1a'),_0x379194);logger['debug'](_0x95bc('0x1a'),_0x379194,JSON['stringify'](_0x46ab0c));_0x5bb802(_0x46ab0c);})['catch'](function(_0x43543c){logger[_0x95bc('0x15')](_0x95bc('0x1a'),_0x43543c[_0x95bc('0x17')],_0x379194);_0x4c646a(_0x2180da[_0x95bc('0x15')](0x1f4,_0x43543c[_0x95bc('0x17')]));});});};exports['NotifyFaxAccount']=function(_0x5a66c9,_0x5919c8,_0x48d0e9){var _0xf9b55b=this;return new Promise(function(_0x15ee81,_0x4bae69){var _0x37a598={'body':_0x5a66c9[_0x95bc('0x26')],'channel':_0x95bc('0x27')};var _0x7c32cd=[];var _0x3f3397=[];var _0x26f76f={};return db[_0x95bc('0x28')][_0x95bc('0x29')]()[_0x95bc('0x25')](function(_0x312306){if(!_0x312306){throw new db[(_0x95bc('0x2a'))][(_0x95bc('0x2b'))](_0x95bc('0x2c'));}_0x7c32cd=_['difference'](_[_0x95bc('0x2d')](_0x312306),[_0x95bc('0x2e'),_0x95bc('0x2f')]);_0x3f3397=_[_0x95bc('0x30')](_[_0x95bc('0x2d')](_0x312306),[_0x95bc('0x2e'),'updatedAt',_0x95bc('0x31'),'ListId']);if(_0x5a66c9['body']['id']){delete _0x5a66c9[_0x95bc('0x26')]['id'];}if(_[_0x95bc('0x32')](_0x5a66c9[_0x95bc('0x26')][_0x95bc('0x33')])){throw new db['Sequelize']['ValidationError'](_0x95bc('0x34'));}if(_['isNil'](_0x5a66c9[_0x95bc('0x26')]['body'])||_0x5a66c9['body']['body']===''){throw new db[(_0x95bc('0x2a'))][(_0x95bc('0x2b'))](_0x95bc('0x35'));}if(_[_0x95bc('0x32')](_0x5a66c9[_0x95bc('0x26')]['mapKey'])){throw new db[(_0x95bc('0x2a'))][(_0x95bc('0x2b'))](_0x95bc('0x36')+_0x3f3397);}if(!_['includes'](_0x3f3397,_0x5a66c9[_0x95bc('0x26')][_0x95bc('0x37')])){throw new db[(_0x95bc('0x2a'))][(_0x95bc('0x2b'))](_0x95bc('0x38')+_0x3f3397);}_0x26f76f[_0x5a66c9['body']['mapKey']]=_0x5a66c9[_0x95bc('0x26')][_0x95bc('0x33')];})['then'](function(){return db[_0x95bc('0x1b')][_0x95bc('0x39')]({'where':{'id':_0x5a66c9['account']['id']},'include':[{'model':db[_0x95bc('0x3a')],'as':'List','include':[{'model':db[_0x95bc('0x28')],'as':_0x95bc('0x3b'),'where':_0x26f76f,'limit':0x1,'order':[['updatedAt','DESC']]}]},{'model':db[_0x95bc('0x3c')],'as':'Applications'}]});})[_0x95bc('0x25')](function(_0x42345f){if(_0x42345f&&_0x42345f[_0x95bc('0x3d')]){var _0x34c158=_0x42345f[_0x95bc('0x3e')]({'plain':!![]});_0x37a598['account']=_0x34c158;_0x37a598[_0x95bc('0x3f')]=_0x34c158['Applications'];_0x37a598['list']=_0x34c158[_0x95bc('0x3d')];_0x37a598['applications']=_[_0x95bc('0x40')](_0x37a598[_0x95bc('0x3f')],[_0x95bc('0x41')],[_0x95bc('0x42')]);if(_0x37a598[_0x95bc('0x43')][_0x95bc('0x44')]){delete _0x37a598['account'][_0x95bc('0x44')];}if(_0x37a598[_0x95bc('0x43')][_0x95bc('0x3d')]&&_0x37a598[_0x95bc('0x43')]['List'][_0x95bc('0x3b')]['length']){return _0x37a598[_0x95bc('0x43')][_0x95bc('0x3d')][_0x95bc('0x3b')][0x0];}var _0x52e668=_[_0x95bc('0x45')](_0x5a66c9[_0x95bc('0x26')],{'firstName':_0x5a66c9[_0x95bc('0x26')]['from'],'ListId':_0x34c158['ListId']});_0x52e668[_0x5a66c9['body']['mapKey']]=_0x5a66c9['body']['from'];return db['CmContact'][_0x95bc('0x46')](_0x52e668,{'fields':_0x7c32cd,'raw':!![]});}})[_0x95bc('0x25')](function(_0x3794a0){_0x37a598['contact']=_0x3794a0;if(_0x3794a0){var _0xd0d612={'ContactId':_0x3794a0['id'],'FaxAccountId':_0x5a66c9[_0x95bc('0x43')]['id'],'fax':_0x3794a0[_0x95bc('0x27')]};return db[_0x95bc('0x47')][_0x95bc('0x39')]({'where':{'ContactId':_0x3794a0['id'],'closed':![],'FaxAccountId':_0x5a66c9[_0x95bc('0x43')]['id']}})[_0x95bc('0x25')](function(_0x3c5710){if(_0x3c5710){return[_0x3c5710,![]];}return db[_0x95bc('0x47')][_0x95bc('0x46')](_0xd0d612)[_0x95bc('0x25')](function(_0x53fa95){return[_0x53fa95,!![]];});});}else{throw new Error(_0x95bc('0x48'));}})[_0x95bc('0x49')](function(_0xc00026,_0x531e89){var _0x431a35=_0xc00026['get']({'plain':!![]});if(_0x531e89){if(_0x37a598[_0x95bc('0x43')]['autoclose']){_0x37a598['applications'][_0x95bc('0x4a')]({'id':0x0,'priority':_0x37a598[_0x95bc('0x3f')][_0x95bc('0x4b')]+0x1,'app':_0x95bc('0x4c'),'appdata':_0x95bc('0x4d'),'interval':_0x95bc('0x4e')});}_0x431a35['created']=!![];}else{_0x431a35[_0x95bc('0x4f')]=![];}_0x37a598[_0x95bc('0x50')]=_0x431a35;return db[_0x95bc('0x51')]['create']({'body':_0x5a66c9[_0x95bc('0x26')][_0x95bc('0x26')],'FaxAccountId':_0x5a66c9[_0x95bc('0x43')]['id'],'FaxInteractionId':_0xc00026['id'],'direction':'in','ContactId':_0xc00026[_0x95bc('0x52')],'AttachmentId':_0x5a66c9[_0x95bc('0x26')][_0x95bc('0x53')]});})[_0x95bc('0x25')](function(_0x2d86de){_0x37a598['message']=_0x2d86de;if(_0x37a598[_0x95bc('0x50')][_0x95bc('0x54')]){return db[_0x95bc('0x55')]['find']({'attributes':['id',_0x95bc('0x56')],'where':{'id':_0x37a598[_0x95bc('0x50')]['UserId']}})['then'](function(_0x1ede9c){if(_0x1ede9c){_0x37a598[_0x95bc('0x3f')][_0x95bc('0x57')]({'id':0x0,'priority':0x0,'app':_0x95bc('0x58'),'appdata':_0x1ede9c[_0x95bc('0x56')]+','+(_0x37a598[_0x95bc('0x43')]['waitForTheAssignedAgent']||0xa),'interval':_0x95bc('0x4e')});}return respondWithRpcPromise(_0x95bc('0x59'),_0x95bc('0x5a'),_0x37a598);});}return respondWithRpcPromise(_0x95bc('0x59'),_0x95bc('0x5a'),_0x37a598);})[_0x95bc('0x25')](function(_0xecbdb8){_0x15ee81(_0xecbdb8);})['catch'](function(_0x3c0ad9){_0x4bae69(_0xf9b55b[_0x95bc('0x15')](0x1f4,_0x3c0ad9['message']));});});};