33cd212521da87b642aba463dce1c09b716ace5c
[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 _0x829f=['from','Sequelize','from\x20is\x20mandatory','body\x20is\x20mandatory\x20and\x20not\x20empty','mapKey','mapKey\x20invalid,\x20please\x20use\x20one\x20of\x20these:\x20','find','account','CmList','List','Contacts','DESC','Applications','get','applications','list','orderBy','asc','create','contact','FaxInteraction','spread','length','close','unmanaged','*,*,*,*','created','interaction','FaxMessage','User','name','UserId','unshift','agent','startRouting','Start','lodash','util','moment','bluebird','ioredis','../../mysqldb','../../config/utils','../../config/logger','jayson/promise','client','http','redis','socket.io-emitter','./faxAccount.socket','request','then','info','FaxAccount,\x20%s,\x20%s','request\x20sent','debug','FaxAccount,\x20%s,\x20%s,\x20%s','stringify','error','message','catch','GetFaxAccount','FaxAccount','findAll','options','raw','where','attributes','include','map','model','fax','ValidationError','no\x20available\x20attributes','difference','keys','createdAt','updatedAt','CompanyId','ListId','body','isNil'];(function(_0x34be9d,_0x196f99){var _0xac02a8=function(_0x186960){while(--_0x186960){_0x34be9d['push'](_0x34be9d['shift']());}};_0xac02a8(++_0x196f99);}(_0x829f,0xc8));var _0xf829=function(_0x21ac69,_0x515618){_0x21ac69=_0x21ac69-0x0;var _0x3069a8=_0x829f[_0x21ac69];return _0x3069a8;};'use strict';var _=require(_0xf829('0x0'));var util=require(_0xf829('0x1'));var moment=require(_0xf829('0x2'));var BPromise=require(_0xf829('0x3'));var rs=require('randomstring');var fs=require('fs');var Redis=require(_0xf829('0x4'));var db=require(_0xf829('0x5'))['db'];var utils=require(_0xf829('0x6'));var logger=require(_0xf829('0x7'))('rpc');var config=require('../../config/environment');var jayson=require(_0xf829('0x8'));var client=jayson[_0xf829('0x9')][_0xf829('0xa')]({'port':0x232c});config[_0xf829('0xb')]=_['defaults'](config['redis'],{'host':'localhost','port':0x18eb});var socket=require(_0xf829('0xc'))(new Redis(config[_0xf829('0xb')]));require(_0xf829('0xd'))['register'](socket);function respondWithRpcPromise(_0x4b370d,_0x41020f,_0x1630b0){return new BPromise(function(_0x267245,_0x4f423d){return client[_0xf829('0xe')](_0x4b370d,_0x1630b0)[_0xf829('0xf')](function(_0x38eaed){logger[_0xf829('0x10')](_0xf829('0x11'),_0x41020f,_0xf829('0x12'));logger[_0xf829('0x13')](_0xf829('0x14'),_0x41020f,_0xf829('0x12'),JSON[_0xf829('0x15')](_0x38eaed));if(_0x38eaed[_0xf829('0x16')]){if(_0x38eaed[_0xf829('0x16')]['code']===0x1f4){logger[_0xf829('0x16')]('FaxAccount,\x20%s,\x20%s',_0x41020f,_0x38eaed[_0xf829('0x16')][_0xf829('0x17')]);return _0x4f423d(_0x38eaed[_0xf829('0x16')][_0xf829('0x17')]);}logger[_0xf829('0x16')](_0xf829('0x11'),_0x41020f,_0x38eaed[_0xf829('0x16')][_0xf829('0x17')]);return _0x267245(_0x38eaed['error'][_0xf829('0x17')]);}else{logger[_0xf829('0x10')](_0xf829('0x11'),_0x41020f,_0xf829('0x12'));_0x267245(_0x38eaed['result']['message']);}})[_0xf829('0x18')](function(_0x45d6b7){logger[_0xf829('0x16')]('FaxAccount,\x20%s,\x20%s',_0x41020f,_0x45d6b7);_0x4f423d(_0x45d6b7);});});}exports[_0xf829('0x19')]=function(_0x5b36fc){var _0x3d3af0=this;return new Promise(function(_0x24bbd1,_0x14c64b){return db[_0xf829('0x1a')][_0xf829('0x1b')]({'raw':_0x5b36fc[_0xf829('0x1c')]?_0x5b36fc['options'][_0xf829('0x1d')]===undefined?!![]:![]:!![],'where':_0x5b36fc[_0xf829('0x1c')]?_0x5b36fc[_0xf829('0x1c')][_0xf829('0x1e')]||null:null,'attributes':_0x5b36fc[_0xf829('0x1c')]?_0x5b36fc['options'][_0xf829('0x1f')]||null:null,'limit':_0x5b36fc[_0xf829('0x1c')]?_0x5b36fc[_0xf829('0x1c')]['limit']||null:null,'include':_0x5b36fc['options']?_0x5b36fc[_0xf829('0x1c')][_0xf829('0x20')]?_[_0xf829('0x21')](_0x5b36fc[_0xf829('0x1c')][_0xf829('0x20')],function(_0x42db97){return{'model':db[_0x42db97['model']],'as':_0x42db97['as'],'attributes':_0x42db97[_0xf829('0x1f')],'include':_0x42db97[_0xf829('0x20')]?_['map'](_0x42db97[_0xf829('0x20')],function(_0x4b6671){return{'model':db[_0x4b6671[_0xf829('0x22')]],'as':_0x4b6671['as'],'attributes':_0x4b6671[_0xf829('0x1f')],'include':_0x4b6671[_0xf829('0x20')]?_[_0xf829('0x21')](_0x4b6671[_0xf829('0x20')],function(_0xa58293){return{'model':db[_0xa58293[_0xf829('0x22')]],'as':_0xa58293['as'],'attributes':_0xa58293[_0xf829('0x1f')]};}):[]};}):[]};}):[]:[]})[_0xf829('0xf')](function(_0x1b937f){logger[_0xf829('0x10')](_0xf829('0x19'),_0x5b36fc);logger[_0xf829('0x13')](_0xf829('0x19'),_0x5b36fc,JSON[_0xf829('0x15')](_0x1b937f));_0x24bbd1(_0x1b937f);})[_0xf829('0x18')](function(_0x1f912b){logger['error'](_0xf829('0x19'),_0x1f912b['message'],_0x5b36fc);_0x14c64b(_0x3d3af0[_0xf829('0x16')](0x1f4,_0x1f912b[_0xf829('0x17')]));});});};exports['NotifyFaxAccount']=function(_0x4b1925,_0x1ac97e,_0xfb13e0){var _0x208d32=this;return new Promise(function(_0x32660f,_0x5167e0){var _0x38faa0={'body':_0x4b1925['body'],'channel':_0xf829('0x23')};var _0x1f3dad=[];var _0x55332e=[];var _0x542f68={};return db['CmContact']['describe']()[_0xf829('0xf')](function(_0x307343){if(!_0x307343){throw new db['Sequelize'][(_0xf829('0x24'))](_0xf829('0x25'));}_0x1f3dad=_[_0xf829('0x26')](_[_0xf829('0x27')](_0x307343),[_0xf829('0x28'),_0xf829('0x29')]);_0x55332e=_[_0xf829('0x26')](_['keys'](_0x307343),['createdAt','updatedAt',_0xf829('0x2a'),_0xf829('0x2b')]);if(_0x4b1925[_0xf829('0x2c')]['id']){delete _0x4b1925[_0xf829('0x2c')]['id'];}if(_[_0xf829('0x2d')](_0x4b1925[_0xf829('0x2c')][_0xf829('0x2e')])){throw new db[(_0xf829('0x2f'))][(_0xf829('0x24'))](_0xf829('0x30'));}if(_[_0xf829('0x2d')](_0x4b1925[_0xf829('0x2c')][_0xf829('0x2c')])||_0x4b1925[_0xf829('0x2c')][_0xf829('0x2c')]===''){throw new db[(_0xf829('0x2f'))][(_0xf829('0x24'))](_0xf829('0x31'));}if(_['isNil'](_0x4b1925['body'][_0xf829('0x32')])){throw new db['Sequelize'][(_0xf829('0x24'))]('mapKey\x20is\x20mandatory,\x20please\x20use\x20one\x20of\x20these:\x20'+_0x55332e);}if(!_['includes'](_0x55332e,_0x4b1925[_0xf829('0x2c')][_0xf829('0x32')])){throw new db[(_0xf829('0x2f'))][(_0xf829('0x24'))](_0xf829('0x33')+_0x55332e);}_0x542f68[_0x4b1925[_0xf829('0x2c')][_0xf829('0x32')]]=_0x4b1925['body'][_0xf829('0x2e')];})[_0xf829('0xf')](function(){return db[_0xf829('0x1a')][_0xf829('0x34')]({'where':{'id':_0x4b1925[_0xf829('0x35')]['id']},'include':[{'model':db[_0xf829('0x36')],'as':_0xf829('0x37'),'include':[{'model':db['CmContact'],'as':_0xf829('0x38'),'where':_0x542f68,'limit':0x1,'order':[[_0xf829('0x29'),_0xf829('0x39')]]}]},{'model':db['FaxApplication'],'as':_0xf829('0x3a')}]});})[_0xf829('0xf')](function(_0x16b891){if(_0x16b891&&_0x16b891['List']){var _0x5e31e4=_0x16b891[_0xf829('0x3b')]({'plain':!![]});_0x38faa0[_0xf829('0x35')]=_0x5e31e4;_0x38faa0[_0xf829('0x3c')]=_0x5e31e4[_0xf829('0x3a')];_0x38faa0[_0xf829('0x3d')]=_0x5e31e4[_0xf829('0x37')];_0x38faa0[_0xf829('0x3c')]=_[_0xf829('0x3e')](_0x38faa0[_0xf829('0x3c')],['priority'],[_0xf829('0x3f')]);if(_0x38faa0[_0xf829('0x35')][_0xf829('0x3a')]){delete _0x38faa0['account'][_0xf829('0x3a')];}if(_0x38faa0[_0xf829('0x35')]['List']&&_0x38faa0[_0xf829('0x35')][_0xf829('0x37')][_0xf829('0x38')]['length']){return _0x38faa0[_0xf829('0x35')][_0xf829('0x37')][_0xf829('0x38')][0x0];}var _0x5e75cf=_['defaults'](_0x4b1925[_0xf829('0x2c')],{'firstName':_0x4b1925['body'][_0xf829('0x2e')],'ListId':_0x5e31e4[_0xf829('0x2b')]});_0x5e75cf[_0x4b1925[_0xf829('0x2c')][_0xf829('0x32')]]=_0x4b1925['body'][_0xf829('0x2e')];return db['CmContact'][_0xf829('0x40')](_0x5e75cf,{'fields':_0x1f3dad,'raw':!![]});}})['then'](function(_0x4acf26){_0x38faa0[_0xf829('0x41')]=_0x4acf26;if(_0x4acf26){var _0x4576a7={'ContactId':_0x4acf26['id'],'FaxAccountId':_0x4b1925['account']['id'],'fax':_0x4acf26[_0xf829('0x23')]};return db[_0xf829('0x42')][_0xf829('0x34')]({'where':{'ContactId':_0x4acf26['id'],'closed':![],'FaxAccountId':_0x4b1925[_0xf829('0x35')]['id']}})[_0xf829('0xf')](function(_0x237f16){if(_0x237f16){return[_0x237f16,![]];}return db[_0xf829('0x42')]['create'](_0x4576a7)[_0xf829('0xf')](function(_0x92d7d9){return[_0x92d7d9,!![]];});});}else{throw new Error('Contact\x20not\x20found');}})[_0xf829('0x43')](function(_0x420b73,_0x25f0cf){var _0x42d02a=_0x420b73[_0xf829('0x3b')]({'plain':!![]});if(_0x25f0cf){if(_0x38faa0[_0xf829('0x35')]['autoclose']){_0x38faa0['applications']['push']({'id':0x0,'priority':_0x38faa0['applications'][_0xf829('0x44')]+0x1,'app':_0xf829('0x45'),'appdata':_0xf829('0x46'),'interval':_0xf829('0x47')});}_0x42d02a['created']=!![];}else{_0x42d02a[_0xf829('0x48')]=![];}_0x38faa0[_0xf829('0x49')]=_0x42d02a;return db[_0xf829('0x4a')][_0xf829('0x40')]({'body':_0x4b1925['body']['body'],'FaxAccountId':_0x4b1925['account']['id'],'FaxInteractionId':_0x420b73['id'],'direction':'in','ContactId':_0x420b73['ContactId'],'AttachmentId':_0x4b1925['body']['AttachmentId']});})[_0xf829('0xf')](function(_0x349930){_0x38faa0[_0xf829('0x17')]=_0x349930;if(_0x38faa0[_0xf829('0x49')]['UserId']){return db[_0xf829('0x4b')][_0xf829('0x34')]({'attributes':['id',_0xf829('0x4c')],'where':{'id':_0x38faa0[_0xf829('0x49')][_0xf829('0x4d')]}})['then'](function(_0x4f144a){if(_0x4f144a){_0x38faa0[_0xf829('0x3c')][_0xf829('0x4e')]({'id':0x0,'priority':0x0,'app':_0xf829('0x4f'),'appdata':_0x4f144a['name']+','+(_0x38faa0[_0xf829('0x35')]['waitForTheAssignedAgent']||0xa),'interval':_0xf829('0x47')});}return respondWithRpcPromise('Start',_0xf829('0x50'),_0x38faa0);});}return respondWithRpcPromise(_0xf829('0x51'),_0xf829('0x50'),_0x38faa0);})[_0xf829('0xf')](function(_0x1cb27d){_0x32660f(_0x1cb27d);})[_0xf829('0x18')](function(_0x4fad7f){_0x5167e0(_0x208d32[_0xf829('0x16')](0x1f4,_0x4fad7f[_0xf829('0x17')]));});});};